Closed lgarron closed 2 years ago
I’m not opposed, but it’s not high priority right now.
I don't have strong feelings either way.
I've left most of my existing projects as master
so as to not break a number of scripts / aliases / muscle memory. At some point I may start new projects under a different default branch (main
, trunk
, default
, etc. all seem fine), but I'm not sure how far this goes towards ending racism, or how much it helps those that are otherwise harmed by hearing or reading the word master
. The timing of GitHub's move seemed like a bit of virtue signaling (given that there has been discussion on this topic in various communities for years beforehand), which I find distasteful. Especially given its rising popularity, I also recognize that others may find the failure of a project to migrate likewise distasteful.
In addition to avoiding unintentional harm, the other benefit of migrating now would be to avoid revisiting this topic going forward, as I imagine it will come up more than once.
If we change the branch, we should probably also rename, reword, or redact the handful of other uses of master
in the codebase -- looks like there's not too many: https://github.com/quicksilver/Quicksilver/search?q=master. @lgarron it seems like you've seen many more projects migrating than I have -- I assume that other projects changing their default branch are doing this as well?
In addition to avoiding unintentional harm, the other benefit of migrating now would be to avoid revisiting this topic going forward, as I imagine it will come up more than once.
This tends to be a good reason to do it. Basically everyone agrees that the name main
is unproblematic. It's the new default, and many big projects have already tackled the change earlier rather than later so that they can just use the unproblematic name rather than debating about the old one.
If we change the branch, we should probably also rename, reword, or redact the handful of other uses of
master
in the codebase -- looks like there's not too many: https://github.com/quicksilver/Quicksilver/search?q=master. @lgarron it seems like you've seen many more projects migrating than I have -- I assume that other projects changing their default branch are doing this as well?
To some extent. At this point, I'd say by far the most useful is renaming the development branch to match the modern default. Sometimes there are followup initiatives around removing other potentially exclusive language (master
/slave
databases, whitelist
/blacklist
instead of allowlist
/denylist
), but the Quicksilver codebase doesn't really seem to be using those. It looks like https://github.com/quicksilver/Quicksilver/blob/4374aea4eb98f8d5e22a447b2f2bc48dfa3736ed/Quicksilver/Tools/travis/check_indent.rb#L6 is the only change that would be needed at a technical level (assuming it's used? CI doesn't seem to use it?), although I'd be happy to send a PR to update the other references as well.
Some projects keep around a master
branch for a short while (e.g. automatically kept in sync with main
using GitHub Actions), but I don't think much would break if the master
branch disappeared from this repo entirely. If you use the button in the settings UI for the repo, pull requests will be automatically changed over, new checkouts will use main
, and the popup will direct folks to rename their branch locally. Even if based off a local master
branch from an older checkout, new pull requests will also still work.
Good to bring this up. I've noticed main
appearing more often as well. My biggest concern is that if we do it for the main repo, we'd also want to do it for all 180 repositories under the Quicksilver organisation. As such I'd say 'no' at this point.
But referencing Github's reason to do it:
GitHub will be named "main" instead of "master" as part of the company's effort to remove unnecessary references to slavery and replace them with more inclusive terms.
If people feel strongly about this then I'm OK with the change, as long as someone can cover doing the actual renaming. That would involve:
The timing of GitHub's move seemed like a bit of virtue signaling
You think? 😏
I’m not worried about appeasing people that have gone out of their way to pretend they don’t know what words mean just so they can very publicly demonstrate how much better they are than the rest of us.
I do think we should change it eventually, but only because “main” makes more sense.
Seems like there's a slight general consensus that we should change at some point. In which case - I say let's go for it.
@lgarron - since you brought this up, are you OK with changing all the repository names?
I already wrote a quick list of what I think needs doing – you should be able to do all except the last one. You may have other tasks that need doing so feel free to add them.
Seems like there's a slight general consensus that we should change at some point. In which case - I say let's go for it.
@lgarron - since you brought this up, are you OK with changing all the repository names?
I already wrote a quick list of what I think needs doing – you should be able to do all except the last one. You may have other tasks that need doing so feel free to add them.
I'd certainly be happy to help! Unfortunately, the default branch is a repo setting in GitHub, and of course I don't have the permissions for that. 😢
I don't know if it would be good form to ask for permission, but I'd certainly be glad to pitch in for what's needed to get something like this over the finish line!
At this point, I'd say by far the most useful is renaming the development branch
Interesting, having seen the changes to e.g.allowlist
in other projects' codebases (it would make an unusual default branch name ;) ), I had assumed master
would be considered equally harmful in the codebase (or documentation for that matter) as in the branch name. I would expect participating projects to be e.g. renaming variables and aliasing imports to avoid the use of master
(perhaps from external dependencies) as much as possible. @lgarron to your knowledge, is there something unique about the branch name in this regard that makes it more harmful than elsewhere? This seems like it should be a bigger effort than just branch renaming if it is really about the harm people experience when they see or hear the word master
.
Also, we're not using Travis anymore, so that file can probably be removed entirely.
One other concern is the precedent this sets for future problematic words that the current authors and contributors are ostensibly using without ill intent. As it seems incredibly unlikely that similar issues will fail to come to our attention in the future, does this implicitly oblige us to follow suit in those cases as well (or else seem more sensitive to the plight of some groups as opposed to others)?
does this implicitly oblige us to follow suit in those cases as well
I don’t think so. We aren’t obliged to make this change. We choose to. The same should apply to any similar requests going forward.
Agreed with skurfer.
I say let's make this change. Final point is that @lgarron will need to have admin
permission to make the changes (see: https://github.blog/changelog/2021-01-19-support-for-renaming-an-existing-branch/ )
Lucas has been around these parts for circa 10 years, so I'm comfortable with temp access to make the changes. Unless no others oppose by 25th April 23:59, @lgarron - I'll give you access then (or thereabouts).
Hi @lgarron - I've invited you the QS organisation, so you can change all branch names from master
to main
.
When you have time, please start on moving from master
to main
! Thanks
Hi @lgarron - I've invited you the QS organisation, so you can change all branch names from
master
tomain
.When you have time, please start on moving from
master
tomain
! Thanks
Thanks! I was able to accept the invite to the org.
I've tried the rename on https://github.com/quicksilver/Terminal-qsplugin, which seems to have gone well!
I'll get on the others, and look for any hardcoded references to master
along the way.
Okay, I've gone through all 180 repos (all of which are public).
I've essentially gone in reverse chronological order of "last modified", so the order at https://github.com/orgs/quicksilver/repositories?type=all is similar to what it was before.
Here's the full list (in aforementioned reverse chronological order):
https://github.com/quicksilver/AOL-qsplugin https://github.com/quicksilver/AddressBookActionsPlugIn-qsplugin https://github.com/quicksilver/Alarm-qsplugin https://github.com/quicksilver/Amazon-qsplugin https://github.com/quicksilver/LegacyAudio-qsplugin https://github.com/quicksilver/BBEdit-qsplugin https://github.com/quicksilver/Bezel-qsplugin https://github.com/quicksilver/Bluetooth-qsplugin https://github.com/quicksilver/BuddyPop-qsplugin https://github.com/quicksilver/CLIX-qsplugin https://github.com/quicksilver/CalendarSupport-qsplugin https://github.com/quicksilver/Camino-qsplugin https://github.com/quicksilver/Cl1p-qsplugin https://github.com/quicksilver/ColloquyPlugin-qsplugin https://github.com/quicksilver/Daemons-qsplugin https://github.com/quicksilver/DeliciousLibrary-qsplugin https://github.com/quicksilver/DesktopManager-qsplugin https://github.com/quicksilver/Deviant-qsplugin https://github.com/quicksilver/DiffModule-qsplugin https://github.com/quicksilver/DiscInterface-qsplugin https://github.com/quicksilver/DiskImage-qsplugin https://github.com/quicksilver/Dock-qsplugin https://github.com/quicksilver/DokuWiki-qsplugin https://github.com/quicksilver/Editor-qsplugin https://github.com/quicksilver/Eudora-qsplugin https://github.com/quicksilver/Expert-qsplugin https://github.com/quicksilver/FindModule-qsplugin https://github.com/quicksilver/Flickr-qsplugin https://github.com/quicksilver/Google-qsplugin https://github.com/quicksilver/GoogleCalendar-qsplugin https://github.com/quicksilver/Indigo-qsplugin https://github.com/quicksilver/InternetExplorer-qsplugin https://github.com/quicksilver/MachineSource-qsplugin https://github.com/quicksilver/Mailsmith-qsplugin https://github.com/quicksilver/Markdown-qsplugin https://github.com/quicksilver/Monolith-qsplugin https://github.com/quicksilver/MusicArtwork-qsplugin https://github.com/quicksilver/NetNewsWire-qsplugin https://github.com/quicksilver/NetworkLocation-qsplugin https://github.com/quicksilver/NimbusAppSwitcher-qsplugin https://github.com/quicksilver/NowContact-qsplugin https://github.com/quicksilver/OnMyCommand-qsplugin https://github.com/quicksilver/OrnateInterface-qsplugin https://github.com/quicksilver/Phone-qsplugin https://github.com/quicksilver/PowerManagementPlugIn-qsplugin https://github.com/quicksilver/PrimerInterface-qsplugin https://github.com/quicksilver/Printer-qsplugin https://github.com/quicksilver/ProcessSwitcherSupportPlugIn-qsplugin https://github.com/quicksilver/QSAdiumPlugIn-qsplugin https://github.com/quicksilver/QSBezelInterfacePlugIn-qsplugin https://github.com/quicksilver/QSDesktopPictureAction-qsplugin https://github.com/quicksilver/QSFullscreenPlugIn-qsplugin https://github.com/quicksilver/QSHomestarRunnerPlugIn-qsplugin https://github.com/quicksilver/QSPatchPlugIn-qsplugin https://github.com/quicksilver/QSRSSPlugIn-qsplugin https://github.com/quicksilver/QSSherlockPlugIn-qsplugin https://github.com/quicksilver/QSShiiraPlugIn-qsplugin https://github.com/quicksilver/QSSlimInterfacePlugIn-qsplugin https://github.com/quicksilver/QSSpellcheckAction-qsplugin https://github.com/quicksilver/QSWeatherPlugin-qsplugin https://github.com/quicksilver/RemoteDesktop-qsplugin https://github.com/quicksilver/SafariSearches-qsplugin https://github.com/quicksilver/Skype-qsplugin https://github.com/quicksilver/Slideshow-qsplugin https://github.com/quicksilver/SoundSupport-qsplugin https://github.com/quicksilver/StartupDisk-qsplugin https://github.com/quicksilver/Stikkit-qsplugin https://github.com/quicksilver/SystemKeys-qsplugin https://github.com/quicksilver/TSActionsPlugin-qsplugin https://github.com/quicksilver/Teleflip-qsplugin https://github.com/quicksilver/Template-qsplugin https://github.com/quicksilver/TextMate-qsplugin https://github.com/quicksilver/Translation-qsplugin https://github.com/quicksilver/UserAccounts-qsplugin https://github.com/quicksilver/X10PlugIn-qsplugin https://github.com/quicksilver/Xattr-qsplugin https://github.com/quicksilver/XattrMetadataImporter-qsplugin https://github.com/quicksilver/YouControlDesktopsPlugIn-qsplugin https://github.com/quicksilver/com.apple.spaces-qsplugin https://github.com/quicksilver/com.facebook-qsplugin https://github.com/quicksilver/elements.composerui-qsplugin https://github.com/quicksilver/elements.support.music-qsplugin https://github.com/quicksilver/elements.support.window-qsplugin https://github.com/quicksilver/elements.survey-qsplugin https://github.com/quicksilver/elements.trigger.gesture-qsplugin https://github.com/quicksilver/elements.trigger.hotkey-qsplugin https://github.com/quicksilver/elements.trigger.time-qsplugin https://github.com/quicksilver/elements.update-qsplugin https://github.com/quicksilver/elements.webbridge-qsplugin https://github.com/quicksilver/public.file.tags-qsplugin https://github.com/quicksilver/Plugins https://github.com/quicksilver/AirPort-qsplugin https://github.com/quicksilver/QSCubeInterface-unused-qsplugin https://github.com/quicksilver/qs-update https://github.com/quicksilver/qsopera https://github.com/quicksilver/QuickTimePlayer-qsplugin https://github.com/quicksilver/Cyberduck-qsplugin https://github.com/quicksilver/MiniInterface-qsplugin https://github.com/quicksilver/iPhoto-qsplugin https://github.com/quicksilver/com.apple.Automator-qsplugin https://github.com/quicksilver/Adium-qsplugin https://github.com/quicksilver/ChatSupport-qsplugin https://github.com/quicksilver/Messages-qsplugin https://github.com/quicksilver/Deminimizer-qsplugin https://github.com/quicksilver/com.apple.Xcode.devdocs-qsplugin https://github.com/quicksilver/CloudApp-qsplugin https://github.com/quicksilver/MailMate-qsplugin https://github.com/quicksilver/Transmit-qsplugin https://github.com/quicksilver/Abracadabra-qsplugin https://github.com/quicksilver/FileTagging-qsplugin https://github.com/quicksilver/Evernote-qsplugin https://github.com/quicksilver/iTerm2-qsplugin https://github.com/quicksilver/LaunchAtLoginController https://github.com/quicksilver/com.apple.Mail-qsplugin https://github.com/quicksilver/showcase https://github.com/quicksilver/OpenMetaFileTagging https://github.com/quicksilver/CubeInterface-qsplugin https://github.com/quicksilver/QSOmniWebPlugIn-qsplugin https://github.com/quicksilver/remember-the-milk-qsplugin https://github.com/quicksilver/VDKQueue https://github.com/quicksilver/SocialBookmarks-qsplugin https://github.com/quicksilver/plugin_template https://github.com/quicksilver/iTunes-qsplugin https://github.com/quicksilver/Spotlight-qsplugin https://github.com/quicksilver/1Password-Plugin https://github.com/quicksilver/manual https://github.com/quicksilver/RemoteHosts-qsplugin https://github.com/quicksilver/Audio-qsplugin https://github.com/quicksilver/BezelClassic-qsplugin https://github.com/quicksilver/GoogleChrome-qsplugin https://github.com/quicksilver/CommandLineTool-qsplugin https://github.com/quicksilver/Compression-qsplugin https://github.com/quicksilver/Dash-qsplugin https://github.com/quicksilver/Displays-qsplugin https://github.com/quicksilver/elements.trigger.event-qsplugin https://github.com/quicksilver/FaceTime-qsplugin https://github.com/quicksilver/elements.hfsattributes-qsplugin https://github.com/quicksilver/ImageManipulation-qsplugin https://github.com/quicksilver/Keychain-qsplugin https://github.com/quicksilver/Menu-qsplugin https://github.com/quicksilver/elements.trigger.mouse-qsplugin https://github.com/quicksilver/PathFinder-qsplugin https://github.com/quicksilver/ProcessManipulationPlugIn-qsplugin https://github.com/quicksilver/com.apple.Safari-qsplugin https://github.com/quicksilver/Services-qsplugin https://github.com/quicksilver/elements.textmanipulation-qsplugin https://github.com/quicksilver/Viscosity-qsplugin https://github.com/quicksilver/QSWindowInterfacePlugIn-qsplugin https://github.com/quicksilver/Yojimbo-qsplugin https://github.com/quicksilver/zoom.us https://github.com/quicksilver/UIAccess-qsplugin https://github.com/quicksilver/Networking-qsplugin https://github.com/quicksilver/TextStartRanker-qsplugin https://github.com/quicksilver/com.apple.AddressBook-qsplugin https://github.com/quicksilver/QSOmniFocusPlugIn-qsplugin https://github.com/quicksilver/com.google.mail-qsplugin https://github.com/quicksilver/MiniBezel-qsplugin https://github.com/quicksilver/GrowlNotifier-qsplugin https://github.com/quicksilver/NotificationHub-qsplugin https://github.com/quicksilver/elements.support.mail-qsplugin https://github.com/quicksilver/Firefox-qsplugin https://github.com/quicksilver/ExtraScripts-qsplugin https://github.com/quicksilver/QRCodePlugin-qsplugin https://github.com/quicksilver/com.apple.Xcode.application-qsplugin https://github.com/quicksilver/Calendar-Reminders-qsplugin https://github.com/quicksilver/elements.websearch-qsplugin https://github.com/quicksilver/Calculator-qsplugin https://github.com/quicksilver/Twitter-Plugin https://github.com/quicksilver/Nostromo https://github.com/quicksilver/PluginDevelopmentReference https://github.com/quicksilver/MicrosoftOffice-qsplugin https://github.com/quicksilver/Flashlight-qsplugin https://github.com/quicksilver/QSApp.com https://github.com/quicksilver/ScreenCapture-qsplugin https://github.com/quicksilver/DictPlugin-qsplugin https://github.com/quicksilver/elements.clipboard-qsplugin https://github.com/quicksilver/Shelf-qsplugin https://github.com/quicksilver/Terminal-qsplugin https://github.com/quicksilver/ndhotkeyevent https://github.com/quicksilver/Quicksilver
There are 3 repos I was not able to change, because I don't seem to have access to settings for them:
I've also sent a PR to update the main stale references to master
I could find in the main repo:
There are a few others, but they seem historical (e.g. in a changelog entry from over 10 years ago) or self-correcting (e.g. in Xcode files).
Feel free to remove my permission when you see fit!
Okay, I've gone through all 180 repos (all of which are public).
Phew, great job!
There are 3 repos I was not able to change, because I don't seem to have access to settings for them:
I've just given you access to those 3, so you should be able to update them as well :)
For those devs with lots of QS copies locally, here's a script you can run to rename all folders:
for dir in */; do
cd "$dir"
if [[ `git branch --list master` ]]; then
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
fi
cd "../"
done
@lgarron - did you manage to change the branch names for those last 3 repos you mentioned? Once done, please let us know so we can close this issue and mark it as complete!
@lgarron - did you manage to change the branch names for those last 3 repos you mentioned? Once done, please let us know so we can close this issue and mark it as complete!
Done! :-D
🎉 🎉 🎉
Thanks for all your contributions!
A lot of projects have renamed their main branch to
main
[^1], and GitHub makes it easy to do this in the repository settings to that the branch dropdown on the repo features a little popup about the change: https://github.com/github/renamingWould you have any interest in switching over?
[^1]: In fact, so many projects have switched that
master
has left my muscle memory at this point.