Project

General

Profile

Release Process » History » Revision 9

Revision 8 (Dominic Cleal, 05/19/2013 06:27 PM) → Revision 9/211 (Dominic Cleal, 05/20/2013 05:03 AM)

h1. Release Process 

 For each major release (i.e. not patch releases), the project selects a "release nanny" who's responsible for taking the develop branch through to release. 

 Please amend these lists as you see free, and as you find what works and what doesn't work. 

 h2. Pre-release 

 # Select the release nanny 
 # Ensure RPM and Debian nightly packages are in good shape and all RPM dependencies are up to date 
 # Ensure "Transifex project":https://www.transifex.com/projects/p/foreman/ is up to date 
 # Decide on the version number 
 # If number has changed, update version number in redmine 
 # Add _next+1_ anticipated version number to redmine under "Settings":http://projects.theforeman.org/projects/foreman/settings, sharing "With subprojects" 
 # Check "roadmap":http://projects.theforeman.org/projects/foreman/roadmap and issue search ("example":http://projects.theforeman.org/projects/foreman/issues?fixed_version_id=24&set_filter=1&status_id=o) 
 #* reassign major features to next+1 version or remove version 
 #* assign relevant bugs to this upcoming release 
 #* multiple bugs can be managed using checkboxes and then right clicking on the boxes for a menu 
 # Announce beginning of bug-squashing to foreman-dev ("example":http://groups.google.com/group/foreman-dev/browse_thread/thread/769d9060774da864) 
 # Copy website manual content ("theforeman.org repo":http://github.com/theforeman/theforeman.org) from previous version to this version ("example":https://github.com/theforeman/theforeman.org/pull/43) 
 # Update manual if applicable for any additional installation steps 
 # Draft release notes in markdown ("example":https://gist.github.com/domcleal/5567450) using roadmap, with these sections: 
 ## Headline features: half a dozen important features with a few sentences description each 
 ## Upgrade notes: all important notices that users must be aware of before upgrading 
 ## Release notes: bullet point list by category of most changes, excluding bug fixes for issues introduced during the release cycle, include link to bug numbers 
 # Check @git log@ for any changes without associated bug number and add to release notes if applicable 
 # Request creation of tags and build targets in "Koji":http://koji.katello.org/koji from rel-eng (foreman-1.2-rhel6 etc.) 

 h2. Pre-release candidates 

 When ready to branch for release candidates. 

 # In foreman, smart-proxy and foreman-install, branch Branch develop to 1.2-stable 
 #* 1.2-stable, cherry-picks into this branch only from this point using: 
 #* @git cherry-pick -x SHA@ 
 # Commit change to VERSION in *develop* to 1.3 (_next+1_ version) and foreman.spec + foreman-proxy.spec to 1.3.9999 (_next+1_ version) 
 # Re-tag all dependencies in Koji to the release tag (@kkoji tag-pkg foreman-1.2-rhel6 PKG...@) 
 # Update foreman-dev with "translations status":https://www.transifex.com/projects/p/foreman/ to encourage 100%25 translations before release, announce string freeze date 

 h2. For each release candidate 

 # Commit change to VERSION in *1.2-stable* to 1.2.0-RC1 and foreman.spec + foreman-proxy.spec version to 1.2.0 and release to RC1 
 # Update version and dependency versions in all foreman-installer submodules 
 # Update submodules on foreman-installer's 1.2-stable branch 
 # Tag commits in foreman, smart-proxy and foreman-installer commit as 1.2.0-RC1 
 # Perform scratch build and then tag and release real build of foreman and foreman-proxy (see [[RPM_Packaging]]) 
 # FIXME: update Debian build script with tag and trigger Debian build 
 # Build foreman-installer modules (see [[Installer_Packaging]] workflow) 
 # Build foreman-installer RPM and Debian packages (see [[RPM_Packaging]] and [[Debian_Packaging]])