2 ポイント 投稿者 GN⁺ 2024-08-21 | 1件のコメント | WhatsAppで共有
  • 2019年半ばの転職活動中、Google GoteamとSourcegraphのどちらを選ぶか迷っていた
  • Sourcegraphを選んだ理由は、あらゆるものを公開の場で構築できる文化があったからだった
  • すべてのドキュメントはデフォルトで公開され、技術および製品のRFC、PR/FAQなどが公開Google Driveフォルダに保存されていた
  • すべての製品実装は公開GitHubリポジトリで行われていた
  • 現在、sourcegraph/sourcegraph リポジトリは非公開化された
  • これはSourcegraphの魅力的な文化を壊す決定だった
  • Sourcegraphは sourcegraph/sourcegraph-public-snapshot という公開スナップショットを残している

参照の維持

  • Sourcegraphで勤務していた間、エンジニアリングブログに多くの記事を書いた
  • 多くの記事では、関連する公開コードへのリンクを参照として使っていた
  • 今ではそれらのリンクがすべて壊れてしまった
  • 「クールなURIは変わらない」という言葉がある
  • リンクが突然切れないよう、できる限り情報を保存しようと努めている
  • sourcegraph/sourcegraphefritz/sourcegraph にフォークした
  • フォークはプルリクエストを継承せず、ブランチで直接参照されていないコミットは見えない
  • GitHubのドキュメントによれば、公開リポジトリが非公開化されてもフォークは存続する
  • ただし元のリポジトリが非公開化されると、main ブランチ以外のコミットは消える可能性がある

関連コミットのスクレイピング

  • すべてのコミットを見つけるためにGoプログラムを実行した
  • このプログラムは2,645件のプルリクエストのメタデータファイルを生成した
  • jq を使ってJSONペイロードを読み、データを抽出した
  • pr_ids.txtcommits.txtreplace_pairs.txt ファイルを生成した
  • 各プルリクエストの未マージコミットを列挙するため、2本目のプログラムを実行した
  • このプログラムは commits.txt ファイルにコミットを追加した

新しいリポジトリネットワークへコミットを取り込む

  • 各関連SHAを含むブランチを作成し、フォークに取り込んだ
  • Bashスクリプトを使ってgit操作を順次実行した

参照の書き換え

  • これで各参照をフォーク内の対象へリンクできるようになった
  • xargs を使って自動化プロセスを実装した
  • 直接のコミット参照はフォークへ書き換え、プルリクエスト参照はマージコミットへ書き換えた

GN⁺の要約

  • Sourcegraphの非公開化はオープンソース文化に大きな影響を与えた
  • エンジニアリングブログ内の多くの参照リンクが壊れ、それを保存するために大きな努力が必要だった
  • GitHubのフォークとスクリプトを使って参照を書き換え、コミットを保全した
  • この記事は、オープンソースプロジェクトの持続可能性と参照リンクの重要性を強調している

1件のコメント

 
GN⁺ 2024-08-21
Hacker Newsの意見
  • Sourcegraph CEOの意見:

    • 内部コードベースを非公開に切り替えた理由は、集中のためである
    • オープンソースかつ公開状態を維持することは、多くの追加作業とリスクをもたらす
    • 顧客向けに優れたコード検索/インテリジェンス製品を作ることに集中すべきである
    • それでも開発者とOSSコミュニティのために多くのことを行っている
      • 人気のある公開コード検索サービスを提供
      • 多くのオープンソースコードを保守
    • 他の創業者がコードを公開すべきかどうか悩んでいるなら相談に乗れる
  • 別のユーザーの意見:

    • Sourcegraphは開発者文化をよく理解する会社だと見られていたが、最近の変化は残念
    • 公開ロードマップを探そうとしたが、ほとんどの文書が非公開に切り替わっていた
    • 以前公開されていたハンドブックがNotionに移され、重要な部分の大半が非公開のGoogleドキュメントにリンクされている
  • また別のユーザーの意見:

    • 最近、Sourcegraphの公開検索インデックスが消えた
    • GitHubの検索機能が改善される前まではSourcegraphをよく使っていた
    • 今ではGitLabリポジトリと多くのGitHubリポジトリがインデックスから消えている
    • 信頼できない検索機能のせいでGitHubに戻らざるを得ない
  • 別のユーザーの意見:

    • オープンソース版をforkして、テレメトリー削除、アップデート無効化、独自コード削除、Dockerイメージ作成、軽量なOauth2認証を実装
    • 長期間にわたってOauth2-Proxyの背後で動かす予定
    • 非常に信頼性の高いソフトウェアである
  • また別のユーザーの意見:

    • macOSのリバースエンジニアリング作業にSourcegraphをよく使っている
    • Sourcegraph検索のおかげで多くのプロジェクトが存在している
    • 今後、検索機能がなくならないことを願う
  • また別のユーザーの意見:

    • すべての開発作業を非公開にするのは奇妙で当惑する
    • ライセンス制限だけでも事業目標は十分に達成できるはずなのに、なぜ非公開に切り替えたのか疑問
  • 別のユーザーの意見:

    • Sourcegraphをよく使っていたが、実際に料金を支払った人がどれほどいるのか気になる
    • オープンソース企業を運営するのは難しい
    • 会社が成熟するにつれて、無料では提供できないものがあることを理解するようになった
  • 別のユーザーの意見:

    • Software HeritageプロジェクトがSourcegraphリポジトリの大半をアーカイブしている
    • 最後のクロールは2024年7月中旬だった
  • また別のユーザーの意見:

    • Sourcegraphがもはやオープンソースではないという以前のエピソードに言及
  • 別のユーザーの意見:

    • Sourcegraphを何度も引用し推薦してきたが、実際に料金を支払ったことはない
    • オープンソースをやめた理由は気になるが、驚きではない