{section: Punchlist for creating a new ClassAds release} *: Ensure =src/classad/CHANGELOG= has 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/CHANGELOG= *:: =src/classad/do_packaging=: DIST_VERSION *:: =src/classad/README=: first line *:: =src/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: {code} libclassad_la_LDFLAGS = -version-info 1:0:0 libclassad_ns_la_LDFLAGS = -version-info 1:0:0 {endcode} 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. 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.= _.._. 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_packaging= in =src/classad= *: Ensure the release builds successfully {code} cd classads-1.0.8 ./configure make make check cd .. {endcode} *: Edit TAGS and add a new tag name for this version. *: Ensure all of your changes are committed. *: Tag the release: {code} git tag classads_1_0_8 git push origin classads_1_0_8 {endcode} *: Copy the release tarball into =/p/condor/public/ftp/classad/c++/=. *: Copy =src/classad/CHANGELOG= to =/p/condor/public/html/classad/c++changelogs/changes-.txt=. *: Update =/p/condor/public/html/classad/classad.html= to mention the new release. *: Update the Doxygen webpages: {code} /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 {endcode}