1 points par GN⁺ 2023-07-05 | 1 commentaires | Partager sur WhatsApp
  • Sourcegraph passe à un monorepo privé
  • Ce dépôt (sourcegraph/sourcegraph-public-snapshot) est une copie publique du dépôt sourcegraph/sourcegraph juste avant la transition

1 commentaires

 
GN⁺ 2023-07-05
Avis sur Hacker News
  • En tant que CEO de Sourcegraph, je précise que Sourcegraph est désormais scindé en deux produits distincts : la recherche de code et Cody
    Cody reste open source sous licence Apache 2 dans le répertoire client/cody* du dépôt, et sera bientôt séparé dans un dépôt distinct 100 % open source
    Le principe de licence est de fournir en open source les outils destinés aux développeurs individuels et de faire payer les entreprises
    La variante open source limitée de la recherche de code était très peu utilisée, aussi bien par les développeurs individuels que par les entreprises, et l’usage de Sourcegraph Code Search était encore bien plus concentré sur la version officielle non open source que dans des cas comme Google Chrome vs. Chromium ou VS Code vs. VSCodium
    Maintenir les deux variantes représentait une charge pour l’équipe d’ingénierie, pour un bénéfice très faible côté utilisateurs
    Davantage d’explications ici : https://github.com/sourcegraph/sourcegraph/issues/53528#issu...
    Les changements ont été annoncés dans le changelog et dans la PR, et tout le développement s’est fait publiquement
    Comme prévu, le grand dépôt monolithique sera scindé entre un dépôt 100 % open source pour Cody et un dépôt non open source pour la recherche de code, puis un billet de blog sera publié cette semaine
    Pour le code public, il reste possible d’utiliser gratuitement Sourcegraph Code Search sur https://sourcegraph.com, et pour le code privé, via le palier gratuit en auto-hébergement
    Autrement dit, les développeurs individuels peuvent toujours exécuter Sourcegraph Code Search gratuitement à 100 %, et cela n’a aucun impact pour les clients
    • Sourcegraph ne fournissait que des images non open source, le processus de build était difficile et cassé depuis longtemps, et l’application en version open source elle-même tombait souvent en panne
      Il suffit de chercher quelques minutes dans les issues pour trouver pas mal d’exemples : 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
      Si peu de gens pouvaient la compiler, et que même en y arrivant le résultat cassait une release sur quelques-unes, il est logique que l’usage de la version open source ait été faible
      VS Code et Chromium, par leur nature et leur popularité, sont faciles à compiler et on peut trouver des versions précompilées à plusieurs endroits
      J’installerais volontiers un build « non officiel » de Chromium provenant du dépôt de ma distribution, mais je ne mettrais pas mon code dans un build non officiel de Sourcegraph fabriqué par un inconnu sur GitHub
      Comparer les deux est assez injuste, et il y avait aussi d’autres problèmes qui ont freiné l’adoption de l’open source
      Pendant un temps, l’image Docker officielle de Sourcegraph incluait une licence gratuite de 10 sièges, ce qui suffisait à beaucoup de monde, donc personne n’allait chercher des alternatives comme le build open source
      Annoncer un changement de licence et la fermeture du produit dans un petit bloc d’un fichier de changelog, ou seulement quand quelqu’un soulève le sujet dans GitHub Issues, ce n’est pas une communication suffisante pour un changement de cette ampleur
      Ne pas suivre un principe d’open-first, limiter le produit avec des plugins réservés à l’enterprise comme d’autres l’ont dit sous cet article, ne pas fournir de build open source, et changer la licence sans préavis après avoir auparavant bénéficié d’un marketing gratuit agréable grâce au terme open source, cela laisse un goût amer
      C’est d’autant plus vrai qu’en ce moment trop d’entreprises font ce genre de chose à cause des taux d’intérêt
    • J’ai longtemps poussé pour faire adopter SourceGraph au travail, mais déployer la version open source était pratiquement impossible, au point de bloquer même son évaluation
      Je ne pense pas que Sourcegraph se trompe en estimant que la version open source n’a pas réussi, et il est évidemment bien plus simple de fermer le code
      Mais au final, cela revient à juger que l’effort nécessaire pour garder ouvert ce canal d’acquisition ne vaut pas les utilisateurs qui arrivent par ce canal, donc c’est simplement un canal d’acquisition qui se ferme
      Il existe une autre possibilité. Je suis davantage d’accord avec l’idée que ce canal n’a jamais été suffisamment ouvert pour avoir une chance réelle de réussir dès le départ
    • Si l’idée est de « faire payer les entreprises et rendre open source les outils pour développeurs individuels », alors il ne faut pas utiliser le terme Open Source
      Avec ce type de restriction, ce n’est pas de l’open source, et le manque d’honnêteté saute assez vite aux yeux
      Ce type de licence n’est pas approuvé par l’OSI
    • J’étais l’un des rares utilisateurs de la version open source, et je l’aimais bien, donc ce changement est décevant
      Le problème de Sourcegraph, c’est qu’il restait difficile d’accès pour les développeurs travaillant sur des projets personnels
      Il n’y avait pas d’offre hébergée, et mes projets ne peuvent pas facilement être rendus open source à cause de mon employeur
      Quand Sourcegraph App est arrivé, j’étais vraiment enthousiaste à l’idée de pouvoir tester Sourcegraph sur mes projets sans configuration complexe en auto-hébergement
      J’avais même réussi à faire fonctionner scip-clang sur un projet basé sur Bazel, et j’avais aussi essayé une configuration docker-compose dans mon homelab
      Maintenant que la recherche de code a été retirée de l’application et qu’il y a en plus ce changement, je crains de ne plus pouvoir utiliser Sourcegraph pour mes projets personnels à l’avenir
      C’est une occasion manquée
      Les développeurs individuels qui utilisent un produit sur leurs projets personnels peuvent devenir de puissants ambassadeurs, et ensuite convaincre leur employeur d’acheter ce produit
      Je serais prêt à payer si c’était possible, mais en tant qu’individu, 5 000 dollars par an sont difficiles à justifier
    • Je trouve que tous les commentaires ici, y compris les plus critiques, sont justes et réfléchis
      Si vous voulez continuer à en parler après que le sujet aura quitté la première page de HN, rejoignez le Discord : https://discord.gg/rDPqBejz93

