- Mitte 2019 musste ich bei meiner Jobsuche zwischen Google Goteam und Sourcegraph wählen
- Ich entschied mich für Sourcegraph wegen der Kultur, alles öffentlich aufzubauen
- Alle Dokumente waren standardmäßig öffentlich, und technische sowie Produkt-RFCs, PR/FAQ usw. wurden in öffentlich zugänglichen Google-Drive-Ordnern gespeichert
- Die gesamte Produktimplementierung erfolgte in öffentlichen GitHub-Repositories
- Inzwischen wurde das Repository
sourcegraph/sourcegraph privat gestellt
- Das war eine Entscheidung, die die attraktive Kultur von Sourcegraph zerstörte
- Sourcegraph hat einen öffentlichen Snapshot unter
sourcegraph/sourcegraph-public-snapshot zurückgelassen
Referenzen bewahren
- Während meiner Zeit bei Sourcegraph habe ich viele Beiträge für den Engineering-Blog geschrieben
- Viele dieser Beiträge nutzten Links auf den zugehörigen öffentlichen Code als Referenzen
- Jetzt sind all diese Links kaputt
- Es gibt das Sprichwort: „Coole URIs ändern sich nicht“
- Ich bemühe mich, so viele Informationen wie möglich zu bewahren, damit Links nicht plötzlich ins Leere führen
- Ich habe
sourcegraph/sourcegraph nach efritz/sourcegraph geforkt
- Forks übernehmen keine Pull Requests, und Commits, auf die nicht direkt von Branches verwiesen wird, sind nicht sichtbar
- Laut der GitHub-Dokumentation bleiben Forks auch dann bestehen, wenn ein öffentliches Repository privat gestellt wird
- Wenn das ursprüngliche Repository jedoch privat wird, können Commits außerhalb des
main-Branches verschwinden
Zugehörige Commits scrapen
- Ich habe ein Go-Programm ausgeführt, um alle Commits zu finden
- Dieses Programm erzeugte 2.645 Metadatendateien zu Pull Requests
- Mit
jq habe ich JSON-Payloads gelesen und Daten extrahiert
- Dabei entstanden die Dateien
pr_ids.txt, commits.txt und replace_pairs.txt
- Ich habe ein zweites Programm ausgeführt, das die nicht gemergten Commits jedes Pull Requests auflistete
- Dieses Programm fügte der Datei
commits.txt weitere Commits hinzu
Commits in ein neues Repository-Netzwerk importieren
- Ich habe sie in den Fork übernommen, indem ich Branches erstellt habe, die jeweils die relevanten SHAs enthalten
- Mit einem Bash-Skript wurden die Git-Operationen nacheinander ausgeführt
Referenzen umschreiben
- Jetzt kann ich jede Referenz auf das Ziel im Fork verlinken
- Mit
xargs habe ich den Automatisierungsprozess umgesetzt
- Direkte Commit-Referenzen habe ich auf den Fork umgeschrieben, Pull-Request-Referenzen auf die Merge-Commits
Zusammenfassung von GN⁺
- Die Privatisierung von Sourcegraph hatte große Auswirkungen auf die Open-Source-Kultur
- Viele Referenzlinks im Engineering-Blog gingen kaputt, und ihre Bewahrung erforderte erheblichen Aufwand
- Mit GitHub-Forks und Skripten wurden Referenzen umgeschrieben und Commits bewahrt
- Der Artikel betont die Nachhaltigkeit von Open-Source-Projekten und die Bedeutung von Referenzlinks
1 Kommentare
Hacker-News-Kommentare
Meinung des Sourcegraph-CEO:
Meinung eines anderen Nutzers:
Meinung eines weiteren Nutzers:
Meinung eines anderen Nutzers:
Meinung eines weiteren Nutzers:
Meinung eines weiteren Nutzers:
Meinung eines anderen Nutzers:
Meinung eines anderen Nutzers:
Meinung eines weiteren Nutzers:
Meinung eines anderen Nutzers: