Effectiveness of Tool: github-default-branch - Samvera Branch Renaming Working Group
Setup
- Create a test repo with a master branch, issues, PRs - See samvera-labs/branch-renaming-wg for a script to do this.
- Within the test repo, create a wiki page that references a branch in master.
- Within the test repo, add branch settings under Settings → Branches
- Create a Fork of the test repo.
- Clone the test repo to your local machine.
- Clone the Fork to your local machine.
- Create a second repo with a pin in the Gemfile to a master sha in the repo having the branch renamed
Tool: gitHub-default-branch
Reference:
Usage:
install with
npm install -g github-default-branch
run with
github-default-branch --pat <github_access_token> --repo <github_username>/branch-renaming-test
Once complete, all local clones will need to run the following to update their
master
branch to be connected toorigin/main
From the directory for the local clone…git checkout master git pull git branch -m main
NOTE:
git fetch
is not sufficient. You need to usegit pull
for this to work.
Checklist:
- renames master to main
- branch dropdown defaults to main
- master is not in the branch dropdown
- Settings → Branches
- main is the default branch
- branch rules were copied over to main
- master branch is not in the branch dropdown under Default branch
- master branch is not listed in the Branch protection rules area
- updates issues
- changes reference to a sha in master to the same sha in main
- changes links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
- updates PRs
- updates 'commit into' branch to main for all PRs (NOTE:
- updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
- wiki updated
- updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
- local git repo
- updates to local master tracking origin/master to local main tracking origin/main
- updates branches based on origin/master to origin/main
- updates branches based on local master to local main
- in second repo, updates pin to master sha in the repo having the branch renamed
- working with Forks
- TBD
Additional areas not tested
- automated builds and deployments that reference master branch
- building images that aren't from tags but from branches
- Jenkins
- Ansible
- other tooling that references master branch
- git aliases
- local shell scripts
- maintenance scripts for github API
- git reflow or other 3rd party tools
- Integrations
- Github hooks, coveralls, code climate, hound, circleci
- mirroring with other sources (e.g. gitlab mirroring github)
- notifications to tools (e.g. slack integration)
- documentation (eg. raw.github.com URLs)
- wikis
- READMEs
- samvera.github.io
- samvera.org
- github pages for the project
- Contributing
- references to master in code
- Gemfile pins
- To possible JSON documents in Github repos
- forks
- Within "usual" contributors
- Other "users"
- In particular, Browse Everything has utility outside of Samvera's adopters
Case Study: samvera-circleci-orb:
https://github.com/samvera-labs/samvera-circleci-orb/issues/45
Ran:
github-default-branch --repo samvera-labs/samvera-circleci-orb --pat <token> --verbose --dry-run github-default-branch --repo samvera-labs/samvera-circleci-orb --pat <token> --verbose
Checklist:
- renames master to main
- branch dropdown defaults to main
- master is not in the branch dropdown
- Settings → Branches
- main is the default branch
- branch rules were copied over to main
- master branch is not in the branch dropdown under Default branch
- master branch is not listed in the Branch protection rules area
- updates issues
- changes reference to a sha in master to the same sha in main (N/A)
- changes links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (See https://github.com/samvera-labs/samvera-circleci-orb/issues/29)
- changes reference to a sha in master to the same sha in main (N/A)
- updates PRs
- updates 'commit into' branch to main for all PRs (NOTE:
- updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (N/A)
- wiki updated
- updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (N/A)
- updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (N/A)
- local git repo (None as expected)
- updates to local master tracking origin/master to local main tracking origin/main
- updates branches based on origin/master to origin/main
- updates branches based on local master to local main
- in second repo, updates pin to master sha in the repo having the branch renamed
- working with Forks
- TBD (One exists but no noticeable changes as expected)
- TBD (One exists but no noticeable changes as expected)
- README and other documents (Untested - Already done in https://github.com/samvera-labs/samvera-circleci-orb/commit/dda15dde353dc8303382507ab5601757bd3651b8)
- Integrations:
- CircleCI (Ran fine after rebasing a PR)
Locations text "master" still exists (mostly found via github search):
- Comments on PRs about repointing to main from tool running
- Links to code outside this repository
- Issues and PRs related to the renaming
- Closed PRs (not in github search)