- A mediados de 2019, mientras buscaba trabajo, tuve que elegir entre Google Goteam y Sourcegraph
- Elegí Sourcegraph por su cultura de construir todo de forma pública
- Toda la documentación era pública por defecto, y los RFC técnicos y de producto, PR/FAQ, etc., se guardaban en carpetas públicas de Google Drive
- Toda la implementación del producto se realizaba en repositorios públicos de GitHub
- Ahora el repositorio
sourcegraph/sourcegraph se volvió privado
- Esta fue una decisión que destruyó la cultura atractiva de Sourcegraph
- Sourcegraph dejó un snapshot público llamado
sourcegraph/sourcegraph-public-snapshot
Mantener las referencias
- Mientras trabajaba en Sourcegraph, escribí muchos artículos en el blog de ingeniería
- Muchos artículos usaban como referencia enlaces al código público relacionado
- Ahora todos esos enlaces están rotos
- Existe el dicho: "Las URI geniales no cambian"
- Estoy tratando de preservar tanta información como sea posible para evitar que los enlaces se rompan de repente
- Hice un fork de
sourcegraph/sourcegraph en efritz/sourcegraph
- Los forks no heredan los pull requests, y los commits que no están referenciados directamente en una rama no son visibles
- Según la documentación de GitHub, aunque un repositorio público se vuelva privado, los forks siguen existiendo
- Sin embargo, cuando el repositorio original se vuelve privado, los commits fuera de la rama
main pueden desaparecer
Scraping de commits relacionados
- Ejecuté un programa en Go para encontrar todos los commits
- Este programa generó 2,645 archivos de metadatos de pull requests
- Usé
jq para leer los payloads JSON y extraer los datos
- Generé los archivos
pr_ids.txt, commits.txt y replace_pairs.txt
- Ejecuté un segundo programa para listar los commits no fusionados de cada pull request
- Este programa agregó commits al archivo
commits.txt
Traer commits a una nueva red de repositorios
- Los traje al fork creando ramas que contienen cada SHA relevante
- Usé un script en Bash para ejecutar las operaciones de git de forma secuencial
Reescritura de referencias
- Ahora ya puedo enlazar cada referencia a su destino dentro del fork
- Implementé el proceso automatizado con
xargs
- Reescribí las referencias directas a commits para que apunten al fork, y las referencias a pull requests para que apunten al commit de merge
Resumen de GN⁺
- El cambio de Sourcegraph a privado tuvo un gran impacto en la cultura open source
- Muchos enlaces de referencia del blog de ingeniería se rompieron, y preservarlos requirió mucho esfuerzo
- Se usaron forks de GitHub y scripts para reescribir referencias y preservar commits
- Este artículo destaca la sostenibilidad de los proyectos open source y la importancia de los enlaces de referencia
1 comentarios
Opiniones en Hacker News
Opinión del CEO de Sourcegraph:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario:
Opinión de otro usuario: