This shows you the differences between two versions of the page.
|
dev:release_process:opensrf:2.0 [2012/03/11 11:25] dbs |
dev:release_process:opensrf:2.0 [2012/10/30 23:42] (current) dbs autoreconf, not autogen |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Rolling an OpenSRF release ===== | ===== Rolling an OpenSRF release ===== | ||
| - | - Create a local working branch for the release: <code>$ git checkout -b tmp_rel_2_0_1 origin/rel_2_0</code>. This can be thrown away after you finish the release. | + | - Create a local working branch for the release: <code>$ git checkout -b tmp_rel_2_1.0 origin/rel_2_1</code>. This can be thrown away after you finish the release. |
| - Create the Changelog containing the changes for this release only. Since 1.6.0 we have been creating ChangeLogs that show the cumulative changes for a given release in reverse chronological order, distinguishing between alphas, betas, and point releases, with a header distinguishing each block of changes. That way we will not have to link to ten different ChangeLogs if we reach 1.6.10 for example: <code bash> | - Create the Changelog containing the changes for this release only. Since 1.6.0 we have been creating ChangeLogs that show the cumulative changes for a given release in reverse chronological order, distinguishing between alphas, betas, and point releases, with a header distinguishing each block of changes. That way we will not have to link to ten different ChangeLogs if we reach 1.6.10 for example: <code bash> | ||
| - | $ git log --pretty --numstat --summary 812d529.. | sed -e 's/Signed-off-by:/\n\n\t&/g' > ChangeLog.2.0.1 | + | $ # get the date of the last commit to the previous release |
| - | $ echo '0r ChangeLog.2.0.1 | + | $ git log osrf_rel_2_0_1 # last commit was 2011-08-19 |
| - | . | + | $ # this is not perfect, but it's close enough... |
| - | 0a | + | $ git log --pretty --numstat --summary --since 2011-08-19 > ChangeLog.2.1.0 |
| - | Changelog for 2.0.1 | + | </code> |
| - | =================== | + | |
| - | + | ||
| - | . | + | |
| - | w' | ed ChangeLog</code> | + | |
| - Bump version numbers in the temporary working branch: | - Bump version numbers in the temporary working branch: | ||
| * Update the AC_INIT() version number in the tagged release in ''version.m4'' | * Update the AC_INIT() version number in the tagged release in ''version.m4'' | ||
| Line 18: | Line 14: | ||
| * README | * README | ||
| - Follow the steps to build and test the release (see below) and ensure that all tests pass. | - Follow the steps to build and test the release (see below) and ensure that all tests pass. | ||
| - | - Tag the branch (-s requires having a GPG public key installed and push it): | + | - Push the temporary release branch to origin: <code>git push origin tmp_rel_2_1_0:rel_2_1</code> |
| - | - <code bash>git tag -s osrf_rel_2_0_1 | + | |
| - | git push --tags</code> | + | |
| - | - Push the temporary release branch to origin: <code>git push origin tmp_rel_2_0_1:rel_2_0</code> | + | |
| - | - Checkout the tag: <code>git checkout osrf_rel_2_0_1</code> | + | |
| - Create a clean export of the files in a working directory (''/tmp'' in the following example) and generate a tarball that contains the autotools-ized files:<code bash> | - Create a clean export of the files in a working directory (''/tmp'' in the following example) and generate a tarball that contains the autotools-ized files:<code bash> | ||
| - | git archive --prefix=opensrf-<version>/ <tagname> | (cd /tmp/ && tar xvf -) | + | git archive --prefix=opensrf-<version>/ tmp_rel_2_1_0 | (cd /tmp/ && tar xvf -) |
| cd /tmp/opensrf-<version>/ | cd /tmp/opensrf-<version>/ | ||
| - | ./autogen.sh | + | autoreconf -i |
| cd .. | cd .. | ||
| - | tar zcvf opensrf-2.0.1.tar.gz opensrf-2.0.1/ | + | tar zcvf opensrf-2.1.0.tar.gz opensrf-2.1.0/ |
| </code> | </code> | ||
| - //Bonus hygiene step:// Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that ''make check'' passes. | - //Bonus hygiene step:// Take the tarball you just created and test installing OpenSRF from it; at the very least, ensure that ''make check'' passes. | ||
| - | - <code bash>md5sum opensrf-2.0.1.tar.gz > opensrf-2.0.1.tar.gz.md5 | + | - If all is well, tag the branch (-s requires having a GPG public key installed) and push the new tag to the public repository:<code bash> |
| - | cp opensrf-2.0.1/ChangeLog OpenSRF-ChangeLog-2.0.1 | + | git tag -s osrf_rel_2_1_0 |
| - | scp OpenSRF-ChangeLog-2.0.1 opensrf-2.0.1.tar.gz* open-ils.org:~/ | + | git push --tags</code> |
| + | - <code bash>md5sum opensrf-2.1.0.tar.gz > opensrf-2.1.0.tar.gz.md5 | ||
| + | cp opensrf-2.1.0/ChangeLog OpenSRF-ChangeLog-2.1.0 | ||
| + | scp OpenSRF-ChangeLog-2.1.0 opensrf-2.1.0.tar.gz* open-ils.org:~/ | ||
| + | </code> | ||
| + | - Create HTML versions of the install instructions and release notes for the web site:<code bash> | ||
| + | asciidoc -a toc -a numbered opensrf-2.1.0/INSTALL | ||
| + | asciidoc -a toc -a numbered opensrf-2.1.0/doc/RELEASE_NOTES.txt | ||
| </code> | </code> | ||
| - | - Move the above into the correct download dir | + | - Move the release files into the correct download directories: |
| + | * Previews / alphas / betas / release candidates go in ''/var/www/open-ils.org/downloads/previews/'' | ||
| + | * Final releases go in ''/var/www/open-ils.org/downloads/'' | ||
| + | * Install docs go in ''/var/www/open-ils.org/documentation/install/OpenSRF/'' | ||
| + | * Release notes go in ''/var/www/open-ils.org/documentation/release/OpenSRF/'' | ||