1.3K Views
September 10, 25
スライド概要
社内勉強会で使用した資料の公開版です。
GitHub (今回は gitub.com) 上では数多くの OSS の開発が進められています。
GitHub は、OSS 開発者だけのものではなく、OSS 利用者にとっても情報の宝庫です。
今回は、OSS 利用者が、最新動向や修正の経緯などを
追うために GitHub を活用する方法を紹介します。
GitHub が OSS 利用者にとってブラックボックスではなく、情報の宝庫
だという捉え方になれば幸いです。
ansible
GitHub で OSS の動向や経緯を追ってみよう 2025/09/10 AP Tech Fest 株式会社 エーピーコミュニケーションズ iTOC 事業部 ACT 横地 晃 1
はじめに GitHub (*1) 上では数多くの OSS の開発が進められています。 GitHub は、OSS 開発者だけのものではなく、 OSS 利用者にとっても情報の宝庫です。 今回は、OSS 利用者が、最新動向や修正の経緯などを 追うために GitHub を活用する方法を紹介します。 GitHub が OSS 利用者にとって ブラックボックスではなく、情報の宝庫 だという捉え方になれば幸いです。 * すでに GitHub をお使いの方には既知の内容が多いです。 Gitの用語(コミットやブランチなど)は分かるけど、 GitHub には不慣れという方向けです *1: 本資料では、 SaaS版(github.com)のことを指します 2
自己紹介 横地 晃 X @akira6592 所属 ・iTOC 事業部 ビジネスデベロップメント部 ACT ・エンジニアリングメンター室(兼) 業務 ネットワーク自動化のご支援 好きな OSS Ansible 3
そもそも GitHub とは 4
そもそも GitHub (github.com) とは ◼ ◼ ◼ メジャーな Git ホスティングサービスの一つ 数多くの OSS が GitHub で開発されている コードだけでなくドキュメントもセットで管理されていることも多い 修正、機能追加、 バグ報告、新機能リクエストなど 5
主な機能 ◼ コード管理・共有機能 ◼ ◼ Issue ◼ ◼ コードやドキュメントなどを git で共有する機能 バグの報告や新機能のリクエストなどをする機能 Pull Request (PR、プルリク) ◼ コードやドキュメントなどの追加や修正の取り込みを リクエストする機能 ◼ 取り込みすることを「マージ」と呼ぶ 取り込んでください! 修正 ■★ メイン ■▲ 6
Issue や PR の主なステータス ◼ Issue や PR にはステータスを示すアイコンが付く これ 分類 Issue PR ステータス 意味 Open 進行中、未解決 Closed クローズ済み。右に添えられているのは関連する PRが添えられ ていれば対応状況を追いやすい Closed as not pllaned 対応予定なしのものとしてクローズ Open 進行中、まだ取り込んでいない Merged マージ(取り込み)された。ただしリリースされたかどうかは詳細を 調べる必要がある Closed マージされずにクローズした 7
活用例 1~4 8
活用例1: バグ探し このエラー、既存バグかな? 9
Issue でバグ探し ◼ ◼ ◼ バグやユーザーや開発者から Issue として報告される エラーメッセージなどで Issue を検索すると、見つかる場合がある さらに関連する PR を追うことで、対応状況も分かる 10
バグ探し手順 1. 2. Issues でエラーメッセージや現象を検索する 詳細を確認する 検索キーワード 詳細が表示される 11
活用2: 修正の経緯を追う どうしてこうなった? 12
PR から Issue を追って修正の経緯を追う ◼ ◼ コードやドキュメントの修正(または追加)が日々行われているが、Changelog だけ 見ても経緯が分からないことがある 修正のPR や関連付けられている Issue を見ると経緯が分かる この差分はなぜ? PR 特定 Issue 特定 経緯などが確認できる 13
修正の経緯を追う手順 (手順がやや複雑なので、あとの事例パートで説明します) 14
活用3: リリース状況をウォッチ 新しいリリースを素早くキャッチ! 15
リリース状況をウォッチする ◼ ◼ 新しいバージョンがリリースされる際、「Release」という単位で 扱われることが多い GitHub 上で Release をウォッチしていると、かなり早い段階で リリースを検知できる NEW RELEASE! 16
リリース状況をウォッチする手順1 1. 2. 気になるリポジトリの「Watch」の「Custom」をクリック 表示されるポップアップの「Releases」にチェックして Apply 17
リリース状況をウォッチする手順2 3. 4. 右上の通知アイコンをクリック 新しいリリースがあれば表示される リリースの詳細情報や Changelog へのリンクなどが表示される 18
活用4: 最新動向をウォッチ Issue や PR をウォッチ 19
Issue や PR で最新動向をウォッチする ◼ ◼ ◼ ◼ Issue や PR をウォッチすると、バグの報告や修正状況、 新機能の開発状況を追える 先にバグを知っておけば、実際に遭遇したときに 「GitHub で見たやつだ 」ってなる 先に PR を知っておけば、次のリリース内容を先取りできる メジャーリリース直後に、どの程度安定してるかの 判断材料にもなる リリースより早く、細か く追える 20
最新動向をウォッチする手順1 1. 2. 気になるリポジトリの「Watch」の「Custom」をクリック 表示されるポップアップの「Issues」「Pull requests」にチェックして Apply 21
最新動向をウォッチする手順2 3. 4. 右上の通知アイコンをクリック 新しい Issue/PR やコメントなどの動きが表示される (この場合は) PR に対するコメントが 追加されたことを確認できる 22
【事例】 ドキュメントの一部が消えた謎を追う 「活用2: 修正の経緯を追う」の事例 23
インストール手順が消えた! ◼ ◼ NetBox(IPAM/DCIM の OSS) のドキュメントで、ある時 CentOS 向けのインストール手順が削除された 「なにごと?」と思って経緯を追ってみることに どうして 以前は CentOS 向け手順(yum)もあったのに、 Ubuntu 向け手順(apt)のみになった 24 https://netboxlabs.com/docs/netbox/installation/postgresql/
1. リポジトリの特定 ◼ ◼ ◼ ◼ 勘で NetBox 本体のリポジトリ(*1)を見たら「docs」ディレクトリを発見 さらに「docs/installation」ディレクトリには、 ドキュメントのメニュー構成とよく似たファイルたちがある 一つ開いてみるとドキュメントと同じ記述がある どうやらドキュメントもこのリポジトリで 管理しているようだ、と目途をつけた ⇔ 同 じ っ ぽ い *1 https://github.com/netbox-community/netbox ドキュメントの 左メニュー リポジトリの docs/installation 配下 25
2. コミットの特定 ◼ CentOS 向け手順が削除されたコミットを探すためにコミットログを見る コミットログで 履歴を追ってみる https://github.com/netbox-community/netbox/blob/main/docs/installation/1-postgresql.md 26
2. コミットの特定(続き) ◼ それらしいコミットのがあったので差分を確認 コミットログ (新しい順) おやおや👀 https://github.com/netbox-community/netbox/commits/main/docs/installation/1-postgresql.md * 今回の場合コミットメッセージに Issue や PR 番号が含まれているのでショートカット可 27
3. 差分の確認と PRの特定 ◼ それらしい差分なので、PR 番号 #19328 をクリック このコミットを含む PR 番号を特定 CentOS 向けの手順が削 除されて、Ubuntu 向け (apt)のみになってる https://github.com/netbox-community/netbox/commit/a0006632a7e9b4ac3b33e1f8697f9d6793fed793 28
4. PR の確認と Issue の特定 ◼ ◼ 変更をリクエストした PR が確認できた ◼ この PR で他に何が変更されたかは「Files changed」で確認できる 理由の記載はないが、関連する Issue 番号「#19327」を特定できた 元ネタ Issue 番号を特定 https://github.com/netbox-community/netbox/pull/19328 29
5. Issue で経緯を確認 ◼ CentOS は事実上メンテされておらず、2つのOSのインストール手順をメンテするの は煩雑で、読み手にとっても混乱を招く可能性があるため、 Ubuntu (Debianベー ス) に絞った、とのこと これで経緯を追えた https://github.com/netbox-community/netbox/issues/19327 30
別のアプローチ: PR の検索で見つかることも ◼ ◼ 今回はファイルのコミット差分から PR を特定した ほか、マージ済みの PR をキーワードで検索すると見つかることもある マージされてるはずなので closed を指 定しつつ「installation」などの関連キー ワードで検索 例の PR が見つかる 31
ちょっと発展 32
よりこまめにチェックしたい場合 ◼ ◼ スマホ版の GitHub アプリがおすすめ SNS とは違うイマが見える 33
ちょっとした貢献 ◼ お気に入り OSS のリポジトリに ★ を付ける ◼ 新機能、バグ修正、リクエストに +1 など ~略~ ◼ ◼ バグ報告の Issue に「私も同じ現象が起きた」旨のコメントで援護する バグに出会ったら Issue を書く 34
まとめ 35
まとめ ◼ ◼ ◼ GitHub は OSS 利用者にとっても情報の宝庫 バグ探し、経緯の調査、最新動向のウォッチなど 気になる OSS を GitHub をウォッチしてみましょう GitHub に近寄りがたかった OSS 利用者に 少しでも身近に思っていただき、 情報源として活用するきっかけになれば幸いです。 36