1 ポイント 投稿者 GN⁺ 2023-07-05 | 1件のコメント | WhatsAppで共有
  • Sourcegraph が非公開モノレポへ移行
  • このリポジトリ (sourcegraph/sourcegraph-public-snapshot) は、移行直前の sourcegraph/sourcegraph リポジトリの公開コピー

1件のコメント

 
GN⁺ 2023-07-05
Hacker Newsの意見
  • SourcegraphのCEOとして言うと、Sourcegraphは現在、コード検索Codyという2つの別個の製品に分かれている。
    Codyはリポジトリ内のclient/cody*ディレクトリでApache 2ライセンスのオープンソースのままであり、まもなく100%オープンソースの別リポジトリに分離する予定である。
    ライセンスの原則は、個人開発者向けツールはオープンソースで提供し、企業には料金を請求するというものだ。
    コード検索の機能制限付きオープンソース版は、個人開発者にも企業にもほとんど使われておらず、Sourcegraphコード検索の利用は、Google Chrome対Chromium、VS Code対VSCodiumのようなケース以上に、公式の非オープンソースビルドへ大きく偏っていた。
    2つの派生版を維持するのはエンジニアリングチームの負担であり、ユーザーへの利益はごく小さかった。
    詳しい説明はhttps://github.com/sourcegraph/sourcegraph/issues/53528#issu...にある。
    変更点は変更ログとPRで告知されており、すべての開発は公開で進められている。
    計画どおり、大きな単一リポジトリをCody向けの100%オープンソースリポジトリと、コード検索向けの非オープンソースリポジトリに分割した後、今週ブログ記事を出す予定である。
    公開コードについてはhttps://sourcegraph.comで、非公開コードについてはセルフホストの無料ティアで、Sourcegraphコード検索を引き続き無料で使える。
    つまり個人開発者は今後もSourcegraphコード検索を100%無料で実行でき、顧客への影響はない。
    • Sourcegraphは非オープンソースのイメージしか提供しておらず、ビルド工程は長い間難しく壊れがちで、オープンソース版のアプリケーション自体もしばしば壊れていた。
      数分Issueを検索するだけでも関連結果はかなり見つかる: 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
      ビルドできる人が少なく、ビルドに成功しても数リリースごとに成果物が壊れていたのなら、オープンソース版の利用が少なかったのは当然だ。
      VS CodeとChromiumは、その性質と人気のおかげでビルドしやすく、さまざまな場所でビルド済みバージョンも入手できる。
      ディストリビューションのリポジトリにある「非公式」Chromiumビルドはインストールしても、GitHubの見知らぬ人が作った非公式Sourcegraphビルドに自分のコードを入れることはしないだろう。
      この2つを比較するのはかなり不公平で、オープンソース導入を妨げていた別の問題もあった。
      しばらくの間、公式のSourcegraph Dockerイメージには10席無料ライセンスが含まれており、多くの人にはそれで十分だったため、オープンソースビルドのような代替を探さなかった。
      ライセンス変更や製品のクローズ化を変更ログファイルの小さなブロックや、誰かがGitHub Issuesで問題に触れたときに知らせるだけでは、この種の変更の告知として十分ではないと思う。
      オープンファーストの原則を採らず、ほかの人たちがこの投稿の下で述べているようにエンタープライズ専用プラグインで製品を制限し、オープンソースビルドを提供せず、事前告知なしにライセンスを変更し、それ以前にはオープンソースという言葉で都合のよい無料マーケティングをしてきた点は苦々しい。
      とくに金利のせいで、最近こうしたことをする企業が多すぎるのでなおさらだ。
    • 職場でSourceGraphの導入を長い間推してきたが、オープンソース版のデプロイが事実上不可能だったため、検討すら止まってしまった。
      オープンソース版が成功しなかったというSourcegraphの認識が間違っているとは思わないし、ソースを閉じる方が確かにずっと簡単ではある。
      しかし結局のところ、それはその流入経路を開いておくための労力が、その経路から入ってくる人たちと釣り合わないという計算であり、1つの流入経路が閉じられることになる。
      別の可能性もある。その流入経路が最初から成功を見込めるほど十分に開かれていなかった、という見方の方により同意する。
    • 「企業には料金を請求し、個人開発者向けツールはオープンソースにする」というのであれば、Open Sourceという用語を使うべきではない。
      そうした制限を設けた時点でオープンソースではなく、誠実ではないことはかなり明白だ。
      こうしたライセンスはOSI承認を受けたものではない。
    • オープンソース版を使っていた数少ない人間の1人で、かなり気に入っていたので、今回の変更は残念だ。
      Sourcegraphの難しさは、個人プロジェクトを行う開発者にとってアクセスしにくい点にあった。
      ホスティングプランがなく、私のプロジェクトは雇用主の都合で簡単にオープンソース公開できない。
      Sourcegraph Appが出たときは、複雑なセルフホスト設定なしに自分のプロジェクトでSourcegraphを試せるので、本当に期待していた。
      Bazelベースのプロジェクトでscip-clangまで動かせるようにし、ホームラボでdocker-compose設定も試した。
      今ではアプリからコード検索が削除され、さらに今回の変更まで加わったので、今後個人プロジェクトにSourcegraphを使えなくなるのではないかと心配している。
      これは逃した機会だ。
      個人プロジェクトで製品を使う個人開発者は強力な支持者になり得るし、その開発者が雇用主に製品購入を働きかけることもできる。
      可能なら喜んで払うが、1人の人間として年間5,000ドルを正当化するのは難しい。
    • ここでの批判的な内容を含め、すべてのコメントは公正で思慮深いと思う。
      HNのトップページから落ちた後もさらに話したければ、Discord https://discord.gg/rDPqBejz93に来てほしい。

