Punchlist for creating a new ClassAds release
- Ensure
src/classad/CHANGELOGhas all relevant changes. Add a section for the new version if necessary. - Update the version number and release date in the follow files:
src/classad/CHANGELOGsrc/classad/do_packaging: DIST_VERSIONsrc/classad/README: first linesrc/classad/classad.cpp: ClassAdLibraryVersion() Update both functions with this name!src/classad/Doxyfile: PROJECT_NUMBER
- Update the shared library version number in
src/classad/Makefile.am.m4. Look for these two lines:If the ABI has changed (such that programs linked against an older version won't work with the new version), you should increment the first number and set the second and third ones to zero. If the ABI has only been expanded (new symbols added), increment the first and third numbers, and set the second one to zero. If the ABI hasn't changed, then increment the second number. See http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN135 for examples of things that will change the ABI incompatibly.libclassad_la_LDFLAGS = -version-info 1:0:0 libclassad_ns_la_LDFLAGS = -version-info 1:0:0
This ABI compliance checker program may be useful: http://ispras.linuxfoundation.org/index.php/ABI_compliance_checker
Note: The version given here isn't quite the version you'll see on the
.so files. Libtool converts it like so: -version-info A:B:C results in
libclassad.so. <A-C>.<C>.<B>.
When releasing a version with incompatible ABI changes, you can end up
with a big jump in the major version of the .so if you just increment A
and set B and C to zero. Instead, you can set the
new version like so: -version-info <1+A-C>:0:0. This will result in the
major version of the .so incrementing by one.
- run
do_packaginginsrc/classad - Ensure the release builds successfully
cd classads-1.0.8 ./configure make make check cd ..
- Edit TAGS and add a new tag name for this version.
- Ensure all of your changes are committed.
- Tag the release:
git tag classads_1_0_8 git push origin classads_1_0_8
- Copy the release tarball into
/p/condor/public/ftp/classad/c++/. - Copy
src/classad/CHANGELOGto/p/condor/public/html/classad/c++changelogs/changes-<version>.txt. - Update
/p/condor/public/html/classad/classad.htmlto mention the new release. - Update the Doxygen webpages:
/unsup/doxygen-1.7.1/bin/doxygen mv /p/condor/public/html/classad/c++doc /p/condor/public/html/classad/c++doc.old cp -r doc/html /p/condor/public/html/classad/c++doc rm -rf /p/condor/public/html/classad/c++doc.old
