DEV Community

Cover image for Goodbye Master, Hello...What?
Jason C. McDonald for MousePaw Media

Posted on

Goodbye Master, Hello...What?

Next week, we'll begin the process of renaming the master branch on all our repositories to something else.

In case this movement in tech is a bit unfamiliar to you, or you want to know how to do this yourself, @afrodevgirl has an awesome and succinct summary:

Why the Delay?

We've had this on our plan since mid-June, but we were in the middle of GAME MODE 2020, and given the pace and task prioritization involved, attempting this change then would have been more than a little disruptive to workflow, and quite prone to error.

Now that we're moving into July and back into our usual tasks, the time is right to make the transition.

Renaming the master branch is easy enough itself, but that really belies what's involved:

  • We have to rename the primary branch on over two dozen repositories.

  • We have to change the entire CI/CD pipeline to react to changes on the new primary branch name.

  • We have to update all our standards, policy documents, and workflow documentations to reflect the new primary branch name.

  • We have to test all of the above.

That really isn't too much to do, but it can easily turn into several days of poking the build system and pipeline with a stick. We don't mind, but hopefully you can see why we had to wait until now!

Picking a Name

We've had a couple of discussions recently as a team about what to call this new branch. After all, if we're changing it anyway, we should take the occasion to find a good name!

Right now, our protected branches look like this:

  • master: the current development version.
  • fresh: the current beta or pre-release version.
  • stable: the current release version.

Honestly, master never made much sense. We only used it because that was the norm for Git.

We've narrowed the possibilities down to four candidates:

devel

Since the primary branch contains the latest development version, which changes constantly, the name devel might make sense. It sends a clear message to users browsing the repository that this version isn't intended for production use.

devel, fresh, stable. That seems to spell out our workflow pretty well.

edge

Ben Halpern mentioned this name in a comment thread, and I (Jason) rather liked it. It refers to "bleeding edge", which implies that you could use this version of the code, but that you'd need to beware sharp edges and bugs.

edge, fresh, and stable sounds pretty cool, doesn't it?

One downside: this may now also be reminiscent of a certain web browser, which could muddy the issue.

main

This is an option only because GitHub uses it by default. Developers are likely to get used to it, if they aren't already.

The problem is, main seems to have the same vagueness of purpose master did, if not moreso. What would you find in main? The main version? Sounds good to Mr. End User...but they'd be wrong.

Personally, with main, fresh, stable, it makes stable read as stale to me. But maybe that's just my dyslexia talking.

trunk

An oldie but a goodie. This term comes from Subversion, the industry standard version control software before Git really took off. We also get "branch" from this.

Every branch is based on trunk. It just makes sense! But does it fit our workflow? trunk, fresh, stable. Not sure.

What Do You Think?

We're running a poll on our Phabricator instance for all of our contributors to weigh in. You're encouraged to register for an account there via your GitHub (we usually approve new accounts within a couple of hours) and put your two-cents in.

Alternatively, leave a comment here.

Ultimately, the team will make the final call at week's end, so we can start the transition on Monday, 06 July, but we'd love your feedback!

This is not the place to debate about whether master should be renamed. Any comments to that effect will be hidden and reported.

Top comments (19)

Collapse
 
yougotwill profile image
Will G

At a previous company I worked at we had master and develop where the latter was used for the latest work and master was the stable branch. Going forward in my own work I think I will use stable instead of master and keep develop as is. Seems pretty easy to me :)

Collapse
 
perpetual_education profile image
perpetual . education

We never understood why it was called 'master' - or really why it's called "production" either. No solution yet... but - 'devel' doesn't seem that fun. We always prefer 'random' over 'rand.'

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Here's some of the history behind Git's use of master, from the guy who started using it.

But, yeah, I feel like edge is more fun, personally.

Collapse
 
scottshipp profile image
scottshipp

It has to be trunk! If you use the term 'branches' and 'working tree', a lot of order is restored to the universe (in my opinion) by calling the trunk of the tree what it is:

the trunk!

I've been so surprised about this discussion. I can't imagine calling it anything else.

Except . . .

