]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
Release procedure proposal
authorJan Safranek <jsafrane@redhat.com>
Mon, 8 Feb 2010 13:13:18 +0000 (14:13 +0100)
committerBalbir Singh <balbir@linux.vnet.ibm.com>
Wed, 10 Feb 2010 11:10:04 +0000 (16:40 +0530)
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>
README
doc/internal/release.txt [new file with mode: 0644]

diff --git a/README b/README
index 93e0aaef5b9f638709cd9e7307377a51c8bfea1b..54e0f7bb20b16f6b45c2a8f37af22a06d003b7c5 100644 (file)
--- 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 (file)
index 0000000..e356cef
--- /dev/null
@@ -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.