I am writing on behalf of the Python Release Management team. The Steering Council has requested the RM team to schedule
and perform the necessary changes to rename the default branch from master to main.
# The changes
What follows is the technical description of the changes and the timeline. In order to keep this thread focused on this particular
aspect, if you wish to discuss anything related to the change itself, please, open a new email thread or reuse an existing one.
- The change will be executed **when beta 1 is released**, as the beta 1 release requires some branching engineering already
to create the 3.10 branch and point 3.11 to the new one as well as changing CI, buildbots...etc **This is scheduled for
- The CI will be adapted to work with the new "main" branch.
- The buildbots will be adapted to work with the new "main" branch.
- Branch protection rules will be adapted.
- The different bots will be adapted by the respective bot maintainer teams.
- All the URLs that point to master in the README and other places will be adapted to point to main instead (notice this is
not strictly necessary because GitHub redirects automatically).
Notice that the renaming will automatically:
- Re-target any open pull requests
- Update any draft releases based on the branch
- Move any branch protection rules that explicitly reference the old name
- Show a notice to repository contributors, maintainers, and admins on the repository homepage with instructions to update local copies of the repository
- Show a notice to contributors who
git push to the old branch
- Redirect web requests for the old branch name to the new branch name
- Return a "Moved Permanently" response in API requests for the old branch name
Check this for more information.
# What you need to do?
You just need to update your local clone after the branch name changes. From the local clone of the repository on a computer,
run the following commands to update the name of the default branch.
$ git branch -m master main
$ git fetch origin
$ git branch -u origin/main main
Apart from that, you should update any local script or command that uses the name "master" to use the name "main".
Regards from windy London,
Pablo Galindo Salgado