Abandonando o master
A terminologia master/slave (mestre/escravo) existe há muitas décadas na computação e parece ter migrado para a indústria da tecnologia já no início do século XX. Esses conceitos normalmente estão associados a um modelo de comunicação assimétrico no qual um processo ou aparelho (o “mestre”) controla outros processos ou aparelhos (os “escravos”). Não é necessário dizer que os termos vêm sendo contestados há anos devido à evidente conotação racista, mas o debate ganhou nova vida após os protestos do Black Lives Matter em 2020.
Várias linguagens de programação já abandonaram essa terminologia. Em 2018, no caso em que possivelmente houve maior repercussão até hoje, o Python abandonou a palavra master por parent process (processo pai) e a palavra slave por worker (trabalhador) ou helper (ajudante) após um debate acalorado.
Enquanto isso, já em 2014, o Django passou a adotar a terminologia primary/replica (primário/réplica) e foi seguido pelo Drupal. Em 2017, o Internet Systems Consortium optou por primary/secondary (primário/secundário). Como se pode ver, não faltam alternativas para uma referência à escravidão.
Enfim, este ano foi a vez do GitHub. Desde sua criação, a plataforma de controle de versão tem utilizado o termo master para tratar do branch principal de um repositório e, apesar de nem existir uma analogia para algo como um slave branch, a palavra continua até hoje. Antes tarde do que nunca, a empresa anunciou que vai fazer uma transição em breve para o termo main (principal) e aposentar seu antecessor.
Justamente por pretender ser uma comunidade inclusiva e aberta, alguns programadores de R já começaram a transferir seus repositórios do GitHub para o novo modelo. Em seu blog, Steven Mortimer forneceu o passo-a-passo para fazermos o mesmo. Os comandos são bastante simples e estão listados abaixo:
# Passo 1
# Crie o branch 'main' localmente trazendo o histórico do 'master'
git branch -m master main
# Passo 2
# Faça o push do novo branch para o GitHub
git push -u origin main
# Passo 3
# Substitua o HEAD do 'master' para o 'main'
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
# Passo 4
# Troque o branch padrão no GitHub para o 'main'
# https://docs.github.com/pt/github/administering-a-repository/setting-the-default-branch
# Passo 5
# Delete o 'master'
git push origin --delete master
Note apenas que o Passo 4 deve ser realizado diretamente no GitHub de acordo com a documentação (disponível em português).
Caso você queira que o processo seja completamente automatizado, existe um aplicativo web que faz tudo para você. Para saber mais sobre os esforços do próprio GitHub, acesse a página na qual estão sendo discutidas as mudanças.