Si vous voulez partager directement des retours ou des critiques, faites-le moi savoir. Si cela vous convient, je peux aussi rendre l’enregistrement public.

  • Si vous cherchez un outil open source de recherche dans le code capable de grep à une vitesse folle sur plusieurs dépôts ou sur un très gros monorepo, je recommande vivement livegrep : https://github.com/livegrep/livegrep
    La démo est ici : https://livegrep.com/search/linux
    C’était utilisé chez Stripe et c’était assez populaire, et même pour la recherche dans un seul dépôt, livegrep était souvent plus rapide que ripgrep en local
    Article de revue : https://www.alexdebrie.com/posts/faster-code-search-livegrep...
    Retour d’expérience de son créateur, nelhage, sur son impact : https://blog.nelhage.com/post/reflections-on-performance/, article sur l’architecture : https://blog.nelhage.com/2015/02/regular-expression-search-w...

    • https://oracle.github.io/opengrok/ est aussi open source, et rapide et utile même sur une base de code gigantesque du genre Android complet + noyau Linux
    • Il y a aussi https://github.com/boyter/cs, en cours de développement avec un objectif plus modeste
      Ça fonctionne aussi bien sur plusieurs dépôts tant que ce n’est pas trop gros
    • livegrep est littéralement une bonne version web de grep
      Mais ce n’est clairement pas un remplaçant de Sourcegraph pour réellement comprendre le code sous-jacent, suivre les chemins dans le code et rechercher les références
  • Il ne faut pas monter une startup en partant du principe que le produit de quelqu’un d’autre restera éternellement insuffisant
    Avec la récente refonte de la recherche GitHub, il est possible que Sourcegraph ait perdu en pertinence
    L’ancienne recherche GitHub utilisait un algorithme proche du pire du pire
    Elle supprimait toute ponctuation et tous les espaces pour ne chercher que des identifiants, ne supportait pas les motifs, ne permettait pas la recherche entre guillemets, et les seuls méta-arguments à peu près utiles se limitaient presque à filename:xyz
    Maintenant que GitHub a amélioré sa recherche de base, Sourcegraph peut être en danger
    J’ai utilisé Sourcegraph chez Lyft, où à l’époque l’argent gaspillé dans les outils logiciels était quasiment illimité, et chez Databricks nous avions installé la version open source, mais personne n’y prêtait attention

    • La recherche GitHub ne rend Sourcegraph inutile que si tout le code est hébergé sur GitHub
      Je suis assez fatigué de voir des solutions réservées à GitHub présentées comme le « standard de l’industrie »
      Même chose pour les éditeurs qui ne proposent des intégrations qu’avec des produits qui ne marchent que sur GitHub
      Git est un protocole décentralisé, alors il faudrait le traiter comme tel
    • Même si la recherche GitHub est devenue moins mauvaise, elle reste encore bizarrement médiocre, donc je continue à cloner régulièrement des dépôts GitHub pour simplement faire un grep
    • Je ne pense pas que la recherche GitHub remplacera Sourcegraph
      GitHub n’est pas gratuit, surtout pour les grandes organisations privées, et Sourcegraph a des fonctions de recherche bien meilleures que GitHub
    • Je me demande s’il reste encore une niche enterprise qui n’utilise ni la version cloud de GitHub ni GitLab
      Si j’ai bien compris, il n’est pas prévu d’ajouter la nouvelle recherche de code à la version on-premise de GitHub
  • Je me demande si quelqu’un utilisait réellement la version ouverte
    J’ai le vague souvenir d’y avoir jeté un œil il y a 2 ou 3 ans, et toutes les fonctionnalités vraiment intéressantes avaient disparu
    Le tarif enterprise était d’environ 100 dollars par développeur et par mois, complètement absurde, et il était clair qu’ils ne visaient que de gros clients avec des budgets illimités
    Les prix semblent avoir changé depuis, et « Enterprise Starter » est annoncé à partir de 5 000 dollars par an, mais malgré la longue liste d’éléments, il reste très flou de savoir quelles sont les vraies limitations
    Ce produit m’intéresse réellement et pourrait être un bon ajout à notre boîte à outils, donc cette opacité tarifaire est regrettable

    • La version open source n’avait pas d’image Docker officielle précompilée, il fallait donc la builder soi-même, et pendant longtemps le build open source était cassé
      Ils avaient promis il y a 1 ou 2 ans de corriger ça ou de fournir une image open source officielle, mais cela ne s’est jamais concrétisé
      Au final, quelqu’un a créé sur GitHub une release train fonctionnelle et a publié des conteneurs open source, avec plus de 10 000 pulls sur Docker Hub
      C’est beaucoup pour des images non officielles
      En général, si un outil tiers qui n’est même pas au cœur de l’infra exige un contact commercial, je l’évite
      Qu’ils arrêtent de nous faire perdre du temps d’entreprise à parler à des commerciaux pour quelques licences, et qu’ils mettent simplement un champ pour entrer un nombre et un bouton d’achat
      Ma confiance envers Sourcegraph a aussi un peu baissé, car ils donnent l’impression de changer de direction, de prix et de règles plusieurs fois par an
    • J’ai installé la version open source dans l’entreprise pour le fun et synchronisé environ 750 dépôts
      J’ai appliqué quelques patches pour ajouter le support d’un proxy OAuth2 et j’ai aussi retiré la télémétrie
      Le logiciel lui-même est excellent, très rapide, et fonctionne comme prévu
      Quelques mois plus tard, on comptait 70 utilisateurs enregistrés, mais au total seulement 3 personnes l’avaient vraiment utilisé plusieurs fois
    • Ça me rappelle le tarif full user de New Relic à 400 dollars par mois
    • On dirait qu’ils sont maintenant en train de pivoter fortement vers l’IA, au point de vouloir à peine reconnaître que le produit de lecture existe encore
      C’est complètement bizarre
    • Je ne pense pas qu’il soit juste de dire qu’il faut un « budget illimité » pour payer 100 dollars par mois
      Mon budget est pourtant assez limité, et je paie plus que ça pour plusieurs produits
      Si un outil améliore la productivité ou aide l’entreprise, il vaut largement son coût
  • La licence a changé il y a presque 3 semaines, mais cette information n’apparaît pas dans le billet de blog de sortie 5.1.0
    Il n’y a toujours pas d’annonce officielle
    L’auteur des conteneurs open source de Sourcegraph semble avoir signalé que sa release train s’arrête désormais : https://github.com/jensim/sourcegraph-release-train/

  • Le support pendant la période de démo n’était pas terrible, la prise en charge complexe du C++ était insuffisante, l’intégration avec les systèmes de build C++ modernes laissait à désirer, et le prix était absurde
    Ils poussaient sans cesse la fonctionnalité « campaign », qui était un outil d’auto-refactoring excessivement complexe, incapable de prendre en charge ne serait-ce que notre système de build non propriétaire et pourtant bien connu
    À la place du coût de cette licence, nous avons embauché deux développeurs pour le refactoring du code ; ils ont ensuite créé d’autres outils, et nous n’avons même pas eu besoin d’embaucher quelqu’un en plus pour s’occuper d’une intégration de service médiocre
    Quand on discutait avec eux, il était difficile de dire qu’ils avaient trouvé une niche de marché
    Ça s’est peut-être amélioré depuis

    • Le fait d’utiliser l’ancien nom « campaign » laisse penser que l’évaluation de Sourcegraph remonte à environ 2,5 ans, voire plus
      Beaucoup de choses ont changé depuis
      Ils ont récemment lancé le nouvel indexeur scip-clang (https://about.sourcegraph.com/blog/announcing-scip-clang), et l’ont utilisé avec succès pour indexer de grosses bases de code comme Chromium
      Cet indexeur s’appuie sur une base de données de compilation JSON, comme l’ancien indexeur lsif-clang, et celle-ci peut être générée facilement avec CMake, Bazel, Meson, Make, etc.
      Ils prennent aussi en charge depuis peu la navigation de code inter-dépôts en C++ : https://about.sourcegraph.com/blog/c-cpp-cross-repo
    • Pouvoir embaucher 2 développeurs avec le prix de la licence, je me demande vraiment combien ça coûtait
    • Je me demande quel système de build ils utilisaient
      Je pensais qu’une base de données de compilation JSON se générait relativement bien de nos jours
      Elle est utilisée par exemple par le serveur de langage de VS Code
  • https://github.com/sourcegraph/sourcegraph/issues/53528#issu... semble être un commentaire de quelqu’un du projet qui résume pourquoi ce changement a été fait

    • Les points marquants sont les suivants
      Sourcegraph indique qu’ils resteront engagés dans Zoekt, leur moteur open source de recherche de code, et continueront à faire remonter leurs modifications vers l’upstream : https://github.com/sourcegraph/zoekt
      Le code source restera public
      Les développeurs individuels pourront continuer à utiliser gratuitement Sourcegraph sur le code public de sourcegraph.com et sur du code privé via le free tier auto-hébergé
      Très peu de développeurs individuels ou d’entreprises utilisaient la variante limitée de recherche de code qui était open source, et l’écrasante majorité, plus de 99,9 %, utilisait le produit entreprise
      Maintenir ces deux variantes à l’avenir représentait une lourde charge pour l’équipe d’ingénierie, pour un bénéfice très faible pour les utilisateurs
    • Il y a quelques mois, ils ont supprimé la licence entreprise gratuite qui autorisait 10 sièges développeur ; certaines petites entreprises repoussaient probablement les mises à jour tout en examinant la version open source, mais visiblement ce n’est plus d’actualité
    • On dirait que personne n’utilisait la version open source, et qu’ils ne voulaient pas continuer à maintenir deux variantes que personne n’utilisait
      Il est aussi indiqué qu’ils proposent une version auto-hébergée gratuite pour les particuliers, mais je n’ai pas réussi à la trouver sur le site
  • Globalement, je n’ai jamais aimé les produits open core
    En tant que personne qui construit des choses, mettre des obstacles devant les utilisateurs et limiter la manière dont ils peuvent utiliser mon travail me donne l’impression d’un manque de sens de l’artisanat
    Les décisions qui entravent délibérément la manière dont les gens utilisent le produit donnent parfois l’impression d’être motivées uniquement par la cupidité
    Si j’imagine un monde où Sourcegraph serait entièrement du logiciel libre, les clients entreprise auraient probablement quand même payé pour héberger Sourcegraph on-premise de manière sûre
    En revanche, ils n’auraient pas pu facturer par siège
    Ils auraient dû maintenir un prix du produit suffisamment bas pour qu’un client n’économise pas énormément d’argent en embauchant des ingénieurs pour maintenir Sourcegraph lui-même en on-premise
    Je me demande si Sourcegraph, ou d’autres acteurs de l’open core, ont déjà essayé d’estimer combien de clients et de revenus ils perdraient en passant à un modèle entièrement logiciel libre
    Créer du logiciel libre et facturer l’hébergement peut constituer la base d’une activité durable, mais cela ne donnera probablement pas le type de résultats qu’un fonds de capital-risque attend d’un investissement réussi
    Honnêtement, je trouve acceptable que l’infrastructure soit un logiciel fermé et propriétaire
    Parce que si l’on écrit un programme où la sécurité est importante, rendre librement disponible le code de l’infrastructure peut donner beaucoup de munitions aux attaquants
    Si l’on croit à la puissance de l’automatisation et à la construction de logiciels de haute qualité, on peut créer un logiciel libre dont le code d’infrastructure reste propriétaire, facile et sûr à déployer et à maintenir dans l’infrastructure du client, avec une charge opérationnelle très faible côté hébergeur
    Cette approche pourrait déboucher sur une activité très solide
    Je me demande pourquoi on ne voit pas plus souvent ce type d’entreprise

  • https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54... contient un peu plus d’informations, mais pas énormément

    • En général, on s’attend à ce qu’une annonce de changement de licence soit publiée avant la mise en œuvre du changement
  • Je me demande quel système open source de recherche dans le code serait adapté pour connecter environ 100 dépôts Git afin de l’utiliser sur le web
    Je ne veux pas de la recherche GitHub, qui est trop large et ne peut pas inclure des dépôts comme GitLab
    J’avais regardé Debian code search https://github.com/Debian/dcs il y a quelque temps, mais j’ai arrêté mes recherches car cela semblait demander pas mal d’efforts
    Cela dit, https://github.com/Debian/dcs/blob/main/howto/building.md semble assez abordable
    Il y a aussi Zoekt mentionné par Sourcegraph https://github.com/sourcegraph/zoekt, mais je ne sais pas à quel point c’est réellement utilisable
    Si c’était vraiment très bon, je me demande aussi pourquoi la version open source de Sourcegraph existait
    Vu les discussions de ces dernières années sur le fait que la version open source de Sourcegraph avait beaucoup pris de retard, il ne semble pas y avoir de projet sérieux de fork
    La release GCS https://github.com/google/codesearch semble avoir été open sourcée sans frontend
    Plus haut, Livegrep https://github.com/livegrep/livegrep et OpenGrok https://oracle.github.io/opengrok/ ont aussi été recommandés
    J’ai assez hâte de les essayer, mais une configuration Docker Compose fonctionnelle aiderait beaucoup pour démarrer
    Il y a aussi Eureka https://github.com/Rajeev-K/eureka
    Cela semble moins puissant, mais plus facile à déployer

    • Google codesearch n’est pas vraiment un « produit » utilisable
      Livegrep(https://github.com/livegrep/livegrep) en est inspiré et est tout à fait utilisable
      Zoekt était aussi à l’origine un projet open source de Google, mais sa maintenance s’est arrêtée et Sourcegraph l’a repris
      Il alimente la majeure partie de la recherche regex/littérale par défaut de Sourcegraph
      Le code de Mozilla peut être recherché via Searchfox(https://searchfox.org/), qui combine l’indexeur de Livegrep, son propre indexeur Git et une base de données de références croisées par langage
      OpenGrok(https://github.com/oracle/opengrok) est aussi assez connu, mais j’ai trouvé son interface un peu moins bonne que celles des alternatives
    • Pour les petits dépôts et un usage en ligne de commande, il y a aussi cs : https://github.com/boyter/cs
    • Il y a aussi Hound : https://github.com/hound-search/hound