@@ -6,18 +6,19 @@ _Note: In the documentation listed below, the *current* minor version number is
662.1 and the * next* minor version number is 2.2_
77
88Regardless of the version, * all releases* must update the ` CHANGELOG.md ` and ` lib/bundler/version.rb `
9- files. The changelog for the first stable minor release (` 2.2.0 ` ) is a sum of all
10- the preceding pre-release versions (` 2.2.pre.1 ` , ` 2.2.pre.2 ` , etc) for that
11- minor version. The changelog for the first stable minor release is left blank
12- unless there are fixes included since the last pre/rc release.
9+ files.
10+
11+ While pushing a gem version to RubyGems.org is as simple as ` rake release ` ,
12+ releasing a new version of Bundler includes a lot of communication: team
13+ consensus, git branching, documentation site updates, and a blog post.
1314
1415## Workflow
1516
1617In general, ` master ` will accept PRs for:
1718
1819* feature merges for the next minor version (2.2)
1920* regression fix merges for a patch release on the current minor version (2.1)
20- * feature-flagged development for the next major version (2 .0)
21+ * feature-flagged development for the next major version (3 .0)
2122
2223### Breaking releases
2324
@@ -26,28 +27,31 @@ break backwards compatibility should (whenever this is possible) include a featu
2627release that is backwards compatible, and issue warnings for all options and
2728behaviors that will change.
2829
29- We try very hard to only release breaking changes when incrementing the _ major_
30- version of Bundler.
30+ We only release major breaking changes when incrementing the _ major_ version of
31+ Bundler and RubyGems. However, experience shows that almost every single part of
32+ Bundler and RubyGems is depended on by someone in ways hard to anticipate. So if
33+ we were strict about breaking changes we'd need to hold on from making progress
34+ a lot, or continuously increment the major version, emptying "really major"
35+ versions from their meaning. Because of this, we also may release "small"
36+ breaking changes in minor releases. "Small" here means that we expect them to
37+ affect only very few users in rare cases.
3138
32- ### Patch && minor releases
39+ ### Minor releases
3340
34- While pushing a gem version to RubyGems.org is as simple as ` rake release ` ,
35- releasing a new version of Bundler includes a lot of communication: team
36- consensus, git branching, documentation site updates, and a blog post.
41+ Minor releases of the next version start with a new release branch from the
42+ current state of master: ` 3.2 ` , and are immediately followed by a stable
43+ release.
44+
45+ ### Patch releases
3746
38- Patch and minor releases are made by cherry-picking pill requests from ` master ` .
47+ Patch releases are made by cherry-picking pull requests from ` master ` .
3948
4049### Branching
4150
4251Bundler releases are synchronized with rubygems releases at the moment. That
4352means that releases for both share the same stable branch, and they should
4453generally happen together.
4554
46- Minor releases of the next version start with a new release branch from the
47- current state of master: ` 3.2 ` , and are immediately followed by a prerelease
48- (might be a ` .pre.1 ` version or a ` .rc.1 ` version depending on the readiness of
49- the stable branch) or even directly by the final stable release.
50-
5155The current conventional naming for stable branches is ` x+1.y ` , where ` x.y ` is
5256the version of ` bundler ` that will be released. This is because ` rubygems-x+1.y `
5357will be released at the same time.
0 commit comments