1 Punkte von GN⁺ 2023-07-05 | 1 Kommentare | Auf WhatsApp teilen
  • Sourcegraph wechselt zu einem privaten Monorepo
  • Dieses Repository (sourcegraph/sourcegraph-public-snapshot) ist eine öffentliche Kopie des Repositorys sourcegraph/sourcegraph unmittelbar vor der Umstellung

1 Kommentare

 
GN⁺ 2023-07-05
Hacker-News-Kommentare
  • Als CEO von Sourcegraph gesagt: Sourcegraph wird jetzt in zwei separate Produkte aufgeteilt, Code Search und Cody
    Cody bleibt im Verzeichnis client/cody* des Repositories als Open Source unter der Apache-2-Lizenz und soll bald in ein separates Repository ausgelagert werden, das zu 100 % Open Source ist
    Das Lizenzprinzip ist, Tools für einzelne Entwickler als Open Source bereitzustellen und Unternehmen dafür bezahlen zu lassen
    Die Open-Source-Variante mit eingeschränktem Funktionsumfang für Code Search wurde weder von einzelnen Entwicklern noch von Unternehmen kaum genutzt, und die Nutzung von Sourcegraph Code Search war noch viel stärker auf den offiziellen nicht Open-Source-Build konzentriert als in Fällen wie Google Chrome vs. Chromium oder VS Code vs. VSCodium
    Die Pflege beider Varianten war eine Belastung für das Engineering-Team, bei sehr geringem Nutzen für die Nutzer
    Eine ausführlichere Erklärung gibt es unter https://github.com/sourcegraph/sourcegraph/issues/53528#issu...
    Die Änderungen wurden im Changelog und in PRs angekündigt, und die gesamte Entwicklung findet öffentlich statt
    Wie geplant soll das große Monorepo in ein zu 100 % Open-Source-Repository für Cody und ein nicht Open-Source-Repository für Code Search aufgeteilt werden; dazu soll diese Woche ein Blogpost erscheinen
    Für öffentlichen Code kann Sourcegraph Code Search weiterhin kostenlos unter https://sourcegraph.com genutzt werden, für privaten Code im kostenlosen Self-Hosting-Tier
    Das heißt, einzelne Entwickler können Sourcegraph Code Search weiterhin zu 100 % kostenlos betreiben, und auf Kunden hat das keine Auswirkungen
    • Sourcegraph hat nur nicht Open-Source-Images bereitgestellt, der Build-Prozess war lange schwierig und kaputt, und auch die Open-Source-Version der Anwendung selbst war häufig defekt
      Schon ein paar Minuten Issue-Suche liefern etliche Treffer dazu: https://github.com/sourcegraph/sourcegraph/issues/43231, https://github.com/sourcegraph/sourcegraph/issues/43203, https://github.com/sourcegraph/sourcegraph/issues/6790, https://github.com/sourcegraph/sourcegraph/issues/6783
      Wenn nur wenige Leute überhaupt bauen können und das Ergebnis selbst bei erfolgreichem Build alle paar Releases kaputt ist, ist es nur natürlich, dass die Open-Source-Version wenig genutzt wird
      VS Code und Chromium sind wegen ihrer Art und Popularität leicht zu bauen, und vorkompilierte Versionen sind an vielen Stellen erhältlich
      Einen „inoffiziellen“ Chromium-Build aus einem Distributions-Repository würde ich installieren, aber ich würde meinen Code nicht in einen inoffiziellen Sourcegraph-Build einspeisen, den irgendeine unbekannte Person auf GitHub gebaut hat
      Diese beiden Dinge zu vergleichen ist ziemlich unfair, und es gab noch andere Probleme, die die Open-Source-Einführung behindert haben
      Eine Zeit lang enthielten die offiziellen Sourcegraph-Docker-Images eine kostenlose Lizenz für 10 Seats, was für viele ausreichte, sodass sie nicht nach Alternativen wie einem Open-Source-Build gesucht haben
      Lizenzänderungen und Produktschließungen nur in einem kleinen Block in der Changelog-Datei anzukündigen oder dann, wenn jemand das Problem in GitHub Issues anspricht, ist meiner Ansicht nach keine ausreichende Kommunikation für solche Änderungen
      Dass man kein Open-First-Prinzip verfolgt, das Produkt stattdessen – wie andere unter diesem Beitrag gesagt haben – über Enterprise-only-Plugins einschränkt, keinen Open-Source-Build bereitstellt und die Lizenz ohne Vorankündigung ändert, nachdem man zuvor angenehmes kostenloses Marketing mit Open-Source-Begriffen mitgenommen hat, hinterlässt einen bitteren Beigeschmack
      Besonders, weil derzeit wegen der Zinsen so viele Unternehmen so etwas tun
    • Ich habe lange versucht, SourceGraph bei der Arbeit einzuführen, aber schon die Prüfung wurde blockiert, weil die Bereitstellung der Open-Source-Version praktisch unmöglich war
      Ich würde nicht sagen, dass Sourcegraphs Einschätzung falsch ist, wonach die Open-Source-Version nicht erfolgreich war, und den Sourcecode zu schließen ist sicher einfacher
      Aber am Ende ist es eine Rechnung, dass der Aufwand, diesen Zufuhrkanal offenzuhalten, weniger wert ist als die Leute, die durch ihn hereinkommen – also wird ein Kanal geschlossen
      Es gibt aber auch eine andere Möglichkeit: Ich stimme eher der Ansicht zu, dass dieser Kanal von Anfang an nie weit genug offen war, um überhaupt Erfolg haben zu können
    • Wenn man „Unternehmen zahlen lässt und Tools für einzelne Entwickler Open Source macht“, sollte man den Begriff Open Source nicht verwenden
      Mit solchen Einschränkungen ist es kein Open Source, und das wirkt ziemlich offensichtlich unehrlich
      Solche Lizenzen sind nicht OSI-zertifiziert
    • Ich war einer der wenigen, die die Open-Source-Version genutzt haben, und mochte sie ziemlich gern, daher ist diese Änderung enttäuschend
      Das Problem von Sourcegraph war, dass es für Entwickler mit privaten Projekten schwer zugänglich war
      Es gab keinen Hosting-Plan, und ich kann meine Projekte wegen meines Arbeitgebers nicht einfach als Open Source veröffentlichen
      Als die Sourcegraph App erschien, war ich wirklich begeistert, weil ich Sourcegraph damit in meinen Projekten ausprobieren konnte, ohne eine komplizierte Self-Hosting-Konfiguration aufzusetzen
      Ich habe sogar scip-clang in einem Bazel-basierten Projekt zum Laufen gebracht und eine docker-compose-Konfiguration in meinem Homelab ausprobiert
      Jetzt wurde Code Search aus der App entfernt, und mit dieser Änderung mache ich mir Sorgen, dass ich Sourcegraph künftig für persönliche Projekte nicht mehr nutzen kann
      Das ist eine verpasste Chance
      Einzelne Entwickler, die das Produkt in privaten Projekten nutzen, können starke Fürsprecher werden, und diese Entwickler können dann ihren Arbeitgeber vom Kauf des Produkts überzeugen
      Wenn es möglich wäre, würde ich gern dafür zahlen, aber 5.000 Dollar pro Jahr sind als Einzelperson schwer zu rechtfertigen
    • Ich finde alle Kommentare, auch die kritischen hier, fair und umsichtig
      Wenn ihr weiter darüber sprechen wollt, auch nachdem es von der HN-Startseite verschwunden ist, kommt auf Discord https://discord.gg/rDPqBejz93

