Open Source Integrated Library System
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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/''
dev/release_process/opensrf/2.0.1331479536.txt.gz · Last modified: 2012/03/11 11:25 by dbs
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki

© 2008-2013 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a member of Software Freedom Conservancy.