nixpkgsのコントリビュータになろう
このスクラップのゴール
執筆速度が遅すぎて完成するまで記事を公開しないという進め方では知識が失われてしまう
そこで散逸的にスクラップとして情報を公開し、ある程度出揃った時点で記事としてまとめて公開する
スクラップ内の情報について正しさは保証しないし、文章としての整合性も重視しない
目指すところ
nixpkgsで出したPRがマージされる
貢献の種類
- パッケージの更新
- 単純にバージョンとハッシュさえ更新すれば良いもの
- 依存やビルドの更新、他のパッケージとの整合性を取る必要があるもの
- 新規パッケージの追加
- 壊れたパッケージの修正
- ビルド環境改善
-
stdenv
やbuildXXXPackage
をはじめとするもの
-
ZHFについて
NixOSは毎年5月と11月にstableがリリースされる
リリース前約3週間の期間はZHF(Zero Hydra Failures)というキャンペーンが行われる
24.05では2024-05-08~2024-05-31の期間が予定されている
- 前提
- HydraというのはNixOSを支えるビルドシステムであり、nixpkgsで配布され、かつ自由なライセンスをもつパッケージはほとんど全てこのHydraによってビルドされる
リリース前にはNixOSの品質を高めるためにHydra上でビルドできなかったパッケージを修正するZHFが行われる
現在ビルドに失敗するパッケージは以下のURLで一覧できる
こちらは現在ビルドに失敗するパッケージの中で、他のパッケージに与える影響が大きいものから順に表示する
過去のZHFの様子は以下のissueを眺めると良い
ZHFとラベリングされたPRは以下の通り
PRを投げるまで
パッケージの選び方
新規パッケージ
困ったときにどうするか
- nixpkgsのissueやPRで他のコントリビュータに意見を仰ぐ
- discourseでスレッドを立てる
- matrixで聞く
PRを投げたら
レビューを待つ
PRに rebuild-linux-2500
のようなラベルが付与されたらPRの向き先を master
から staging
に変更する
このとき手順を誤ると多くの人にメンションが飛んでしまうので次のドキュメントを読みながら作業すること
ただしもし失敗してもPRを新たに作り直せばいいので心配しすぎる必要はない
レビューを受けたら
Q&A 誰にも見てもらえない、どうしたらいい?
パッケージの更新
そのパッケージのメンテナには通知が届くため、アクティブなメンテナであれば待てば見てもらえる可能性がある
見てもらえない、或いは見てもらったがコミッタではなくマージできないなら以前そのパッケージに対するPRをマージしたコミッタにメンションすると良いかも
Appendix 他者のPRのレビュー
完璧にできる必要はない
簡単なところだと以下の項目に着目すると良い
- コミットメッセージが規則に則っているか
- パッケージの更新の際にきちんとハッシュも更新されているか
- そのパッケージが実際にビルドできて動作するか
基本的なところだが案外できていないPRも多い