Text
Page: 1
General Resolution: tag2uploadは Debianにどんな変化を もたらすのか GR: tag2uploadの内容をふんわり理解する Kentaro Hayashi ClearCode Inc. 2024年07月 東京エリア・関西合同Debian勉強会
Page: 2
スライドは Rabbit Slide Showにて公開済み General Resolution: tag2upload Debianにどんな変革をもたらすのか https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-tag2upload-202407
Page: 3
本日の内容 DebianのGR: tag2uploadについて tag2uploadはどういうものなのか tag2uploadが議論となった背景 tag2uploadで解決される問題
Page: 4
本日の内容 DebianのGR: tag2uploadについて tag2uploadはどういうものなのか tag2uploadが議論となった背景 tag2uploadで解決される問題
Page: 5
General Resolution to deploy tag2upload https://www.debian.org/vote/2024/vote_002
Page: 6
General Resolution to deploy tag2upload (1) tag2uploadでDDやDMがgit-debpush(1)を使ってgit tagに署名してアップ ロードできるようにする tag2uploadをDebian公式なインフラへと組み込む Debian憲章にもとづいて、tag2uploadサービスからのアップロードを信 頼できるものとして受け入れるようにする(ftpmasterはこの決定に従って ね)
Page: 7
General Resolution to deploy tag2upload (2) tag2uploadの将来的な変更はGRとかじゃなくて通常のDebianの開発プロ セスに則って実施するよ この決定はメンテナに特定のgitでのワークフローを強制するものではな いよ
Page: 8
GR: tag2upload, text of proposal https://lists.debian.org/debian-vote/2024/06/msg00561.html 2024/06/27 Sean Whitton氏によってtag2uploadが提案がなされる Sean Whitton氏やIan Jackson氏が中心になってtag2uploadのしくみを設計
Page: 9
General Resolution to deploy tag2upload (要約) tag2uploadはgit tagに署名されていたらそれをもとにソースパッケージ のアップロードまで代行してくれるしくみを導入するもの GRによってtag2uploadのしくみをftpmasterに採用してもらうことをね らっている GRによる解決を図るのはある意味最終手段 ftpmasterの方針をひっくり返すには(説得に失敗したら)GRしかない
Page: 10
GR: tag2uploadの最新情報 Re: General Resolution to deploy tag2upload https://lists.debian.org/debian-vote/2024/07/msg00025.html GRはSean氏によって撤回された tag2uploadの仕様を変更することによりftpmasterとの合意形成できたため
Page: 11
本日の内容 DebianのGR: tag2uploadについて tag2uploadはどういうものなのか tag2uploadが議論となった背景 tag2uploadで解決される問題
Page: 12
MiniDebConf Cambridge 2023 tag2upload - uploads, made automatically and fully traceably, from git MiniDebConf Cambridge 2023 (2023年11月開催)のプレゼンが参考になる https://www.youtube.com/watch?v=1ohpZ4Xj0iQ
Page: 13
伝統的なパッケージの更新 https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 14
最近のパッケージの更新 https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 15
tag2uploadの導入でどうなるか https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 16
tag2uploadの進行状況 ✅tag2uploadのしくみのデザイン ✅git tagに署名するgit-debpushの実装 ✅dgitサーバーの稼働 (git.dgit.debian.org) ✅ソースパッケージ(.dsc)を生成するしくみの実装 ✅tag2uploadのしくみのレビュー
Page: 17
tag2uploadのこれから ❌webhookとジョブを動かすサービスの検討(DSAと議論が必要) ❌tag2uploadを試験稼働させる(DSAと議論が必要) ❌ベータ稼働、ユーザーからのフィードバック等
Page: 18
本日の内容 DebianのGR: tag2uploadについて tag2uploadはどういうものなのか tag2uploadが議論となった背景 tag2uploadで解決される問題
Page: 19
tag2uploadは急にでてきたわけ じゃない 2019年7月: Ian Jackson氏により設計の草稿が示される https://lists.debian.org/debian-dak/2019/07/msg00025.html 当時ftpmasterを説得しきれず立ち消えになった模様
Page: 20
[RFC] General Resolution to deploy tag2upload 2024年6月 Sean WhittonさんによりGRの草稿が提示される https://lists.debian.org/debian-vote/2024/06/msg00000.html tagに署名をするだけでは不十分ではないか(ftpmaster) リリースを意図したアーカイブになっていることを担保すべき 例: 手元でビルドしないと得られないメタデータ(チェックサム)の付与 tag2uploadのコンセプトと相容れない(tag2upload推進派)
Page: 21
なぜGeneral Resolutionが提案され たのか GR: General Resolution Debianにおいて物事を投票で決めるしくみ DPLや権限を委譲されたチームの決定を覆すことができる(Debian憲章より) 2019年のときと同じような議論が繰り返された(tag2upload推進派) tag2upload推進派は現状のデザインをそのまま採用させたい
Page: 22
どのような合意形成が行われたか t2u in the archive (was: General Resolution to deploy tag2upload) https://lists.debian.org/debian-vote/2024/06/msg00602.html タグに署名をするのに加えて: tagにひもづいたgit ls-files --format="%(objectmode) %(objectname) %(path)"を 含める gitのアーカイブ(SOURCE_VERSION.git.tar.xz)を.changesに含める メンテナーが意図したアーカイブの内容であることを検証できるようにする
Page: 23
本日の内容 DebianのGR: tag2uploadについて tag2uploadはどういうものなのか tag2uploadが議論となった背景 tag2uploadで解決される問題
Page: 24
tag2uploadの導入でどうなるか(再 掲) https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 25
開発者にとって何が変わるか パッケージメンテナー(DD or DM)のやること ソースパッケージのアップロードは不要になる tagを打つときに署名を付与してsalsa.d.oにgit debpushするだけでよい tag2uploadは利用しなくてもよい(オプションだから)
Page: 26
ユーザーにとって何が変わるか git.dgit.d.oからタグの打たれたソースコードを入手できる gitを経由してソースを取得し、より再現性のあるビルドが行える(salsa.d.oと の比較) 一般ユーザーにはあんまり影響はない
Page: 27
Debianにとって何が変わるか トレーサビリティの向上 ソースパッケージを一貫したやりかたで生成できることが担保される 変なコードの混入を防ぎやすくなる git.dgit.d.oは追記のみなのであとから検証できる salsa.d.oが現状を正しく反映するようになる salsa.d.oと最新のソースパッケージの内容が違うとかありがち
Page: 28
tag2uploadを使うには 次のようにして初期セットアップする(gbp使っている場合) (アップロード前の)新バージョンの準備ができたら実施する 既定でgit pushするので注意 $ sudo apt install git-debpush $ cd (salsa.d.oからcloneしたディレクトリ) $ git debpush --gbp
Page: 29
さいごに tag2uploadによりパッケージの透明性が高まるかも DSAとの調整次第なのでいつ導入されるかは不明 またtag2uploadを採用するかどうかはメンテナー次第 単一リポジトリはサポートされていないのが課題(Rubyパッケージとか)
Page: 30
参考 Debian debate over tag2upload reaches compromise https://lwn.net/Articles/978324/ tag2uploadに関するあれこれをまとめている記事