Wenn du Feedback oder Beschwerden direkt teilen möchtest, lass es mich wissen. Wenn es für dich in Ordnung ist, kann ich die Aufzeichnung auch veröffentlichen.

  • Wenn du nach einem Open-Source-Suchtool suchst, das über mehrere Repositories oder in einem großen Monorepo mit wahnsinniger Geschwindigkeit grep kann, kann ich livegrep sehr empfehlen: https://github.com/livegrep/livegrep
    Eine Demo gibt es unter https://livegrep.com/search/linux
    Es wurde bei Stripe genutzt und war recht beliebt, und selbst für die Suche in einem einzelnen Repository war livegrep oft schneller als lokales ripgrep
    Review: https://www.alexdebrie.com/posts/faster-code-search-livegrep...
    Rückblick des Erstellers nelhage auf die Auswirkungen: https://blog.nelhage.com/post/reflections-on-performance/, Architekturartikel: https://blog.nelhage.com/2015/02/regular-expression-search-w...

    • https://oracle.github.io/opengrok/ ist ebenfalls Open Source und auch bei riesigen Codebasen, etwa der Kombination aus ganz Android und dem Linux-Kernel, schnell und nützlich
    • Es gibt auch https://github.com/boyter/cs, das auf kleinere Umgebungen abzielt
      Solange es nicht zu groß wird, funktioniert es auch mit mehreren Repositories gut
    • livegrep ist buchstäblich einfach eine brauchbare Web-Version von grep
      Aber es ist eindeutig kein Ersatz für Sourcegraph, wenn es darum geht, die zugrunde liegende Codebasis wirklich zu verstehen, Codepfade zu verfolgen und Referenzen zu durchsuchen
  • Man sollte kein Startup auf der Annahme aufbauen, dass die Produkte anderer für immer unzureichend bleiben
    Mit der jüngsten Überarbeitung der GitHub-Suche hat Sourcegraph womöglich seine Relevanz verloren
    Die alte GitHub-Suche nutzte fast den schlechtestmöglichen Algorithmus
    Sie warf sämtliche Satzzeichen und Leerzeichen weg und suchte nur nach Bezeichnern; Muster wurden nicht unterstützt, Suche mit Anführungszeichen auch nicht, und als brauchbarer Meta-Parameter gab es fast nur filename:xyz
    Jetzt, da GitHub die Basissuche verbessert hat, könnte Sourcegraph in Schwierigkeiten geraten
    Ich habe Sourcegraph bei Lyft genutzt; damals hatte Lyft praktisch unbegrenzt Geld, das für Software-Tools verschwendet werden konnte, und bei Databricks haben wir die Open-Source-Version installiert, aber niemanden hat es interessiert

    • Nur wenn der gesamte Code auf GitHub gehostet ist, macht die GitHub-Suche Sourcegraph bedeutungslos
      Ich bin ziemlich müde davon, dass GitHub-exklusive Lösungen als „Industriestandard“ hochgehalten werden
      Dasselbe gilt für Anbieter, die nur Integrationen mit Produkten liefern, die ausschließlich auf GitHub funktionieren
      Git ist ein dezentrales Protokoll und sollte bitte auch so behandelt werden
    • Auch wenn die GitHub-Suche weniger schlecht geworden ist, ist sie immer noch auf seltsame Weise ziemlich mies, daher lade ich GitHub-Repositories weiterhin regelmäßig herunter und benutze einfach grep
    • Ich glaube nicht, dass die GitHub-Suche Sourcegraph ersetzen wird
      GitHub ist besonders für große private Organisationen nicht kostenlos, und Sourcegraph hat deutlich bessere Suchfunktionen als GitHub
    • Ich frage mich, ob es noch eine Enterprise-Nische gibt, die weder die GitHub-Cloud-Version noch GitLab nutzt
      Soweit ich weiß, ist nicht geplant, die neue Code-Suche in die On-Premises-Version von GitHub zu bringen
  • Ich frage mich, ob tatsächlich jemand die offene Version genutzt hat
    Ich erinnere mich vage daran, sie vor 2–3 Jahren angesehen zu haben, und alle wirklich interessanten Funktionen fehlten
    Der Enterprise-Preis lag bei ungefähr 100 US-Dollar pro Entwickler und Monat, also völlig absurd, und es war klar, dass man nur auf große Kunden mit unbegrenztem Budget zielte
    Inzwischen scheint sich die Preisgestaltung geändert zu haben, und „Enterprise Starter“ beginnt wohl bei 5.000 US-Dollar pro Jahr, aber trotz der vielen Punkte ist völlig unklar, was die tatsächlichen Einschränkungen sind
    Ich interessiere mich tatsächlich für dieses Produkt, und es könnte eine gute Ergänzung für unseren Tool-Stack sein, daher ist diese intransparente Preisgestaltung schade

    • Für die Open-Source-Version gab es kein offizielles vorgefertigtes Docker-Image, also musste man selbst bauen, und die Open-Source-Builds waren lange kaputt
      Vor 1–2 Jahren wurde versprochen, das zu beheben oder ein offizielles Open-Source-Image bereitzustellen, aber daraus wurde nichts
      Am Ende hat eine einzelne Person auf GitHub eine funktionierende Release-Pipeline gebaut und Open-Source-Container verteilt; auf Docker Hub wurden mehr als 10.000 Pulls gezählt
      Für ein inoffizielles Image ist das eine beachtliche Zahl
      Wenn ein Drittanbieter-Tool, das nicht einmal kritisch für die Infrastruktur ist, einen Kontakt mit dem Vertrieb verlangt, meide ich es in der Regel
      Verschwendet nicht Unternehmenszeit damit, wegen ein paar Lizenzen mit dem Vertrieb zu reden; gebt mir einfach ein Zahlenfeld und einen Kaufen-Button
      Mein Vertrauen in Sourcegraph ist auch etwas gesunken, weil es so wirkt, als würden Richtung, Preise und Regeln mehrmals im Jahr geändert
    • Ich habe die Open-Source-Version aus Spaß im Unternehmen installiert und etwa 750 Repositories synchronisiert
      Ich habe einige Patches angewendet, damit OAuth2-Proxy unterstützt wird, und außerdem die Telemetrie entfernt
      Die Software selbst ist hervorragend, sehr schnell und funktioniert wie vorgesehen
      Ein paar Monate später waren 70 Nutzer registriert, aber insgesamt hatten nur 3 Leute sie tatsächlich mehr als ein paar Mal verwendet
    • Das erinnert mich an den Full-User-Preis von New Relic von 400 US-Dollar im Monat
    • Es wirkt jetzt so, als würde man stark in Richtung AI pivotieren, und als wolle man kaum noch anerkennen, dass das reine Leseprodukt überhaupt existiert
      Völlig bizarr
    • Ich halte es nicht für fair zu sagen, dass man für 100 US-Dollar im Monat ein „unbegrenztes Budget“ braucht
      Mein Budget ist ziemlich begrenzt, und trotzdem zahlen wir für mehrere Produkte mehr als das
      Wenn ein Tool die Produktivität steigert oder dem Geschäft hilft, ist es den Preis absolut wert
  • Die Lizenz wurde schon vor fast drei Wochen geändert, aber im Blogpost zum Release 5.1.0 fehlt diese Information
    Es gibt bislang auch keine offizielle Ankündigung
    Der Autor des Open-Source-Containers für Sourcegraph scheint mitgeteilt zu haben, dass seine Release-Pipeline jetzt beendet ist: https://github.com/jensim/sourcegraph-release-train/

  • Der Support während der Demo-Phase war eher schwach, auch die C++-Unterstützung war unzureichend, es integrierte sich nicht gut mit modernen C++-Build-Systemen, und der Preis war absurd hoch
    Die Funktion „campaign“ wurde immer weiter gepusht, aber sie war ein viel zu komplexes Tool für automatisches Refactoring, das nicht einmal unser nicht-proprietäres und weit verbreitetes Build-System unterstützen konnte
    Statt der Lizenzkosten haben wir zwei Entwickler für Code-Refactoring eingestellt, und diese haben später auch noch andere Tools gebaut; außerdem mussten wir niemanden extra einstellen, nur um eine miserable Service-Integration zu betreuen
    Im Gespräch mit uns konnte man kaum sagen, dass sie eine Nische gefunden hatten
    Vielleicht ist es inzwischen besser

    • Da hier der frühere Name „campaign“ verwendet wird, scheint der Blick auf Sourcegraph etwa vor 2,5 Jahren oder noch früher erfolgt zu sein
      Seitdem hat sich viel verändert
      Vor Kurzem wurde der neue Indexer scip-clang veröffentlicht (https://about.sourcegraph.com/blog/announcing-scip-clang) und erfolgreich zum Indexieren großer Codebasen wie Chromium eingesetzt
      Dieser Indexer hängt von einer JSON-Kompilierungsdatenbank ab; das ist wie beim früheren Indexer lsif-clang und lässt sich mit CMake, Bazel, Meson, Make usw. leicht erzeugen
      Vor Kurzem kam auch repository-übergreifende Code-Navigation für C++ hinzu: https://about.sourcegraph.com/blog/c-cpp-cross-repo
    • Dass man für den Lizenzpreis zwei Entwickler einstellen konnte, lässt mich fragen, wie teuer das überhaupt war
    • Mich würde interessieren, welches Build-System verwendet wurde
      Ich dachte, JSON-Kompilierungsdatenbanken ließen sich heutzutage relativ gut erzeugen
      Sie werden zum Beispiel auch vom Language Server in VS Code verwendet
  • https://github.com/sourcegraph/sourcegraph/issues/53528#issu... scheint ein Kommentar von jemandem aus dem Projekt zu sein, der zusammenfasst, warum die Änderung vorgenommen wurde

    • Die auffälligsten Punkte sind diese
      Sourcegraph werde sich weiterhin dem Open-Source-Code-Such-Engine Zoekt widmen und weiter Änderungen upstreamen: https://github.com/sourcegraph/zoekt
      Der Source Code bleibe weiterhin öffentlich zugänglich
      Einzelne Entwickler könnten Sourcegraph auf sourcegraph.com für öffentlichen Code und in der kostenlos selbst gehosteten Stufe für privaten Code weiter gratis nutzen
      Nur sehr wenige Einzelentwickler oder Unternehmen hätten die Open-Source-Variante mit eingeschränkter Code-Suche verwendet, und die überwältigende Mehrheit von über 99,9 % habe das Enterprise-Produkt genutzt
      Künftig beide Varianten zu pflegen, sei eine große Belastung für das Engineering-Team gewesen, bei sehr geringem Nutzen für die Nutzer
    • Vor ein paar Monaten wurde die kostenlose Enterprise-Lizenz abgeschafft, die 10 Developer-Sitze erlaubte; einige kleine Unternehmen hatten Updates wohl aufgeschoben und in der Zwischenzeit die Open-Source-Version geprüft, aber das scheint jetzt nicht mehr relevant zu sein
    • Es wirkt so, als habe niemand die Open-Source-Version benutzt, und man wollte nicht zwei Varianten pflegen, die niemand verwendet
      Es steht dort auch, dass eine kostenlose selbst gehostete Version für Einzelpersonen angeboten wird, aber auf der Website konnte ich sie nicht finden
  • Insgesamt mochte ich Open-Core-Produkte noch nie
    Als jemand, der Dinge baut, fühlt es sich wenig handwerklich an, Nutzern Hindernisse in den Weg zu legen und einzuschränken, in welchem Umfang sie mein Werk verwenden können
    Entscheidungen, die bewusst stören, wie Menschen ein Produkt nutzen, wirken manchmal wie reine Gier
    Wenn ich mir eine Welt vorstelle, in der Sourcegraph vollständig freie Software wäre, hätten Enterprise-Kunden wahrscheinlich trotzdem dafür bezahlt, Sourcegraph sicher On-Premises zu hosten
    Pro Sitz hätte man dann allerdings nicht abrechnen können
    Man hätte den Produktpreis niedrig genug halten müssen, damit Kunden nicht viel Geld sparen, indem sie Engineers einstellen, um Sourcegraph selbst On-Premises zu betreiben und zu warten
    Ich frage mich, ob Sourcegraph oder ein anderes Open-Core-Unternehmen jemals abgeschätzt hat, wie viele Kunden und wie viel Umsatz verloren gingen, wenn man vollständig auf freie Software umstellen würde
    Freie Software zu entwickeln und Geld für Hosting zu verlangen kann die Grundlage für ein tragfähiges Geschäft sein, liefert aber wahrscheinlich nur schwer die Art von Ergebnis, die Venture Capital bei erfolgreichen Investments erwartet
    Ehrlich gesagt finde ich es in Ordnung, wenn Infrastruktur geschlossene proprietäre Software ist
    Denn wenn man sicherheitskritische Programme schreibt, kann das freie Offenlegen des Infrastruktur-Codes Angreifern viel Munition liefern
    Wenn man an die Kraft von Automatisierung und den Bau hochwertiger Software glaubt, kann man freie Software schaffen, die sich in Kundeninfrastrukturen einfach und sicher ausrollen und warten lässt, deren Betriebsaufwand aus Sicht des Hosts sehr gering ist und deren Infrastruktur-Code proprietär ist
    So etwas kann zu einem sehr soliden Geschäft führen
    Ich frage mich, warum wir nicht mehr solcher Unternehmen sehen

  • In https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54... gibt es noch ein paar zusätzliche Informationen, aber nicht viele

    • Üblicherweise würde man erwarten, dass eine Ankündigung der Lizenzänderung erfolgt, bevor diese Änderung umgesetzt wird
  • Ich frage mich, welches Open-Source-Code-Suchsystem gut wäre, um etwa 100 Git-Repositories anzubinden, damit es im Web nutzbar ist.
    Die GitHub-Suche ist zu breit und kann keine Repositories wie GitLab einbeziehen, daher ist das nicht gewünscht.
    Früher habe ich mir Debian code search https://github.com/Debian/dcs angesehen, aber es wirkte irgendwie so, als würde es ziemlich viel Aufwand erfordern, deshalb habe ich die Recherche nicht zu Ende geführt.
    Allerdings wirkt https://github.com/Debian/dcs/blob/main/howto/building.md recht zugänglich.
    Es gibt auch Zoekt, das von Sourcegraph erwähnt wurde: https://github.com/sourcegraph/zoekt, aber ich bin mir nicht sicher, wie brauchbar es ist.
    Wenn es ziemlich gut wäre, frage ich mich auch, warum es dann überhaupt eine Open-Source-Version von Sourcegraph gab.
    Wenn man die Diskussionen der letzten Jahre sieht, dass die Open-Source-Version von Sourcegraph stark zurückgefallen ist, scheint es keine ernsthaften Pläne für einen Fork zu geben.
    Das GCS-Release https://github.com/google/codesearch scheint ohne Frontend Open Source gemacht worden zu sein.
    Weiter oben wurden auch Livegrep https://github.com/livegrep/livegrep und OpenGrok https://oracle.github.io/opengrok/ empfohlen.
    Ich freue mich schon ziemlich darauf, sie auszuprobieren, aber eine funktionierende Docker-Compose-Konfiguration würde beim Einstieg sehr helfen.
    Es gibt auch Eureka https://github.com/Rajeev-K/eureka.
    Es wirkt weniger leistungsfähig, aber die Bereitstellung scheint einfacher zu sein.

    • Google codesearch ist eigentlich kein wirklich nutzbares „Produkt“.
      Livegrep(https://github.com/livegrep/livegrep) wurde davon inspiriert und ist ziemlich brauchbar.
      Zoekt war ursprünglich ebenfalls ein Google-Open-Source-Projekt, wurde dann aber nicht mehr gepflegt, und Sourcegraph hat es übernommen.
      Es treibt den Großteil der Standard-RegEx-/Literal-Suche von Sourcegraph an.
      Mozilla-Code kann über Searchfox(https://searchfox.org/) durchsucht werden; dort wird der Indexer von Livegrep mit einem eigenen Git-Indexer und sprachspezifischen Cross-Reference-Datenbanken kombiniert.
      OpenGrok(https://github.com/oracle/opengrok) ist ebenfalls ziemlich bekannt, aber ich fand die UI im Vergleich zu den Alternativen etwas schlechter.
    • Für kleine Repositories und die Nutzung in der Kommandozeile gibt es auch cs: https://github.com/boyter/cs
    • Es gibt auch Hound: https://github.com/hound-search/hound