2 pontos por GN⁺ 2024-08-21 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-08-21
Opiniões no Hacker News
  • Opinião do CEO da Sourcegraph:

    • O motivo para tornar a base de código interna privada foi manter o foco
    • Ser open source e manter tudo público gera muito trabalho extra e riscos
    • É preciso focar em criar um excelente produto de busca/inteligência de código para os clientes
    • A empresa ainda faz muita coisa para desenvolvedores e para a comunidade OSS
      • Oferece um serviço popular de busca pública de código
      • Mantém muito código open source
    • Se outros fundadores estiverem pensando se devem ou não abrir seu código, ele se dispõe a conversar
  • Opinião de outro usuário:

    • A Sourcegraph era vista como uma empresa que entendia bem a cultura de desenvolvedores, então as mudanças recentes são decepcionantes
    • Tentou encontrar o roadmap público, mas a maior parte da documentação também foi tornada privada
    • O handbook antes público foi movido para o Notion, e a maioria das partes importantes agora aponta para documentos privados no Google
  • Opinião de outro usuário:

    • Recentemente, o índice de busca pública da Sourcegraph desapareceu
    • Usava muito a Sourcegraph até que a busca do GitHub melhorasse
    • Agora repositórios do GitLab e muitos repositórios do GitHub sumiram do índice
    • Por causa de uma busca pouco confiável, acabou tendo que voltar para o GitHub
  • Opinião de outro usuário:

    • Fez um fork da versão open source, removeu telemetria, desativou atualizações, removeu código proprietário, criou uma imagem Docker e implementou autenticação Oauth2 leve
    • Pretende executá-la por muito tempo atrás do Oauth2-Proxy
    • É um software muito confiável
  • Opinião de outro usuário:

    • Usava muito a Sourcegraph em trabalhos de engenharia reversa no macOS
    • Muitos projetos existem graças à busca da Sourcegraph
    • Espera que a funcionalidade de busca não desapareça no futuro
  • Opinião de outro usuário:

    • Tornar todo o trabalho de desenvolvimento privado é estranho e desconcertante
    • Fica a dúvida de por que migraram para o privado se apenas restrições de licença já poderiam bastar para atingir os objetivos de negócio
  • Opinião de outro usuário:

    • Usou muito a Sourcegraph, mas se pergunta quantas pessoas realmente pagaram por isso
    • Tocar uma empresa open source é algo difícil
    • Entende que, à medida que a empresa amadurece, há coisas que não podem mais ser oferecidas de graça
  • Opinião de outro usuário:

    • O projeto Software Heritage arquivou a maior parte dos repositórios da Sourcegraph
    • O último rastreamento foi em meados de julho de 2024
  • Opinião de outro usuário:

    • Menciona um episódio anterior em que a Sourcegraph já não era mais open source
  • Opinião de outro usuário:

    • Citou e recomendou muito a Sourcegraph, mas nunca chegou a pagar por ela
    • Tem curiosidade sobre o motivo de terem abandonado o open source, mas não considera isso surpreendente