27 Branch Rename FAQs

The Bioconductor project has chosen ‘devel’ to be the default branch for GitHub and git repositories. To prepare for this transition, we have compiled a list of Frequently Asked Questions (FAQs) below.

27.1 What is changing?

The Bioconductor core team will rename the default branch to ‘devel’ on the Bioconductor git repository located at git.bioconductor.org. All other repositories including those on repository hosting platforms such as GitHub, GitLabs, etc. will not be affected by our change. Maintainers and developers will be responsible for updating their local and cloud git repositories.

27.2 Who is affected by this change?

Bioconductor developers and maintainers are affected by this change. Bioconductor users are not affected.

27.3 What repositories are affected by this change?

Note that there may exist several clones of a single Bioconductor repository. Only the Bioconductor repository that resides at git.bioconductor.org will be affected. The default branch for all packages in the Bioconductor git server will be set to devel. Maintainers and collaborators will be responsible for updating the local and cloud copies of their repositories.

27.4 What do I need to change?

Bioconductor developers will have to rename default branches on their repositories to ‘devel’. This includes GitHub and other local copies of their repositories including those from collaborators.

Bioconductor users will not need to do anything.

27.5 What should my Git remotes look like?

A recommended git remote set up should have origin set to the GitHub location and upstream to the Bioconductor git repository. For example, this would be the set up for BiocGenerics:

git remote -v
# origin    git@github.com:Bioconductor/BiocGenerics (fetch)
# origin    git@github.com:Bioconductor/BiocGenerics (push)
# upstream  git@git.bioconductor.org:packages/BiocGenerics (fetch)
# upstream  git@git.bioconductor.org:packages/BiocGenerics (push)

Note that we are using the SSH protocol for both remotes.

27.6 How do I sync my Git remotes?

Before making updates to branches, make sure that both remotes origin and upstream are in sync with:

git checkout master
git pull origin master
git pull upstream devel:master

27.7 How do I set ‘devel’ as the default local branch?

The recommended way to use devel as the default branch is to carry out the rename operation on GitHub first then perform an adjustment of the local branch(es).

Once the branch is renamed, use the GitHub commands to update the local copy of the repository:

git branch -m master devel
git fetch origin
git branch -u origin/devel devel
git remote set-head origin -a

Note. Change ‘master’ to ‘main’ in the code above if the repository has ‘main’ as the default branch.

27.8 How do I set ‘devel’ as the default branch on GitHub?

GitHub has provided a convenient way to rename the default branch for any repository. Go to https://github.com/{username}/{repo}/branches where username and repo correspond to your GitHub username and repository, respectively.

Click on the ‘edit’ pencil to rename the branch (seen here at the bottom right corner) and rename the branch to ‘devel’:

27.9 How do I push to Bioconductor after renaming?

To push upstream to Bioconductor, the developer will simply push to the devel branch:

## branch should already exist
git checkout devel
#### <commit changes and bump version etc.>
git push upstream devel

27.10 What if I have a GitLab repository?

Although the Bioconductor issue tracker does not support GitLab repositories, you can still change the default branch on GitLab. See the change default branch instructions. Updating the local repository can be done similarly as the instructions above.

27.10.1 Early Branch Rename Adopters

NOTE: This section is for eager developers who would like to make changes to their local repositories before the Bioconductor git branch rename.

27.10.1.1 Sync repositories

Before making updates to branches, make sure that both remotes origin and upstream are in sync:

git checkout master
git pull origin master
git pull upstream master

27.10.1.2 Rename devel branch on GitHub

The rename operation should be done via GitHub. Go to https://github.com/{username}/{repo}/branches where username and repo correspond to your GitHub username and repository, respectively.

Click on the ‘edit’ pencil to rename the branch (seen here at the bottom right corner) and rename the branch to ‘devel’:

Once the branch is renamed, use the GitHub commands to update the local repository:

git branch -m master devel
git fetch origin
git branch -u origin/devel devel
git remote set-head origin -a

Note. origin here is set to the GitHub remote and tracking is set to origin/devel.

27.10.1.3 Pushing to Bioconductor

Mapping of branches is required to push upstream for early adopters, until the branch is renamed on the Bioconductor git server. The git push operation is as follows:

## branch should already exist
git checkout devel
#### <make changes to repository>
git push upstream devel:master