From 6b50959c3128c9ba7cfcd9602a39877f69aa5351 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Mon, 8 Feb 2010 14:13:18 +0100 Subject: Release procedure proposal this is my proposal for release procedure - it's quite simple and covers all the technical details you need to know regarding autotools. Changelog: - re-diff with current master (and not my internal branch :) - renumber the steps Signed-off-by: Jan Safranek Signed-off-by: Balbir Singh --- README | 17 ----------------- doc/internal/release.txt | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 17 deletions(-) create mode 100644 doc/internal/release.txt diff --git a/README b/README index 93e0aae..54e0f7b 100644 --- a/README +++ b/README @@ -1,20 +1,3 @@ -Please follow the following steps (TODO: Automate these steps) - -0. Update package version in AC_INIT (configure.in) -1. Tag the current sources in trunk to the specified version -1. Run autoreconf -i to generate the configure file again - (on changing any of the automake files) -2. Run configure with --prefix= default is /usr/local -3. This step should generate - a. Makefile - b. libcgroup.spec -4. To build the RPM, carry out the following steps (obsolete, will be revised) - a. Create a tag with the same version as specified in step 0 - a. Run mktarball - b. copy tarball and spec file to correct place in the RPMBUILD - c. Build an rpm of the spec file - - Design ======== diff --git a/doc/internal/release.txt b/doc/internal/release.txt new file mode 100644 index 0000000..e356cef --- /dev/null +++ b/doc/internal/release.txt @@ -0,0 +1,32 @@ +Libcgroup release procedure +=========================== +Please follow the following steps (TODO: Automate these steps) +1. Check, that every new or changed feature since last release is reflected in + README and/or man pages. +2. Bump soname of libcgroup shared objects if needed - LIBRARY_VERSION_MAJOR, + _MINOR and _RELEASE in configure.in. +3. Prepare release candidate (X.YY-rcZ - X.YY = version, Z - prerelease +umber): + a. Update AC_INIT(X.YY.rcZ) in configure.in. + b. Run 'autoreconf -i' to generate the configure file again, with the + new release number. + c. Run './configure' to generate Makefile and dist/libcgroup.spec with + correct version numbers. + d. Run 'make dist' to create tarball. Fix Makefile.am files if + something goes wrong. + The tarball should contain everything needed for compilation with + simple sh, make and (optionally) rpmbuild, among others: + libcgroup-X.YY.rcZ/configure + libcgroup-X.YY.rcZ/dist/libcgroup.spec + e. Try to build rpms ('rpmbuild -ta libcgroup-X.YY.rcZ.tar.gz'), fix + errors in dist/libcgroup.spec.in file if something goes wrong. + f. Tag the pre-release in git. + g. Publish the pre-release libcgroup-X.YY.rcZ.tar.gz and announce it on + the libgroup-devel list. + h. Test the pre-release and go to a) if new one is needed. + During this period, ABI of newly introduced shared symbols is *not* + stable and may change, if there is very good reason to break it. + +5. Finally release official version using the same procedure as in step 3., + only without the .rcZ version number suffix. +6. Update topic on #libcgroup IRC channel. -- cgit