Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GoのProposalの追い方ガイド

syumai
November 13, 2021

 GoのProposalの追い方ガイド

syumai

November 13, 2021
Tweet

More Decks by syumai

Other Decks in Technology

Transcript

  1. Go
    のProposal
    の追い方ガイド
    syumai
    Go Conference 2021 Autumn (2021/11/13)

    View full-size slide

  2. 自己紹介
    syumai
    Go Language Specification
    輪読会主催
    普段はGo
    でGraphQL
    サーバー (gqlgen)

    TypeScript
    でフロントエンドを書いていま

    Twitter: @__syumai

    Website: https://syum.ai

    View full-size slide

  3. 話すこと
    Go
    の Proposal
    とは?
    Proposal
    を追うにあたって読んでおきたい資料
    Proposal
    の議論方法について
    Proposal
    のプロセス
    Proposal review meetings
    Proposal
    のステージ
    どこを追っていけば良いのか?

    View full-size slide

  4. 本日のテーマ

    View full-size slide

  5. Go
    のProposal
    の追い方

    View full-size slide

  6. Go
    のProposal
    とは?
    Go
    の言語仕様や、標準ライブラリ、コマンドラインツールなどに
    対する提案
    golang/go
    リポジトリ上で GitHub Issue
    の形式で管理されている
    これを追っていけば、将来の Go
    がどうなっていくのかいち早くキ
    ャッチアップ出来る

    View full-size slide

  7. Proposal
    を追うにあたって
    読んでおきたい資料

    View full-size slide

  8. Proposing Changes to Go
    Go
    の Proposal
    の議論方法について書かれた資料
    Proposal
    のステージ遷移についてや、定例 MTG
    についてなどもこ
    こに書かれている
    本日の発表内容も、この記事をベースにしています
    https://go.googlesource.com/proposal/+/master/README.md

    View full-size slide

  9. Proposal
    の議論方法について

    View full-size slide

  10. Proposal
    のプロセス
    ( Proposing Changes to Go
    に記載の内容から抜粋しました)
    1. Proposal
    の著者が Issue
    を作成する (Design doc
    は不要)
    2. Issue tracker
    上で議論を行い、下記の3
    つを結果とする
    承認,
    却下, Design doc
    の要求
    3. (Design doc
    が必要な場合) Proposal
    の著者が Design doc
    を書く
    4.
    議論、Design doc
    の更新を繰り返し、下記の2
    つを結果とする
    承認,
    却下
    承認または却下後に、通常の contribution
    同様に実装が行われる

    View full-size slide

  11. (
    補足) Design doc
    について
    Proposal
    の内容のみでは不足している場合に追加で提出される文

    Proposal
    とは別で管理されている
    golang/proposal
    リポジトリ
    ファイル名に Issue
    番号を付けた Markdown
    の形式で投稿される

    View full-size slide

  12. Proposal review meetings
    Go
    に提出されている Proposal
    について、Go Team
    のメンバーが
    議論するミーティング
    週次で開催されている (
    大体水曜)
    ここで Proposal
    のステージを更新する
    議論の対象になるのは Active, Likely Accept, Likely Decline

    Proposal
    結果は Proposal minutes (https://golang.org/s/proposal-minutes)
    に投稿される

    View full-size slide

  13. Proposal minutes
    の投稿イメージ

    View full-size slide

  14. Proposal
    のステージ
    Incoming
    Active
    Likely Accept
    Likely Decline
    Accepted
    Declined (Duplicate, Infeasible, Retracted)
    Hold
    Issue
    のラベルとして付与される

    Incoming => Active => Likely Accept => Accepted
    のように進む

    View full-size slide

  15. Incoming
    新しい Proposal
    はこのステージに追加される
    次に議論すべき Proposal
    として判断されたら、Review meeting
    で Active
    に移動される

    View full-size slide

  16. Active
    Review meeting
    での議論の中心
    この時点で、実装が試験的に始まったりもする
    例: https://github.com/golang/go/issues/48424
    実装して、使ってみて問題ないかと言うのも議論の材料になる

    View full-size slide

  17. Likely Accept / Likely Decline
    Accept / Decline
    前のステージ
    ここから特に動きが無ければ、時間を置いてAccept / Decline
    され

    View full-size slide

  18. どこを追っていけばいいのか?

    View full-size slide

  19. 基本的な追い方
    1. GitHub Issue
    から探す
    2. GitHub
    の Proposal Project
    を見る (
    これが楽!)
    3. Proposal minutes
    を読む

    View full-size slide

  20. 1. GitHub Issue
    から探す
    golang/go
    リポジトリの Issues
    から、 Proposal
    タグ付きのもの
    を検索する
    最新のものを見たり、検索する分にはいいものの、推移を追うのが
    難しい!

    View full-size slide

  21. 2. GitHub
    の Proposal Project
    を見る
    https://github.com/golang/go/projects/1
    各Proposal
    のステージ毎に列が分かれていて見やすい
    タグ検索も出来るので、よく generics
    で絞り込んでます

    View full-size slide

  22. 3. Proposal minutes
    を読む
    大体毎週水曜に開催されているので、日本時間で木曜夜くらいに見
    に行けば最新のminutes
    が上がっています
    ステージの推移は一番わかりやすいです
    ただ、一覧性や検索性は良くない

    View full-size slide

  23. その他のパターン

    View full-size slide

  24. Design doc
    の変更を追う
    たまに、 Proposal
    より前に Design doc
    が書かれるパターンがあ

    proposal
    リポジトリへの追加 (
    マージ)
    自体は、Issue
    が投稿さ
    れて番号が確定してから
    結局 Proposal
    として投稿はされるが、いち早くキャッチアップし
    たければこれを追うのもあり
    Gerrit
    の Design doc
    の CL
    一覧
    https://go-review.googlesource.com/q/project:proposal

    View full-size slide

  25. GitHub Discussions
    Proposal
    を出す前に重要な議論が上がったりします
    Proposal
    の具体的な内容の議論にも使われます
    重要な話題を見逃したくなければ時々チェックすると良さそうです
    https://github.com/golang/go/discussions

    View full-size slide

  26. 自己流の Proposal
    の追い方の紹介

    View full-size slide

  27. 自己流の Proposal
    の追い方の紹介
    最近行っているのは下記2

    毎週木曜、GitHub Project
    で generics Label
    の Proposal
    の進行
    をチェック
    月に1
    回、1
    ヶ月分の Meeting minutes
    で Active
    になったものをま
    とめてチェック
    自分に合う方法を選んで、ぜひ Proposal
    を読んでみてください!

    View full-size slide

  28. ご清聴ありがとうございました!

    View full-size slide