SourceGraph のオープンソース機能の終了
(github.com/sourcegraph)- Sourcegraph が非公開モノレポへ移行
- このリポジトリ (
sourcegraph/sourcegraph-public-snapshot) は、移行直前のsourcegraph/sourcegraphリポジトリの公開コピー
sourcegraph/sourcegraph-public-snapshot) は、移行直前の sourcegraph/sourcegraph リポジトリの公開コピー
1件のコメント
Hacker Newsの意見
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%無料で実行でき、顧客への影響はない。
数分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の認識が間違っているとは思わないし、ソースを閉じる方が確かにずっと簡単ではある。
しかし結局のところ、それはその流入経路を開いておくための労力が、その経路から入ってくる人たちと釣り合わないという計算であり、1つの流入経路が閉じられることになる。
別の可能性もある。その流入経路が最初から成功を見込めるほど十分に開かれていなかった、という見方の方により同意する。
そうした制限を設けた時点でオープンソースではなく、誠実ではないことはかなり明白だ。
こうしたライセンスはOSI承認を受けたものではない。
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...
あまり大きすぎなければ複数リポジトリでもうまく動く
ただし、基盤コードを実際に理解し、コードパスをたどり、参照を検索できる Sourcegraph の代替では明らかにない
他社製品が永遠に不十分なままだという前提でスタートアップを作るべきではない
最近の GitHub 検索刷新で、Sourcegraph は存在意義を失った可能性が高い
以前の GitHub 検索はほぼ最悪に近いアルゴリズムを使っていた
すべての句読点と空白を捨てて識別子だけを検索し、パターンも使えず、引用符検索もできず、使えるメタ引数はほぼ
filename:xyzだけだった今では GitHub が基本の検索機能を改善したので、Sourcegraph は危ういかもしれない
Lyft で Sourcegraph を使っていたが、当時の Lyft はソフトウェアツールに浪費できる金がほぼ無限にあり、Databricks ではオープンソース版を入れたものの誰も気にしていなかった
GitHub 専用ソリューションが「業界標準」として持ち上げられるのにはかなりうんざりしている
GitHub でしか動かない製品との連携しか出さないベンダーも同様
Git は分散プロトコルなのだから、どうかそう扱ってほしい
grepしているGitHub は特に大規模なプライベート組織向けには無料ではないし、検索機能は Sourcegraph のほうが GitHub よりずっと良い
私の理解では、GitHub のオンプレミス版に新しいコード検索機能を入れる予定はない
実際にオープン版を使っていた人がいたのか気になる
2〜3年前に見た記憶がうっすらあるが、本当に面白い機能は全部抜けていた
エンタープライズ価格は開発者1人あたり月100ドルほどで完全に法外で、予算が無限にある大口顧客だけを狙っているのが明らかだった
今は価格が変わったようで、「Enterprise Starter」が年額5,000ドルからとなっているが、多くの項目があるにもかかわらず実際の制限が何なのか非常に不明瞭
この製品には本当に関心があり、自分たちのツールセットへの良い追加になるかもしれないのに、価格がここまで不透明なのは残念
1〜2年前に修正するか公式のオープンソースイメージを提供すると約束したが、実現しなかった
結局、ある1人が GitHub 上で動くリリーストレインを作り、オープンソースコンテナを配布したが、Docker Hub では1万回以上 pullされている
非公式イメージとしてはかなり多い数字だ
インフラの中核でもないサードパーティーツールが営業連絡を要求してくるなら、たいてい避ける
数本のライセンスのために営業対応で会社の時間を無駄にさせず、数字を入れる欄と購入ボタンを用意してくれればいい
Sourcegraph への信頼もやや下がった。方向性・価格・ルールを年に何度も変えているように見えるからだ
OAuth2 プロキシをサポートするためにいくつかパッチを当て、テレメトリも削除した
ソフトウェア自体は素晴らしく、とても高速で、意図どおりに動く
数か月後には登録ユーザーが70人になったが、実際に何度か使った人は合計3人しかいなかった
実に奇妙だ
予算はかなり限られているが、それより高く払っている製品はいくつもある
生産性を高めたりビジネスの助けになるツールなら、十分にお金を払う価値がある
ライセンスはほぼ3週間前に変更されたが、5.1.0 リリースブログ記事にはその情報が載っていない
まだ正式発表もない
Sourcegraph オープンソースコンテナの作成者は、自分のリリーストレインはもう終わりだと知らせたようだ: https://github.com/jensim/sourcegraph-release-train/
デモ期間中のサポートはあまり良くなく、複雑な C++ サポート も不十分で、モダンな C++ ビルドシステムとうまく統合されず、価格も法外だった
「campaign」機能をずっと押していたが、これは私たちの非独自かつ一般的なビルドシステムさえサポートできない、過度に複雑な自動リファクタリングツールだった
そのライセンス費用の代わりに、コードリファクタリング用の開発者を2人雇ったが、彼らはその後ほかのツールも作り、ひどいサービス連携の面倒を見るために別の誰かを雇う必要もなかった
私たちと話していたとき、彼らがニッチ市場を見つけていたとは言いにくかった
今は改善しているかもしれない
その後かなり変わった
最近、新しいインデクサー
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
JSON コンパイルデータベースは今では比較的うまく生成できると思っていた
たとえば VS Code の言語サーバーでも使われている
https://github.com/sourcegraph/sourcegraph/issues/53528#issu... は、プロジェクト側の人がなぜ変更したのかを整理したコメントのようだ
Sourcegraph はオープンソースのコード検索エンジンである Zoekt へのコミットを継続し、変更も引き続きアップストリームする予定だという: https://github.com/sourcegraph/zoekt
ソースコードは引き続き公開されたまま残るという
個人開発者は sourcegraph.com の公開コードと、セルフホスト無料ティアの非公開コードで、引き続き Sourcegraph を無料で使えるという
オープンソースだった制限付きコード検索バリアントを使っていた個人開発者や企業はごくわずかで、99.9% 以上 の圧倒的大多数はエンタープライズ製品を使っていたという
今後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 もある
機能はやや弱そうだが、デプロイはより簡単そうに見える
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