The tide in the community seems to be inevitably toward main . . . and that's what my company has now adopted internally. Oh well.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Actually, I think you make a pretty good point. The only trouble in our system with calling it "trunk" is that we effectively have three trees: stable, fresh, and (now) devel. While changes generally flow devel -> fresh -> stable, that's not always the case. If there's a critical bug in stable, and we're working on a separate release on fresh, we would need to branch off stable, change things, run it through the CI/CD, and then land that branch directly to stable.

It's somewhat along the same lines as when one of our team members said it should really be "main" to indicate "the primary branch" β€” even he agreed that didn't make sense once I explained that we had three primaries.

Collapse
 
scottshipp profile image
scottshipp

Three trunks . . . It's a hydra! :D

Collapse
 
trasherdk profile image
Info Comment hidden by post author - thread only accessible via permalink
TrasherDK

"some comments removed" :)

Collapse
 
codemouse92 profile image
Jason C. McDonald

Yup, all the unproductive debate about whether master should even be changed, which I explicitly stated at the end of the article has no place in this discussion. ;)

Sometimes you have to take a hard line on intolerance.

Collapse
 
trasherdk profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
TrasherDK

Censoring opposing opinions is just another form of intolerance.

I have no opinion about what your choose to call your github branches. That's totally up to you,

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

Welcome to the paradox of intolerance: to support tolerance, one must be intolerant of intolerance. That means, no, I don't have to give voice to people baselessly criticizing the very real experiences of people wholly dissimilar to themselves.

Besides, there are other places to have this conversation about whether master should be renamed...although it's honestly been exhausted across multiple threads and articles. The only dissenters are people with absolutely no stake in the matter save a minor inconvenience in renaming a couple of things. Many of the people who have reason to care have already spoken.

From the DEV Code of Conduct:

Examples of behavior that contributes to creating a positive environment include:

....

  • Being respectful of differing viewpoints and experiences.

...

Examples of unacceptable behavior by participants include:

...

  • Dismissing or attacking inclusion-oriented requests

...

We pledge to prioritize marginalized people’s safety over privileged people’s comfort.

As the "pro-master" arguments are almost always in violation of those first two cited principles, I am merely exercising the third.

Thread Thread
 
trasherdk profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
TrasherDK

As noted before. I don't care what you call your branches. It's none of my business.
What I do care about is censorship. When you choose to make a political statement in a public forum, you can not delete responses you don't like. You opened the gate, now deal with the responses.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

Literally not how it works, mate. Free speech doesn't mean hate speech is tolerable, especially not here. That is the literal exact reason "Hide Comment" was given to all authors.

If "I should be able to say whatever to whomever" is your philosophy, you're on the wrong platform.

Thread Thread
 
trasherdk profile image
TrasherDK

Well. I'm not saying "hate speech is tolerable" or "I should be able to say whatever to whomever".
I'm saying that I'm not happy about censorship anywhere.

In my opinion, a developer community platform, is not the right place to push a political agenda.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

What you perceive as a "political agenda" is really an issue of interpersonal compassion and intercultural communication. You don't have the slightest idea what real censorship is. You're merely angry that you (or someone else) isn't being given free and unbridled voice after being warned this was not the place for the topic.

The issue of master matters deeply to some people of color, and therefore, it should matter to us. It's not political, it's personal to them. They've already been publicly criticized and flamed for feeling that way, and that's not okay.

It's your crowd that made this "political". If you feel it's so morally reprehensible to lend your shoulder to a wheel that means nothing to you, but a lot to someone else, then the best thing you can do is recognize that you cannot possibly contribute any value to this conversation, sit down, and let saner heads prevail. You are entirely in the wrong here.

But I am not bothering any further with this. I've only responded now in hopes that you can learn something. However, I have hidden your comment thread as well, as per my article's warning and consistent with this website's Code of Conduct. This is not the place. In case you have any further objections, just understand: I am exercising MY right to free speech when I put the brakes on unproductive debates in MY article comments. If you want to complain, find your own place for it. This spot doesn't belong to you.

Collapse
 
terpinmd profile image
terpinmd

Phew

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more