142 |
by automake so that Guile can be built in a directory separate |
by automake so that Guile can be built in a directory separate |
143 |
from the source tree also with non-GNU make programs.) |
from the source tree also with non-GNU make programs.) |
144 |
|
|
145 |
|
* test the resultant tarfile yourself using the instructions under |
146 |
|
"Testing a release candidate tarfile" below. |
147 |
|
|
148 |
* Add a "Guile beta N.M released." entry to the top-level ChangeLog. |
* Add a "Guile beta N.M released." entry to the top-level ChangeLog. |
149 |
|
|
150 |
* Now commit all your changes to CVS. |
* Now commit all your changes to CVS. |
153 |
|
|
154 |
* Run 'make dist' again to get the official tarfile. |
* Run 'make dist' again to get the official tarfile. |
155 |
|
|
|
* Test the tarfile yourself using the instructions under "Testing a |
|
|
release candidate tarfile" below. |
|
|
|
|
156 |
* Give the test disty to various people to try. They should follow |
* Give the test disty to various people to try. They should follow |
157 |
the same instructions under "Testing a release candidate tarfile" |
the same instructions under "Testing a release candidate tarfile" |
158 |
below. |
below. |
174 |
the libtool info pages. Guile is going to be versioning it's shared |
the libtool info pages. Guile is going to be versioning it's shared |
175 |
libraries independently, so follow the libtool rules for choosing |
libraries independently, so follow the libtool rules for choosing |
176 |
version numbers, but make sure to keep in mind that not everyone is |
version numbers, but make sure to keep in mind that not everyone is |
177 |
as good about this as they should be. If a library even changes the |
as good about this as they should be. In any case, note that if |
178 |
layout of a data structure that's part of it's API in a backward |
your library passes through data structures that were produced by |
179 |
incompatible way, even if that data structure is handled as an |
some sub-library, and that sub-libraries data has changed |
180 |
opaque object in the API, that library is probably no longer |
in a publically incompatible way, then this may mean that *your* |
181 |
compatible with previous versions. |
library's API has changed in a publically incompatible way. |
|
|
|
|
A canonical ugly problem is this. Imagine you have libfoo and |
|
|
libbar that both are linked against libbaz. Now imagine that you |
|
|
create a libwhatever that uses both libfoo and libbar. What you |
|
|
don't want to have happen is libfoo and libbar to be linked against |
|
|
different versions of libbaz that produce incompatible instances of |
|
|
the "same" data structure, and then have libwhatever get one version |
|
|
of this data structure from libbaz via libfoo, and pass it back to a |
|
|
different version of libbaz via libbar, a version of libbaz that |
|
|
can't handle the newer/older struct from the other libbaz. |
|
182 |
|
|
183 |
* In general, there will be a number of libraries in guile that will |
* In general, there will be a number of libraries in guile that will |
184 |
have to be versioned, and it would be best if the people who know |
have to be versioned, and it would be best if the people who know |
208 |
* Add "Guile X.Y.Z released." entry to the top-level ChangeLog, and commit it. |
* Add "Guile X.Y.Z released." entry to the top-level ChangeLog, and commit it. |
209 |
|
|
210 |
* Tag the entire source tree with a tag of the form "release_X-Y-Z", |
* Tag the entire source tree with a tag of the form "release_X-Y-Z", |
211 |
i.e for release 1.6.0, use release_1-6-0 |
i.e for release 1.6.1, use release_1-6-1 |
212 |
|
|
213 |
* Do a 'make dist'. |
* Do a 'make dist'. |
214 |
|
|