blob: ce8e1a32a577813fc1216f6fb8ae246d264f6d98 [file] [log] [blame]
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.