Skip to content

Commit 0ae1510

Browse files
authored
Merge pull request #7280 from rubygems/pass-on-release-docs
Update release documentation to more accurately reflect the process
2 parents c6ab3ca + 8689044 commit 0ae1510

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

bundler/doc/playbooks/RELEASING.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@ _Note: In the documentation listed below, the *current* minor version number is
66
2.1 and the *next* minor version number is 2.2_
77

88
Regardless 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

1617
In 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
2627
release that is backwards compatible, and issue warnings for all options and
2728
behaviors 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

4251
Bundler releases are synchronized with rubygems releases at the moment. That
4352
means that releases for both share the same stable branch, and they should
4453
generally 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-
5155
The current conventional naming for stable branches is `x+1.y`, where `x.y` is
5256
the version of `bundler` that will be released. This is because `rubygems-x+1.y`
5357
will be released at the same time.

0 commit comments

Comments
 (0)