diff options
author | Tom Duffield <tom@chef.io> | 2016-11-09 13:57:18 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-09 13:57:18 -0600 |
commit | fc0ead5b9ec6aa28ae263f8f9c6bc4c7310c9471 (patch) | |
tree | 0be8459a12a7e063e152afb2e4321cf7632740ad | |
parent | f9ff77143b853cea88377ec9affcca534609f3b5 (diff) | |
parent | 56d1f31da350567008e41cd42a8daa37e29883a7 (diff) | |
download | chef-fc0ead5b9ec6aa28ae263f8f9c6bc4c7310c9471.tar.gz |
Merge pull request #5523 from chef/td/update-changelog-every-bump
Internal: Bump Minor Version; Automatically update the CHANGELOG when we bump the Build version
-rw-r--r-- | Gemfile.lock | 59 | ||||
-rw-r--r-- | HISTORY.md | 22 | ||||
-rw-r--r-- | README.md | 22 | ||||
-rw-r--r-- | Rakefile | 16 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | chef-config/lib/chef-config/version.rb | 2 | ||||
-rwxr-xr-x | ci/bundle_install.sh | 2 | ||||
-rwxr-xr-x | ci/version_bump.sh | 1 | ||||
-rw-r--r-- | lib/chef/version.rb | 2 | ||||
-rw-r--r-- | tasks/changelog.rb | 43 |
10 files changed, 107 insertions, 64 deletions
diff --git a/Gemfile.lock b/Gemfile.lock index b59520266b..f6815b9993 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/chef/chef-server - revision: f4a124354730cbd61c14635dca955d385cfa382d + revision: be1f43367a3a75e7a1b771a11fb5e48b6f6cf310 specs: oc-chef-pedant (2.2.0) activesupport (>= 4.2.7.1, < 6.0) @@ -24,7 +24,7 @@ GIT GIT remote: https://github.com/rubysec/bundler-audit.git - revision: b7123d7b294f244165d9469f22b37a559e235fc2 + revision: 044d056961dbc4b70d236a354a9cc86af54e0ae2 specs: bundler-audit (0.5.0) bundler (~> 1.2) @@ -33,10 +33,10 @@ GIT PATH remote: . specs: - chef (12.16.55) + chef (12.17.0) addressable bundler (>= 1.10) - chef-config (= 12.16.55) + chef-config (= 12.17.0) chef-zero (>= 4.8) diff-lcs (~> 1.2, >= 1.2.4) erubis (~> 2.7) @@ -62,10 +62,10 @@ PATH specinfra (~> 2.10) syslog-logger (~> 1.6) uuidtools (~> 2.1.5) - chef (12.16.55-universal-mingw32) + chef (12.17.0-universal-mingw32) addressable bundler (>= 1.10) - chef-config (= 12.16.55) + chef-config (= 12.17.0) chef-zero (>= 4.8) diff-lcs (~> 1.2, >= 1.2.4) erubis (~> 2.7) @@ -106,7 +106,7 @@ PATH PATH remote: chef-config specs: - chef-config (12.16.55) + chef-config (12.17.0) addressable fuzzyurl mixlib-config (~> 2.0) @@ -125,12 +125,12 @@ GEM mixlib-cli (~> 1.4) artifactory (2.5.0) ast (2.3.0) - aws-sdk (2.6.14) - aws-sdk-resources (= 2.6.14) - aws-sdk-core (2.6.14) + aws-sdk (2.6.18) + aws-sdk-resources (= 2.6.18) + aws-sdk-core (2.6.18) jmespath (~> 1.0) - aws-sdk-resources (2.6.14) - aws-sdk-core (= 2.6.14) + aws-sdk-resources (2.6.18) + aws-sdk-core (= 2.6.18) aws-sdk-v1 (1.66.0) json (~> 1.4) nokogiri (>= 1.4.4) @@ -172,7 +172,7 @@ GEM rspec (~> 3.0) codeclimate-test-reporter (0.6.0) simplecov (>= 0.7.1, < 1.0.0) - codecov (0.1.6) + codecov (0.1.7) json simplecov url @@ -191,8 +191,6 @@ GEM gherkin (~> 4.0) cucumber-wire (0.0.1) debug_inspector (0.0.2) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) diff-lcs (1.2.5) docile (1.1.5) domain_name (0.5.20161021) @@ -203,6 +201,8 @@ GEM excon (0.54.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) + faraday-http-cache (1.3.1) + faraday (~> 0.8) faraday_middleware (0.10.0) faraday (>= 0.7.4, < 0.10) fauxhai (3.10.0) @@ -234,16 +234,14 @@ GEM net-http-pipeline gherkin (4.0.0) git (1.3.0) - github_api (0.14.5) - addressable (~> 2.4.0) - descendants_tracker (~> 0.0.4) - faraday (~> 0.8, < 0.10) - hashie (>= 3.4) - oauth2 (~> 1.0) - github_changelog_generator (1.13.2) - github_api (>= 0.14) + github_changelog_generator (1.14.1) + activesupport + faraday-http-cache + multi_json + octokit (~> 4.0) rainbow (>= 2.1) rake (>= 10.0) + retriable (~> 2.1) gssapi (1.2.0) ffi (>= 1.0.1) gyoku (1.3.1) @@ -264,7 +262,6 @@ GEM ipaddress (0.8.3) jmespath (1.3.1) json (1.8.3) - jwt (1.5.6) kitchen-docker (2.6.0) test-kitchen (>= 1.0.0) kitchen-ec2 (1.2.0) @@ -301,7 +298,7 @@ GEM mixlib-log mixlib-cli (1.7.0) mixlib-config (2.2.4) - mixlib-install (2.1.5) + mixlib-install (2.1.6) artifactory mixlib-shellout mixlib-versioning @@ -314,7 +311,6 @@ GEM mixlib-versioning (1.1.0) multi_json (1.12.1) multi_test (0.1.2) - multi_xml (0.5.5) multipart-post (2.0.0) net-http-persistent (3.0.0) connection_pool (~> 2.2) @@ -337,12 +333,6 @@ GEM nokogiri (1.6.8.1-x86-mingw32) mini_portile2 (~> 2.1.0) nori (2.6.0) - oauth2 (1.2.0) - faraday (>= 0.8, < 0.10) - jwt (~> 1.0) - multi_json (~> 1.3) - multi_xml (~> 0.5) - rack (>= 1.2, < 3) octokit (4.4.1) sawyer (~> 0.7.0, >= 0.5.3) ohai (8.21.0) @@ -424,6 +414,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 4.0) netrc (~> 0.8) + retriable (2.1.0) retryable (2.0.4) rspec (3.5.0) rspec-core (~> 3.5.0) @@ -474,7 +465,7 @@ GEM simplecov-html (~> 0.10.0) simplecov-html (0.10.0) slop (3.6.0) - specinfra (2.64.0) + specinfra (2.66.0) net-scp net-ssh (>= 2.7, < 4.0) net-telnet @@ -558,7 +549,7 @@ GEM rubyzip (~> 1.1) winrm (~> 2.0) wmi-lite (1.0.0) - yajl-ruby (1.2.1) + yajl-ruby (1.3.0) yard (0.9.5) yard-classmethods (1.0.0) yard diff --git a/HISTORY.md b/HISTORY.md index 487a28d105..5c1a933256 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,25 @@ +## [v12.16.42](https://github.com/chef/chef/tree/v12.16.42) (2016-11-04) +[Full Changelog](https://github.com/chef/chef/compare/v12.15.19...v12.16.42) + +**Implemented enhancements:** + +- Core: improve readability of property-resource namespace collision exception message [\#5500](https://github.com/chef/chef/pull/5500) ([lamont-granquist](https://github.com/lamont-granquist)) +- Omnibus: Pull in Ohai 8.21.0 and other new deps [\#5499](https://github.com/chef/chef/pull/5499) ([tas50](https://github.com/tas50)) +- Core: Add deprecations to Data Collector run completion messages [\#5496](https://github.com/chef/chef/pull/5496) ([adamleff](https://github.com/adamleff)) +- Core: add attribute\_changed hook to event handlers [\#5495](https://github.com/chef/chef/pull/5495) ([lamont-granquist](https://github.com/lamont-granquist)) +- Knife: Add the `--field-separator` flag to knife show commands [\#5489](https://github.com/chef/chef/pull/5489) ([tduffield](https://github.com/tduffield)) +- Core: Enable Signed Header Auth for Data Collector, and Configure the Data Collector Automatically [\#5487](https://github.com/chef/chef/pull/5487) ([danielsdeleo](https://github.com/danielsdeleo)) +- Core: set use\_inline\_resources in package superclass [\#5483](https://github.com/chef/chef/pull/5483) ([lamont-granquist](https://github.com/lamont-granquist)) + +**Fixed bugs:** + +- Enable data collector w/o token for solo, but require explicit URL [\#5511](https://github.com/chef/chef/pull/5511) ([danielsdeleo](https://github.com/danielsdeleo)) +- Core: Include chef/chef\_class in Chef::REST for method log\_deprecation [\#5504](https://github.com/chef/chef/pull/5504) ([smalltown](https://github.com/smalltown)) +- Knife: Updating knife ssl fetch to correctly store certificate when it does not have a CN [\#5498](https://github.com/chef/chef/pull/5498) ([tyler-ball](https://github.com/tyler-ball)) +- Knife: Fixed knife download cookbooks issue which used to corrupt the certificate files each time the command was fired. [\#5494](https://github.com/chef/chef/pull/5494) ([Aliasgar16](https://github.com/Aliasgar16)) +- Solaris: Properly check lock status of users on solaris2 [\#5486](https://github.com/chef/chef/pull/5486) ([tduffield](https://github.com/tduffield)) +- Solaris: Fix IPS package must create symlinks to package commands [\#5485](https://github.com/chef/chef/pull/5485) ([jaymalasinha](https://github.com/jaymalasinha)) + ## [v12.15.19](https://github.com/chef/chef/tree/v12.15.19) (2016-10-07) [Full Changelog](https://github.com/chef/chef/compare/v12.14.89...v12.15.19) @@ -157,18 +157,32 @@ Whenever a change is checked in to `master`, the patch version of `chef` is bump 1. Bumps the patch version in `lib/chef/version.rb` (e.g. 0.9.14 -> 0.9.15). 2. Runs `rake bundle:install` to update the `Gemfile.lock` to include the new version. -3. Pushes to `master` and submits a new build to Chef's Jenkins cluster. +3. Runs `rake changelog:update` to update the `CHANGELOG.md`. +4. Pushes to `master` and submits a new build to Chef's Jenkins cluster. ## Bumping the minor version of Chef After each "official" stable release we need to bump the minor version. To do this: -1. Manually increment the minor version in the VERSION file that is in the root of this repo. and reset the patch version to 0. Assuming the current version is `12.10.57` you would edit `VERSION` to be `12.11.0`. -2. Run `bundle exec rake version` which will copy the version to the respective `version.rb` files in chef and chef-config. -3. Run `bundle exec rake bundle:install` to update the base Gemfile.lock +1. Run `bundle exec rake version:bump_minor` 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. @@ -37,6 +37,22 @@ end task "version:bump" => %w{version:bump_patch version:update} task "version:bump" => %w{version:bump_patch version:update} +task "version:bump_minor" do + Rake::Task["changelog:archive"].invoke + maj, min, _build = Chef::VERSION.split(".") + File.open("VERSION", "w+") { |f| f.write("#{maj}.#{min.to_i + 1}.0") } + Rake::Task["version"].invoke + Rake::Task["bundle:install"].invoke +end + +task "version:bump_major" do + Rake::Task["changelog:archive"].invoke + maj, _min, _build = Chef::VERSION.split(".") + File.open("VERSION", "w+") { |f| f.write("#{maj.to_i + 1}.0.0") } + Rake::Task["version"].invoke + Rake::Task["bundle:install"].invoke +end + task :pedant, :chef_zero_spec task :build_eventlog do @@ -1 +1 @@ -12.16.55
\ No newline at end of file +12.17.0 diff --git a/chef-config/lib/chef-config/version.rb b/chef-config/lib/chef-config/version.rb index 0e71cfc49a..a197885eb5 100644 --- a/chef-config/lib/chef-config/version.rb +++ b/chef-config/lib/chef-config/version.rb @@ -21,7 +21,7 @@ module ChefConfig CHEFCONFIG_ROOT = File.expand_path("../..", __FILE__) - VERSION = "12.16.55" + VERSION = "12.17.0" end # diff --git a/ci/bundle_install.sh b/ci/bundle_install.sh index 6c6d76dc5d..7f90f74964 100755 --- a/ci/bundle_install.sh +++ b/ci/bundle_install.sh @@ -5,5 +5,5 @@ set -evx gem environment bundler_version=$(grep bundler omnibus_overrides.rb | cut -d'"' -f2) gem install bundler -v $bundler_version --user-install --conservative -export BUNDLE_WITHOUT=default:omnibus_package:test:pry:integration:docgen:maintenance:changelog:travis:aix:bsd:linux:mac_os_x:solaris:windows +export BUNDLE_WITHOUT=default:omnibus_package:test:pry:integration:docgen:maintenance:travis:aix:bsd:linux:mac_os_x:solaris:windows bundle _${bundler_version}_ install diff --git a/ci/version_bump.sh b/ci/version_bump.sh index dd53cebfd5..147442666a 100755 --- a/ci/version_bump.sh +++ b/ci/version_bump.sh @@ -5,5 +5,6 @@ set -evx . ci/bundle_install.sh bundle exec rake version:bump +bundle exec rake changelog:update git checkout .bundle/config diff --git a/lib/chef/version.rb b/lib/chef/version.rb index 188300cb65..4b1a6c6926 100644 --- a/lib/chef/version.rb +++ b/lib/chef/version.rb @@ -21,7 +21,7 @@ class Chef CHEF_ROOT = File.expand_path("../..", __FILE__) - VERSION = "12.16.55" + VERSION = "12.17.0" end # diff --git a/tasks/changelog.rb b/tasks/changelog.rb index c710409345..989c43845d 100644 --- a/tasks/changelog.rb +++ b/tasks/changelog.rb @@ -1,31 +1,30 @@ begin require "github_changelog_generator/task" - # Take the current changelog and move it to HISTORY.md. Should be done when - # cutting a release - task :archive_changelog do - changelog = File.readlines("CHANGELOG.md") - File.open("HISTORY.md", "w+") { |f| f.write(changelog[2..-1].join("")) } - end + namespace :changelog do + # Take the current changelog and move it to HISTORY.md. Removes lines that + # would get duplicated the next time we pull HISTORY into the CHANGELOG. + task :archive do + changelog = File.readlines("CHANGELOG.md") + File.open("HISTORY.md", "w+") { |f| f.write(changelog[2..-4].join("")) } + end - # Run this to just update the changelog for the current release. This will - # take what is in History and generate a changelog of PRs between the most - # recent tag in HISTORY.md and HEAD. - GitHubChangelogGenerator::RakeTask.new :update_changelog do |config| - config.future_release = Chef::VERSION - config.between_tags = ["v#{Chef::VERSION}"] - config.max_issues = 0 - config.add_issues_wo_labels = false - config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature".split(",") - config.bug_labels = "bug,Bug,Improvement,Upstream Bug".split(",") - config.exclude_labels = "duplicate,question,invalid,wontfix,no_changelog,Exclude From Changelog,Question,Discussion".split(",") - config.header = "This changelog reflects the current state of chef's master branch on github and may not reflect the current released version of chef, which is [![Gem Version](https://badge.fury.io/rb/chef.svg)](https://badge.fury.io/rb/chef)" + # Run this to just update the changelog for the current release. This will + # take what is in History and generate a changelog of PRs between the most + # recent tag in HISTORY.md and HEAD. + GitHubChangelogGenerator::RakeTask.new :update do |config| + config.future_release = Chef::VERSION + config.between_tags = ["v#{Chef::VERSION}"] + config.max_issues = 0 + config.add_issues_wo_labels = false + config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature".split(",") + config.bug_labels = "bug,Bug,Improvement,Upstream Bug".split(",") + config.exclude_labels = "duplicate,question,invalid,wontfix,no_changelog,Exclude From Changelog,Question,Discussion".split(",") + config.header = "This changelog reflects the current state of chef's master branch on github and may not reflect the current released version of chef, which is [![Gem Version](https://badge.fury.io/rb/chef.svg)](https://badge.fury.io/rb/chef)" + end end - task :changelog do - Rake::Task["archive_changelog"].execute - Rake::Task["update_changelog"].execute - end + task :changelog => "changelog:update" rescue LoadError puts "github_changelog_generator is not available. gem install github_changelog_generator to generate changelogs" end |