| Notes on making a new release of libarchive |
| =========================================== |
| |
| The following serves as a guide for libarchive developers on the general |
| process to be followed when making a new release of libarchive. |
| |
| * Update build/version with the version number of the release to be made. |
| * If the library's ABI has changed, the library's soname major version *MUST* |
| be updated. Update configure.ac and CMakeLists.txt appropriately. |
| - For configure.ac, the variable ARCHIVE_INTERFACE needs to be updated. |
| - For CMakeLists.txt, the variable INTERFACE_VERSION needs to be updated. |
| * Update the entries in the NEWS file accordingly. |
| * Run `build/makerelease.sh` from the top source directory. Running this script |
| will do the following. |
| - Removes all Makefile.am development build specific CFLAGS from |
| Makefile.am. |
| - Update configure scripts and header files with the appropriate version |
| number from build/version. |
| - Rebuild the documentation directory. |
| - Runs a full cmake build and test. |
| - Runs a full autotools build and test. |
| - Builds the .tar.gz and .zip distribution files. |
| * Commit all changed files into git. |
| - This should be build/version, NEWS, and the files edited by running |
| build/makerelease.sh. |
| * Tag the release appropriately. The tag should also have an appropriate |
| message. |
| - The git command is as follows: |
| $ git tag -m "Libarchive <version>" v<version> |
| Replace <version> with the version to be released. |
| * Copy all the generated wiki files and commit them into the libarchive.wiki |
| repository. Overwrite any preexisting files with the same name (these files |
| are always autogenerated from the libarchive release after every release). |
| * Update the libarchive.org website accordingly. |
| * Make an announcement to the libarchive-announce mailing list. |