diff options
author | Tom Duffield <tom@chef.io> | 2016-11-08 13:12:44 -0600 |
---|---|---|
committer | Tom Duffield <tom@chef.io> | 2016-11-09 13:00:42 -0600 |
commit | 56d1f31da350567008e41cd42a8daa37e29883a7 (patch) | |
tree | 0be8459a12a7e063e152afb2e4321cf7632740ad | |
parent | 5609d13d8c16776072073ac1a5957046290abf8a (diff) | |
download | chef-56d1f31da350567008e41cd42a8daa37e29883a7.tar.gz |
Add docs around releasing regression fixestd/update-changelog-every-bump
Signed-off-by: Tom Duffield <tom@chef.io>
-rw-r--r-- | README.md | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -168,6 +168,21 @@ After each "official" stable release we need to bump the minor version. To do th Submit a PR with the changes made by the above. +## Addressing a Regression + +Sometimes, regressions split through the cracks. Since new functionality is always being added and the minor version is bumped immediately after release, we can't simply roll forward. In this scenario, we'll need to perform a special regression release process. In the example that follows, the stable release with a regression is `1.10.60` while master is currently sitting at `1.11.30`. *Note:* To perform this process, you must be a Chef employee. + +1. If the regression has not already been addressed, open a Pull Request against master with the fix. +2. Wait until that Pull Request has been merged and `1.11.31` has passed all the necessary tests and is available in the current channel. +3. Inspect the Git history and find the `SHA` associated with the Merge Commit for the Pull Request above. +4. Apply the fix for the regression via a cherry-pick: + 1. Check out the stable release tag: `git checkout v1.10.60` + 2. Cherry Pick the SHA with the fix: `git cherry-pick SHA` + 3. Address any conflicts (if necessary) + 4. Tag the sha with the appropriate version: `git tag -a v1.10.61 -m "Release v1.10.61"` + 5. Push the new tag to origin: `git push origin --tags` +5. Log in to Jenkins and trigger a `chef-trigger-release` job specifying the new tag as the `GIT_REF`. + ## Component Versions Chef has two sorts of component: ruby components like `berkshelf` and `test-kitchen`, and binary components like `openssl` and even `ruby` itself. |