- Au milieu de l’année 2019, pendant une recherche d’emploi, il fallait choisir entre Google Goteam et Sourcegraph
- La raison du choix de Sourcegraph était sa culture qui permettait de tout construire en public
- Toute la documentation était publique par défaut, et les RFC techniques et produit, les PR/FAQ, etc. étaient stockés dans des dossiers Google Drive publics
- Toute l’implémentation produit se faisait dans des dépôts GitHub publics
- Le dépôt
sourcegraph/sourcegraph est désormais devenu privé
- C’était une décision qui a détruit la culture attractive de Sourcegraph
- Sourcegraph a laissé un snapshot public appelé
sourcegraph/sourcegraph-public-snapshot
Préserver les références
- Pendant le travail chez Sourcegraph, de nombreux articles ont été écrits sur le blog d’ingénierie
- Beaucoup de ces articles utilisaient comme références des liens vers le code public associé
- Désormais, tous ces liens sont cassés
- Il existe un dicton : « Les URI sympas ne changent pas »
- Des efforts sont en cours pour préserver autant d’informations que possible afin d’éviter que les liens ne cassent soudainement
sourcegraph/sourcegraph a été forké vers efritz/sourcegraph
- Un fork n’hérite pas des pull requests, et les commits qui ne sont pas directement référencés par des branches ne sont pas visibles
- D’après la documentation GitHub, même si un dépôt public devient privé, les forks continuent d’exister
- Cependant, lorsque le dépôt d’origine devient privé, les commits autres que ceux de la branche
main peuvent disparaître
Récupération des commits liés
- Un programme Go a été exécuté pour retrouver tous les commits
- Ce programme a généré 2 645 fichiers de métadonnées de pull requests
jq a été utilisé pour lire les payloads JSON et extraire les données
- Les fichiers
pr_ids.txt, commits.txt, replace_pairs.txt ont été générés
- Un second programme a été exécuté pour lister les commits non fusionnés de chaque pull request
- Ce programme a ajouté des commits au fichier
commits.txt
Importer les commits dans un nouveau réseau de dépôts
- Les commits ont été importés dans le fork en créant une branche contenant chaque SHA concerné
- Un script Bash a été utilisé pour exécuter les opérations git séquentiellement
Réécriture des références
- Il est désormais possible de lier chaque référence vers une cible dans le fork
- Un processus automatisé a été mis en place avec
xargs
- Les références directes à des commits ont été réécrites vers le fork, et les références aux pull requests ont été réécrites vers les commits de fusion
Résumé de GN⁺
- Le passage de Sourcegraph en privé a eu un impact majeur sur la culture open source
- De nombreux liens de référence dans le blog d’ingénierie ont été cassés, et leur préservation a demandé beaucoup d’efforts
- Les références ont été réécrites et les commits préservés à l’aide de forks GitHub et de scripts
- Cet article souligne la durabilité des projets open source et l’importance des liens de référence
1 commentaires
Avis sur Hacker News
Avis du CEO de Sourcegraph :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :
Avis d’un autre utilisateur :