summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Safranek <jsafrane@redhat.com>2010-02-08 14:13:18 +0100
committerBalbir Singh <balbir@linux.vnet.ibm.com>2010-02-10 16:40:04 +0530
commit6b50959c3128c9ba7cfcd9602a39877f69aa5351 (patch)
tree12d7123958570d8928b132bbe3d1ae340477f740
parentc05a25c145d1584299ecdfe8f941bc8658c809b7 (diff)
downloadlibcg-6b50959c3128c9ba7cfcd9602a39877f69aa5351.tar.gz
libcg-6b50959c3128c9ba7cfcd9602a39877f69aa5351.tar.xz
libcg-6b50959c3128c9ba7cfcd9602a39877f69aa5351.zip
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 <jsafrane@redhat.com> Signed-off-by: Balbir Singh <balbir@linux.vnet.ibm.com>
-rw-r--r--README17
-rw-r--r--doc/internal/release.txt32
2 files changed, 32 insertions, 17 deletions
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=<desired 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.