- Em meados de 2019, durante uma busca por emprego, foi preciso escolher entre o Google Goteam e a Sourcegraph
- O motivo para escolher a Sourcegraph foi a cultura de construir tudo de forma pública
- Toda a documentação era pública por padrão, e RFCs técnicos e de produto, PR/FAQ etc. ficavam armazenados em uma pasta pública no Google Drive
- Toda a implementação do produto era feita em repositórios públicos no GitHub
- Agora o repositório
sourcegraph/sourcegraph foi tornado privado
- Essa foi uma decisão que destruiu a cultura atraente da Sourcegraph
- A Sourcegraph deixou um snapshot público chamado
sourcegraph/sourcegraph-public-snapshot
Mantendo as referências
- Durante o período em que trabalhou na Sourcegraph, foram escritos muitos artigos no blog de engenharia
- Muitos desses artigos usavam links para código público relacionado como referência
- Agora todos esses links foram quebrados
- Existe um ditado: "URIs legais não mudam"
- Está sendo feito o máximo possível para preservar as informações e evitar que links quebrem de repente
- Foi feito um fork de
sourcegraph/sourcegraph para efritz/sourcegraph
- Forks não herdam pull requests, e commits não referenciados diretamente por branches não ficam visíveis
- Segundo a documentação do GitHub, mesmo que um repositório público seja tornado privado, os forks continuam existindo
- Porém, quando o repositório original se torna privado, commits fora da branch
main podem desaparecer
Raspando commits relacionados
- Foi executado um programa em Go para localizar todos os commits
- Esse programa gerou 2.645 arquivos de metadados de pull requests
jq foi usado para ler os payloads JSON e extrair os dados
- Foram gerados os arquivos
pr_ids.txt, commits.txt e replace_pairs.txt
- Um segundo programa foi executado para listar os commits não mesclados de cada pull request
- Esse programa adicionou commits ao arquivo
commits.txt
Trazendo commits para uma nova rede de repositórios
- Branches contendo cada SHA relevante foram criadas e importadas para o fork
- Um script em Bash foi usado para executar as operações do git em sequência
Reescrevendo referências
- Agora cada referência pode apontar para o destino dentro do fork
xargs foi usado para implementar o processo de automação
- Referências diretas a commits foram reescritas para o fork, e referências a pull requests foram reescritas para commits de merge
Resumo do GN⁺
- A mudança da Sourcegraph para um repositório privado teve grande impacto na cultura open source
- Muitos links de referência do blog de engenharia foram quebrados, e preservá-los exigiu muito esforço
- Forks do GitHub e scripts foram usados para reescrever referências e preservar commits
- Este artigo destaca a sustentabilidade de projetos open source e a importância dos links de referência
1 comentários
Opiniões no Hacker News
Opinião do CEO da Sourcegraph:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário:
Opinião de outro usuário: