2 Punkte von GN⁺ 2024-08-21 | 1 Kommentare | Auf WhatsApp teilen
  • 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

 
GN⁺ 2024-08-21
Hacker-News-Kommentare
  • Meinung des Sourcegraph-CEO:

    • Der Grund für die Umstellung der internen Codebasis auf privat ist der Fokus.
    • Open Source zu sein und alles öffentlich zu halten, verursacht viel zusätzliche Arbeit und Risiken.
    • Man müsse sich darauf konzentrieren, ein großartiges Produkt für Codesuche/-intelligenz für Kunden zu bauen.
    • Für Entwickler und die OSS-Community werde weiterhin viel getan.
      • Bereitstellung eines beliebten öffentlichen Code-Suchdienstes
      • Pflege vieler Open-Source-Codebasen
    • Wenn andere Gründer darüber nachdenken, ob sie ihren Code offenlegen sollen, könne er sie beraten.
  • Meinung eines anderen Nutzers:

    • Sourcegraph galt als ein Unternehmen, das die Entwicklerkultur gut versteht, daher seien die jüngsten Veränderungen bedauerlich.
    • Er habe versucht, eine öffentliche Roadmap zu finden, aber die meisten Dokumente seien inzwischen privat.
    • Das früher öffentliche Handbuch sei zu Notion umgezogen, und die meisten wichtigen Teile verlinkten nun auf private Google-Dokumente.
  • Meinung eines weiteren Nutzers:

    • Kürzlich sei der öffentliche Suchindex von Sourcegraph verschwunden.
    • Er habe Sourcegraph häufig genutzt, bevor sich die Suchfunktion von GitHub verbessert habe.
    • Jetzt seien GitLab-Repositories und viele GitHub-Repositories aus dem Index verschwunden.
    • Wegen der unzuverlässigen Suche bleibe ihm nichts anderes übrig, als zu GitHub zurückzukehren.
  • Meinung eines anderen Nutzers:

    • Er habe die Open-Source-Version geforkt, Telemetrie entfernt, Updates deaktiviert, proprietären Code entfernt, ein Docker-Image erstellt und eine schlanke Oauth2-Authentifizierung implementiert.
    • Er plane, sie langfristig hinter Oauth2-Proxy zu betreiben.
    • Es sei sehr zuverlässige Software.
  • Meinung eines weiteren Nutzers:

    • Er habe Sourcegraph häufig für Reverse-Engineering-Arbeiten unter macOS genutzt.
    • Dank der Sourcegraph-Suche gebe es viele Projekte.
    • Er hoffe, dass die Suchfunktion in Zukunft nicht verschwindet.
  • Meinung eines weiteren Nutzers:

    • Es wirke seltsam und irritierend, sämtliche Entwicklungsarbeit privat zu machen.
    • Er frage sich, warum man auf privat umgestellt habe, obwohl Lizenzbeschränkungen allein ausgereicht hätten, um die Geschäftsziele zu erreichen.
  • Meinung eines anderen Nutzers:

    • Er habe Sourcegraph oft verwendet, frage sich aber, wie viele Menschen tatsächlich dafür bezahlt hätten.
    • Ein Open-Source-Unternehmen zu betreiben, sei schwierig.
    • Mit zunehmender Reife des Unternehmens verstehe man, dass es Dinge gibt, die man nicht kostenlos anbieten kann.
  • Meinung eines anderen Nutzers:

    • Das Software-Heritage-Projekt habe die meisten Sourcegraph-Repositories archiviert.
    • Der letzte Crawl sei Mitte Juli 2024 erfolgt.
  • Meinung eines weiteren Nutzers:

    • Es wird auf eine frühere Episode verwiesen, in der erwähnt wurde, dass Sourcegraph nicht mehr Open Source ist.
  • Meinung eines anderen Nutzers:

    • Er habe Sourcegraph oft zitiert und empfohlen, aber nie tatsächlich dafür bezahlt.
    • Er frage sich, warum Open Source aufgegeben wurde, sei aber nicht überrascht.