[ClusterLabs Developers] Pacemaker 2.1.0: Should we rename the master branch?

Andrew Price anprice at redhat.com
Tue Oct 20 13:26:04 EDT 2020

[CC+ cluster-devel]

On 19/10/2020 23:59, Ken Gaillot wrote:
> On Mon, 2020-10-19 at 07:19 +0200, Fabio M. Di Nitto wrote:
>> Hi Ken,
>> On 10/2/2020 8:02 PM, Digimer wrote:
>>> On 2020-10-02 1:12 p.m., Ken Gaillot wrote:
>>>> Hi all,
>>>> I sent a message to the users at clusterlabs.org list about
>>>> releasing
>>>> Pacemaker 2.1.0 next year.
>>>> Coincidentally, there is a plan in the git and Github communities
>>>> to
>>>> change the default git branch from "master" to "main":
>>>>    https://github.com/github/renaming
>>>> The rationale for the change is not the specific meaning as used
>>>> in
>>>> branching, but rather to avoid any possibility of fostering an
>>>> exclusionary environment, and to replace generic metaphors with
>>>> something more obvious (especially to non-native English
>>>> speakers).
>> No objections to the change, but please let´s coordinate the change
>> across all HA projects at once, or CI is going to break badly as the
>> concept of master branch is embedded everywhere and not per-project.
> Presumably this would be all the projects built by jenkins?
>   booth
>   corosync
>   fence-agents
>   fence-virt
>   knet
>   libqb
>   pacemaker
>   pcs
>   qdevice
>   resource-agents
>   sbd
> Maintainers, do you think that's practical and desirable?

If the ClusterLabs projects switch together I might take the opportunity 
to make the switch in gfs2-utils.git at the same time, for consistency.

> Is there a single name that makes sense for all projects? "next",
> "development" or "unstable" captures how pacemaker uses master, not
> sure about other projects. "main" is generic enough for all projects,
> but so generic it doesn't give an idea of how it's used. Or we could go
> for something distinctive like fedora's "rawhide" or suse's
> "tumbleweed".

"main" works for me, it seems to be the most widely adopted alternative 
thanks to Github, so its purpose will be clear by convention. That said, 
it doesn't matter too much as long as the remote HEAD is set to the new 

Another question is how to do the switch without causing confusion the 
next time someone pulls. It might be safest to simply create the main 
branch and delete the master branch (rather than, say, replacing all of 
the content in master with an explanatory note). That way a 'git pull' 
gives a hint of the change and no messy conflicts:

   $ git pull
   From /tmp/gittest/upstream
    * [new branch]      main       -> origin/main
   Your configuration specifies to merge with the ref 'refs/heads/master'
   from the remote, but no such ref was fetched.

Maybe also push a 'master_is_now_main' tag annotated with 'use git 
branch -u origin/main to fix tracking branches'. Or maybe that's 
excessive :)


>> Since we are admin of all repositories, we can do it in one shot
>> without
>> too much pain and suffering in CI. It will require probably a day or
>> two
>> of CI downtime to rebuild the world as well.
>> Fabio
>>>> The change would not affect existing repositories/projects.
>>>> However I
>>>> am wondering if we should take the opportunity of the minor-
>>>> version
>>>> bump to do the same for Pacemaker. The impact on developers would
>>>> be a
>>>> one-time process for each checkout/fork:
>>>> https://wiki.clusterlabs.org/wiki/Pacemaker_2.1_Changes#Development_changes
>>>> In my opinion, this is a minor usage that many existing projects
>>>> will
>>>> not bother changing, but I do think that since all new projects
>>>> will
>>>> default to "main", sometime in the future any project still using
>>>> "master" will appear outdated to young developers.
>>>> We could use "main" or something else. Some projects are
>>>> switching to
>>>> names like "release", "stable", or "next" depending on how
>>>> they're
>>>> actually using the branch ("next" would be appropriate in
>>>> Pacemaker's
>>>> case).
>>>> This will probably go on for years, so I am fine with either
>>>> changing
>>>> it with 2.1.0 (since it has bigger changes than usual, and we can
>>>> get
>>>> ahead of the curve) or waiting until the dust settles and future
>>>> conventions are clearer.
>>>> Opinions?
>>> I support this change whole heatedly. I'll leave it to others to
>>> decide
>>> what new word is best (though 'main' makes sense to me), but the
>>> goal of
>>> moving away from 'master/slave' is well worthwhile and appreciated.

More information about the Developers mailing list