Rabbit Slide Show

Tokyo Debian tag2upload

2024-07-20

Description

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に関するあれこれをまとめている記事

Other slides

DebConf20 DebConf20
2020-08-25