Release Process » History » Version 37
Dominic Cleal, 06/07/2013 07:19 AM
changes to repos
1 | 1 | Dominic Cleal | h1. Release Process |
---|---|---|---|
2 | |||
3 | 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. |
||
4 | |||
5 | Please amend these lists as you see free, and as you find what works and what doesn't work. |
||
6 | |||
7 | h2. Pre-release |
||
8 | |||
9 | # Select the release nanny |
||
10 | 2 | Dominic Cleal | # Ensure RPM and Debian nightly packages are in good shape and all RPM dependencies are up to date |
11 | 7 | Dominic Cleal | # Ensure "Transifex project":https://www.transifex.com/projects/p/foreman/ is up to date |
12 | 1 | Dominic Cleal | # Decide on the version number |
13 | 2 | Dominic Cleal | # If number has changed, update version number in redmine |
14 | # Add _next+1_ anticipated version number to redmine under "Settings":http://projects.theforeman.org/projects/foreman/settings, sharing "With subprojects" |
||
15 | # 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) |
||
16 | #* reassign major features to next+1 version or remove version |
||
17 | 1 | Dominic Cleal | #* assign relevant bugs to this upcoming release |
18 | #* multiple bugs can be managed using checkboxes and then right clicking on the boxes for a menu |
||
19 | 17 | Dominic Cleal | #* create public custom query with target version set, sorted by status ascending, then priority descending |
20 | 1 | Dominic Cleal | # Announce beginning of bug-squashing to foreman-dev ("example":http://groups.google.com/group/foreman-dev/browse_thread/thread/769d9060774da864) |
21 | 8 | Dominic Cleal | # 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) |
22 | # Update manual if applicable for any additional installation steps |
||
23 | 6 | Dominic Cleal | # Draft release notes in markdown ("example":https://gist.github.com/domcleal/5567450) using roadmap, with these sections: |
24 | ## Headline features: half a dozen important features with a few sentences description each |
||
25 | ## Upgrade notes: all important notices that users must be aware of before upgrading |
||
26 | ## 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 |
||
27 | # Check @git log@ for any changes without associated bug number and add to release notes if applicable |
||
28 | 27 | Dominic Cleal | # Refresh kickstart, snippet and partition table templates from the community-templates repo to Foreman core |
29 | 15 | Dominic Cleal | # Request creation of tags and build targets in "Koji":http://koji.katello.org/koji from rel-eng (foreman-1.2-rhel6 etc.) as clones of nightly tags |
30 | 1 | Dominic Cleal | |
31 | h2. Pre-release candidates |
||
32 | |||
33 | 8 | Dominic Cleal | When ready to branch for release candidates. |
34 | |||
35 | 15 | Dominic Cleal | # In foreman, smart-proxy and foreman-installer, branch develop to 1.2-stable |
36 | 1 | Dominic Cleal | #* cherry-picks into this branch only from this point using: @git cherry-pick -x SHA@ |
37 | 15 | Dominic Cleal | # In foreman *develop* commit with message "Bump version to 1.2-develop": |
38 | ## change to VERSION to 1.2-develop |
||
39 | 18 | Dominic Cleal | ## change foreman.spec to 1.2.9999, add %25changelog entry |
40 | 15 | Dominic Cleal | ## run @extras/changelog@ |
41 | ## run @rake locale:find@ |
||
42 | # In smart-proxy *develop* commit with message "Bump version to 1.2-develop": |
||
43 | ## change to lib/proxy.rb VERSION to 1.2-develop |
||
44 | 18 | Dominic Cleal | ## change foreman-proxy.spec version to 1.2.9999, add %25changelog entry |
45 | 15 | Dominic Cleal | ## run @extra/changelog@ |
46 | 7 | Dominic Cleal | # Update foreman-dev with "translations status":https://www.transifex.com/projects/p/foreman/ to encourage 100%25 translations before release, announce string freeze date |
47 | 10 | Dominic Cleal | # Update $repo in both foreman-installer/foreman and foreman_proxy modules to "rc" ("example":https://github.com/theforeman/puppet-foreman/commit/4098163a8) |
48 | 16 | Dominic Cleal | # Set up test_1_2_stable job on Jenkins, copy from existing stable or test_develop (don't use dots in the name, it breaks) |
49 | 25 | Dominic Cleal | # Update release notes in new website manual version |
50 | 2 | Dominic Cleal | |
51 | 1 | Dominic Cleal | h2. For each release candidate |
52 | |||
53 | 37 | Dominic Cleal | # Update version and dependency versions in all foreman-installer submodules (TODO: script this) |
54 | # Update submodules on foreman-installer's *develop* branch via PR, cherry-pick down to *1.2-stable* |
||
55 | 19 | Dominic Cleal | # In foreman *1.2-stable* commit with message "Release 1.2.0-RC1": |
56 | ## change to VERSION to 1.2.0-RC1 |
||
57 | 20 | Dominic Cleal | ## change foreman.spec version to "1.2.0", release to "0.1.RC1", add %25changelog entry |
58 | 19 | Dominic Cleal | ## run @extras/changelog@ |
59 | ## run @rake locale:find@ if before string freeze |
||
60 | 36 | Dominic Cleal | ## change @extras/packaging/rpm/sources/foreman.repo@ URL from @/nightly@ to @/rc@, change "nightly" in name to "RC" |
61 | 19 | Dominic Cleal | # In smart-proxy *1.2-stable* commit with message "Release 1.2.0-RC1": |
62 | ## change to lib/proxy.rb VERSION to 1.2.0-RC1 |
||
63 | 1 | Dominic Cleal | ## change foreman-proxy.spec version to "1.2.0", release to "0.1.RC1", add %25changelog entry |
64 | ## run @extra/changelog@ |
||
65 | 37 | Dominic Cleal | # In foreman-selinux *1.2-stable* commit with message "Release 1.2.0-RC1": |
66 | ## change foreman-selinux.spec version to "1.2.0", release to "0.1.RC1", add %25changelog entry |
||
67 | # In foreman-installer *1.2-stable* commit with message "Release 1.2.0-RC1": |
||
68 | ## change foreman-installer.spec version to "1.2.0", release to "0.1.RC1", add %25changelog entry |
||
69 | # Perform RPM scratch build of foreman, foreman-installer, foreman-proxy and foreman-selinux |
||
70 | # Tag commits in foreman, smart-proxy, foreman-installer and foreman-selinux: @git tag -m "Release 1.2.0-RC1" 1.2.0-RC1@ |
||
71 | 21 | Dominic Cleal | # @git push && git push --tags@ |
72 | 22 | Dominic Cleal | # [[RPM_Packaging]]: clone new repo and follow tag and release procedure for foreman and foreman-proxy |
73 | 23 | Greg Sutcliffe | # [[Debian_Packaging#foreman]]: Update build.sh and changelog files with appropriate data |
74 | 24 | Dominic Cleal | # Build foreman-installer modules from 1.2-stable (see [[Installer_Packaging]] workflow) |
75 | 37 | Dominic Cleal | # Build foreman-installer Debian package from 1.2-stable (see [[Debian_Packaging#foreman-installer]]) |
76 | 26 | Dominic Cleal | # Update theforeman.org sections: |
77 | ## both @_includes/manuals/1.2/2_quickstart_guide.md@ and @_includes/manuals/1.2/3.2.1_installation.md@ |
||
78 | ##* supported platforms |
||
79 | ##* foreman-release path (rc or releases), package version number |
||
80 | ##* Debian platforms and repo name (rc or stable) |
||
81 | ## @_includes/releasesplash.html@ version number |
||
82 | 33 | Dominic Cleal | # Generate and sign tarball of foreman and smart-proxy: |
83 | ## @git archive --prefix=foreman-1.2.0-RC1/ 1.2.0-RC1 | bzip2 -9 > foreman-1.2.0-RC1.tar.bz2@ |
||
84 | ## @gpg -b -u packages@theforeman.org foreman-1.2.0-RC1.tar.bz2@ (requires packages key) |
||
85 | 28 | Dominic Cleal | # Follow "Publishing releases" below |
86 | 10 | Dominic Cleal | |
87 | h2. For final release |
||
88 | 11 | Dominic Cleal | |
89 | 10 | Dominic Cleal | # Update version and dependency versions in all foreman-installer submodules |
90 | # Revert $repo in both foreman-installer/foreman and foreman_proxy modules to "stable" ("example":https://github.com/theforeman/puppet-foreman/commit/73bd43fa) |
||
91 | # Update submodules on foreman-installer's develop branch |
||
92 | # Merge foreman-installer's develop branch into master |
||
93 | # Build foreman-installer modules from master (see [[Installer_Packaging]] workflow) |
||
94 | 31 | Greg Sutcliffe | # Build foreman-installer RPM and Debian packages from master (see [[RPM_Packaging]] and [[Debian_Packaging#foreman-installer]]) |
95 | 28 | Dominic Cleal | # Follow "Publishing releases" below |
96 | |||
97 | h2. Publishing releases (RCs and final) |
||
98 | 29 | Dominic Cleal | |
99 | 34 | Dominic Cleal | # Request a compose from rel-eng for the Koji release tags |
100 | 30 | Dominic Cleal | # Push RPMs to repo on the web host, under @/var/www/vhosts/yum/htdocs/rc@ or @/releases/1.2@ etc (see [[RPM_Packaging]]) |
101 | 32 | Dominic Cleal | # Push foreman-installer to Freight (see [[Debian_Packaging#foreman-installer]]) |
102 | 28 | Dominic Cleal | # Upload tarballs and detached signatures to http://projects.theforeman.org/projects/foreman/files |
103 | # Upload all installer module .tar.gz files to Puppet Forge |
||
104 | # Update @$latest@ class parameter on @web@ class to point to the new version number (see @foreman-infra/puppet/modules/web/manifests/init.pp@) |
||
105 | 29 | Dominic Cleal | # Send announcement e-mail to foreman-users, foreman-dev |
106 | 35 | Dominic Cleal | # Link to announcement e-mail on IRC, Google+ and update IRC /topic |