フィードバックや不満を直接共有したいなら知らせてほしい。問題なければ録音も公開できる。

  • 複数のリポジトリや巨大なモノレポで猛烈な速度で grepできるオープンソースの検索ツールを探しているなら、livegrep を強く勧める: https://github.com/livegrep/livegrep
    デモは https://livegrep.com/search/linux にある
    Stripe で使われていてかなり人気があり、単一リポジトリの検索ですらローカルの ripgrep より livegrep のほうが速いことがよくあった
    レビュー記事: https://www.alexdebrie.com/posts/faster-code-search-livegrep...
    作者 nelhage によるパフォーマンス面の振り返り: https://blog.nelhage.com/post/reflections-on-performance/、アーキテクチャ記事: https://blog.nelhage.com/2015/02/regular-expression-search-w...

    • https://oracle.github.io/opengrok/ もオープンソースで、Android 全体と Linux カーネルを合わせたような巨大なソースベースでも高速で実用的
    • より小規模向けを目指して開発中の https://github.com/boyter/cs もある
      あまり大きすぎなければ複数リポジトリでもうまく動く
    • livegrep は文字どおりまともなWeb 版 grep
      ただし、基盤コードを実際に理解し、コードパスをたどり、参照を検索できる Sourcegraph の代替では明らかにない
  • 他社製品が永遠に不十分なままだという前提でスタートアップを作るべきではない
    最近の GitHub 検索刷新で、Sourcegraph は存在意義を失った可能性が高い
    以前の GitHub 検索はほぼ最悪に近いアルゴリズムを使っていた
    すべての句読点と空白を捨てて識別子だけを検索し、パターンも使えず、引用符検索もできず、使えるメタ引数はほぼ filename:xyz だけだった
    今では GitHub が基本の検索機能を改善したので、Sourcegraph は危ういかもしれない
    Lyft で Sourcegraph を使っていたが、当時の Lyft はソフトウェアツールに浪費できる金がほぼ無限にあり、Databricks ではオープンソース版を入れたものの誰も気にしていなかった

    • すべてのコードが GitHub でホストされている場合に限って、GitHub 検索が Sourcegraph を無意味にする
      GitHub 専用ソリューションが「業界標準」として持ち上げられるのにはかなりうんざりしている
      GitHub でしか動かない製品との連携しか出さないベンダーも同様
      Git は分散プロトコルなのだから、どうかそう扱ってほしい
    • GitHub 検索は以前よりマシになったとはいえ、今でも妙にいまひとつなので、いまでも定期的に GitHub リポジトリを落としてきてそのまま grep している
    • GitHub 検索が Sourcegraph を置き換えるとは思えない
      GitHub は特に大規模なプライベート組織向けには無料ではないし、検索機能は Sourcegraph のほうが GitHub よりずっと良い
    • GitHub クラウド版や GitLab などを使わないエンタープライズのニッチがまだ残っているのか気になる
      私の理解では、GitHub のオンプレミス版に新しいコード検索機能を入れる予定はない
  • 実際にオープン版を使っていた人がいたのか気になる
    2〜3年前に見た記憶がうっすらあるが、本当に面白い機能は全部抜けていた
    エンタープライズ価格は開発者1人あたり月100ドルほどで完全に法外で、予算が無限にある大口顧客だけを狙っているのが明らかだった
    今は価格が変わったようで、「Enterprise Starter」が年額5,000ドルからとなっているが、多くの項目があるにもかかわらず実際の制限が何なのか非常に不明瞭
    この製品には本当に関心があり、自分たちのツールセットへの良い追加になるかもしれないのに、価格がここまで不透明なのは残念

    • オープンソース版には公式の Docker 事前ビルド済みイメージがなく、自分でビルドする必要があり、長い間オープンソースビルドは壊れたままだった
      1〜2年前に修正するか公式のオープンソースイメージを提供すると約束したが、実現しなかった
      結局、ある1人が GitHub 上で動くリリーストレインを作り、オープンソースコンテナを配布したが、Docker Hub では1万回以上 pullされている
      非公式イメージとしてはかなり多い数字だ
      インフラの中核でもないサードパーティーツールが営業連絡を要求してくるなら、たいてい避ける
      数本のライセンスのために営業対応で会社の時間を無駄にさせず、数字を入れる欄と購入ボタンを用意してくれればいい
      Sourcegraph への信頼もやや下がった。方向性・価格・ルールを年に何度も変えているように見えるからだ
    • 面白半分で会社にオープンソース版を入れて、およそ750個のリポジトリを同期した
      OAuth2 プロキシをサポートするためにいくつかパッチを当て、テレメトリも削除した
      ソフトウェア自体は素晴らしく、とても高速で、意図どおりに動く
      数か月後には登録ユーザーが70人になったが、実際に何度か使った人は合計3人しかいなかった
    • 月400ドルの New Relic フルユーザー価格を思い出す
    • いまはAI 方面へ大きくピボットしているように見え、リーディング向け製品が存在すること自体ほとんど認めたくないようにも見える
      実に奇妙だ
    • 月100ドル払うのに「無限の予算」が必要だと言うのは公平ではないと思う
      予算はかなり限られているが、それより高く払っている製品はいくつもある
      生産性を高めたりビジネスの助けになるツールなら、十分にお金を払う価値がある
  • ライセンスはほぼ3週間前に変更されたが、5.1.0 リリースブログ記事にはその情報が載っていない
    まだ正式発表もない
    Sourcegraph オープンソースコンテナの作成者は、自分のリリーストレインはもう終わりだと知らせたようだ: https://github.com/jensim/sourcegraph-release-train/

  • デモ期間中のサポートはあまり良くなく、複雑な C++ サポート も不十分で、モダンな C++ ビルドシステムとうまく統合されず、価格も法外だった
    「campaign」機能をずっと押していたが、これは私たちの非独自かつ一般的なビルドシステムさえサポートできない、過度に複雑な自動リファクタリングツールだった
    そのライセンス費用の代わりに、コードリファクタリング用の開発者を2人雇ったが、彼らはその後ほかのツールも作り、ひどいサービス連携の面倒を見るために別の誰かを雇う必要もなかった
    私たちと話していたとき、彼らがニッチ市場を見つけていたとは言いにくかった
    今は改善しているかもしれない

    • 「campaign」という以前の名前を使っているのを見ると、Sourcegraph を調べた時点は約2.5年前か、それ以前だったように見える
      その後かなり変わった
      最近、新しいインデクサー scip-clang を公開し(https://about.sourcegraph.com/blog/announcing-scip-clang)、Chromium のような大規模コードベースのインデックス作成に成功裏に使われた
      このインデクサーは JSON コンパイルデータベースに依存しており、これは以前のインデクサー lsif-clang と同じで、CMake、Bazel、Meson、Make などから簡単に生成できる
      最近では C++ の リポジトリ間コードナビゲーション にも対応した: https://about.sourcegraph.com/blog/c-cpp-cross-repo
    • ライセンス価格で開発者を2人雇えたとは、いったいどれほど高かったのか気になる
    • どのビルドシステムを使っていたのか気になる
      JSON コンパイルデータベースは今では比較的うまく生成できると思っていた
      たとえば VS Code の言語サーバーでも使われている
  • https://github.com/sourcegraph/sourcegraph/issues/53528#issu... は、プロジェクト側の人がなぜ変更したのかを整理したコメントのようだ

    • 目立つ点はこうだ
      Sourcegraph はオープンソースのコード検索エンジンである Zoekt へのコミットを継続し、変更も引き続きアップストリームする予定だという: https://github.com/sourcegraph/zoekt
      ソースコードは引き続き公開されたまま残るという
      個人開発者は sourcegraph.com の公開コードと、セルフホスト無料ティアの非公開コードで、引き続き Sourcegraph を無料で使えるという
      オープンソースだった制限付きコード検索バリアントを使っていた個人開発者や企業はごくわずかで、99.9% 以上 の圧倒的大多数はエンタープライズ製品を使っていたという
      今後2つのバリアントを維持することはエンジニアリングチームにとって大きな負担であり、ユーザーへの利益はごく小さかったという
    • 数か月前、10 開発者席を許可していた無料のエンタープライズライセンスを廃止しており、一部の小規模企業は更新を見送りつつオープンソース版を検討していたはずだが、これでそれもなくなったようだ
    • オープンソース版は誰も使っておらず、誰も使わない2つのバージョンを維持したくなかった、ということのようだ
      個人向けに無料のセルフホスト版を提供すると書かれているが、サイトでは見つけられなかった
  • 全体として オープンコア製品 は好きになれない
    何かを作る者として、ユーザーの前に障害物を置き、自分の作ったものを使える範囲を制限するのは、クラフトマンシップに欠けるように感じる
    人々が製品を使う方法を意図的に妨げる決定は、純粋に強欲から出たもののように感じられることもある
    Sourcegraph が完全に自由ソフトウェアだった世界を想像すると、それでもエンタープライズ顧客は Sourcegraph をオンプレミスで安全にホストするためにお金を払っていた可能性が高い
    ただし、席数ごとの課金はできなかっただろう
    顧客がエンジニアを雇って Sourcegraph を自前でオンプレミス運用することで大金を節約できないよう、製品価格を十分低く保つ必要があったはずだ
    Sourcegraph やほかのオープンコア事業者が完全な自由ソフトウェアへ移行した場合、どれほどの顧客と売上を失うか見積もったことがあるのか気になる
    自由ソフトウェアを作り、ホスティング費用を請求することは持続可能な事業の基盤になり得るが、ベンチャーキャピタルが成功投資に期待する水準の結果をもたらすのは難しい可能性が高い
    正直、インフラはクローズドな独占ソフトウェアでも構わないと思う
    セキュリティが重要なプログラムを書くなら、インフラコードを自由に公開することは攻撃者に多くの弾薬を与えることになり得るからだ
    自動化の力と高品質ソフトウェアの構築を信じるなら、顧客インフラへ簡単かつ安全にデプロイ・保守でき、ホスト側の運用負担が非常に小さく、インフラコードは独占的な自由ソフトウェアを作ることができる
    こうしたやり方は非常に堅実な事業につながり得る
    なぜこのような事業をもっと見かけないのか不思議だ

  • https://github.com/sourcegraph/sourcegraph/commit/3cd931ef54... に少し追加情報はあるが、多くはない

    • ライセンス変更の告知 は、その変更を実装する前に出るものだと期待するのが普通だ
  • Webで使えるように約100個ほどのGitリポジトリを接続するなら、どのオープンソースのコード検索システムが良いのか気になっている
    GitHub検索は範囲が広すぎるし、GitLabなどのリポジトリを含められないので望んでいない
    以前にDebian code search https://github.com/Debian/dcs を見たことはあるが、なんとなく手間がかなりかかりそうに見えて、調査を最後までしなかった
    ただし https://github.com/Debian/dcs/blob/main/howto/building.md はかなり取り組みやすそうに見える
    Sourcegraphが言及していたZoekt https://github.com/sourcegraph/zoekt もあるが、どれほど実用的なのか確信が持てない
    かなり良いものなら、そもそもなぜSourcegraphのオープンソース版が存在していたのかも気になる
    ここ数年、Sourcegraphのオープンソース版が大きく遅れていたという議論を見ると、本気でフォークする計画はないようだ
    GCSリリース https://github.com/google/codesearch は、フロントエンドなしでオープンソース化されたように見える
    上の方ではLivegrep https://github.com/livegrep/livegrep とOpenGrok https://oracle.github.io/opengrok/ も勧められていた
    試してみるのがかなり楽しみだが、動くDocker Compose設定があれば始めるのに大いに役立ちそうだ
    Eureka https://github.com/Rajeev-K/eureka もある
    機能はやや弱そうだが、デプロイはより簡単そうに見える

    • Google codesearchは実際に使える「製品」ではない
      Livegrep(https://github.com/livegrep/livegrep) はそこから着想を得ていて、かなり実用的だ
      Zoektも元はGoogleのオープンソースプロジェクトだったが、メンテナンスが止まり、Sourcegraphが引き継いだ
      Sourcegraphの標準的な正規表現/リテラル検索の大部分を動かしている
      MozillaのコードはSearchfox(https://searchfox.org/) で検索できるが、Livegrepのインデクサと独自のGitインデクサ、言語別のクロスリファレンスデータベースを組み合わせて使っている
      OpenGrok(https://github.com/oracle/opengrok) もかなりよく知られているが、代替案よりUIが少し劣ると感じた
    • 小さなリポジトリとコマンドライン用途なら cs もある: https://github.com/boyter/cs
    • Houndもある: https://github.com/hound-search/hound