Skip to content

Commit 8dbf481

Browse files
authored
Merge pull request #151 from rspec/announce-rename
[draft] Announce renaming `master` to `main`
2 parents dd3ff2a + fe1c50f commit 8dbf481

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: RSpec Branching Strategy
3+
author: Jon Rowe
4+
no_comments: true
5+
---
6+
7+
# The short version
8+
9+
RSpec repositories will deprecate the use of `master` for the default branch
10+
name. We will wait for a consensus on the new name for the default branch,
11+
in particular what new default is chosen by Github.
12+
13+
If no other consensus is arrived at by 1st of August, `master` will be
14+
renamed `main`. At that point all development effort will be based off
15+
the new branch name, and use of `master` will illicit a warning on install
16+
/ usage. All open PRs will be rebased.
17+
18+
# The long version
19+
20+
RSpec's source code is hosted on Github. By default git, and thus Github has
21+
historically used `master` as the name of the default, or main branch. This
22+
term has sat uneasily on the minds of the team and with the recent community
23+
led moves to eliminate this terminology from our technology stacks, we are going
24+
to follow suit and rename this branch.
25+
26+
We currently favour `main` as the new name (it has shared muscle memory with
27+
the old) but we also recognise that having community consensus around a
28+
default name is important as it reduces the amount of surprise encountered by
29+
developers. So we will wait for the community to settle on a new default name,
30+
in particular for Github to change their default, but if none has been
31+
announced by 1st August we will use `main`.
32+
33+
We already have other branches in use for stable versions (e.g.
34+
`3-9-maintenance`) and they will be unaffected.
35+
36+
Some people will believe this is an inconvience because `master` is used for
37+
lots of things, but the term has its origins in the dominance of one person
38+
over another, in particular in slavery and this change is about being
39+
inclusive to all people.
40+
41+
## Implications
42+
43+
We have always encouraged the use of our main branch for getting pre-release
44+
features before we release them as a group of gems, this means there are likely
45+
people using the `master` branch via their Gemfiles. We will deprecate
46+
`master` by means of notice in the documentation, and possibly a post install
47+
/ on usage message from RSpec itself warning of the fact the branch will
48+
become stale and not be updated further. Additionally we will look at
49+
using branch protection rules preventing PRs against `master` from that date.
50+
51+
## Steps we intend to take
52+
53+
1. Push `master` to `main` (or other new branch name).
54+
2. Rebase all open PRs and update our builds.
55+
3. Set the default to `main` (etc) for all RSpec repositories.
56+
4. Push change deprecating `master` to `master`.
57+
5. In the future (possibly when releasing RSpec 4) remove `master`.

source/layouts/blog_post.slim

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
h3.author =current_page.data.author
77
small.date =current_page.date.strftime('%b %e, %Y')
88
= yield
9-
= partial "disqus"
9+
- unless current_page.data.no_comments
10+
= partial "disqus"

0 commit comments

Comments
 (0)