オープンソースの力で #安野たかひろ が YAML に Python を書きまくらない都知事候補になれた話
こんにちは、安野チーム技術班の志水です。
表題の通り、オープンソース(とXのバズ)のおかげで公開しているマニフェストの技術部分をアップデートできたお話を共有します。
CI上のレビュー機能
今回の都知事選において安野チームではGitHub上でマニフェストを公開し、広くIssueやPRを募っています。その議論をスムーズに行うため、似たようなIssueをまとめたり不適切な画像や投稿をcloseするためのCI(GitHub Actionsのworkflow)が設定されていました。
Xのバズ
このworkflowに言及したポストがバズりました。
このポストがかなり反響があることはチームでも認識していました。
技術的批判が多い一方で、都知事選候補者がコードの内容を指摘されるという事態にX上でも面白がる反応が多かったように感じました。
何が問題だったか
YAML (ヤムル) は色々な言い方がありますが、基本的には設定を記述する言語です。わかりやすく簡潔であることが好まれ、例えば以下のように記述します。
name:
first_name: takahiro
last_name: anno
age: 33
一方で Python (パイソン) は基本的にはプログラミング言語であり、何らかの操作を受けてデータを変換したり、外部のサービスを呼び出したりするものです。
# an example of what Python code would do
def go_vote(my_ideas):
best_candidate = find_candidate_close_to_me(my_ideas)
my_vote = write_candidate(best_candidate)
return my_vote
この設定と操作という2つの関心事が、1つのファイルの中で混ざっていることがプロダクションコードとしては問題だったのかなと思います。
プルリクとレビュー
話題になったことを好意的に受け取る一方で、技術的には対処すべき課題だという認識もチームに生まれました。このポストの直前に @Sunwood-ai-labs から YAML 内のベタ書きを修正するPRがきており、これをベースに修正していくことになりました。
このタイミングで私はcontributorに任命され、PRをレビューし、議論を見守って行きました。
チーム内でもこのPRにはかなり期待を寄せていました。
この後コメント数が30個にものぼる白熱した議論と多数のコミットをいただき、無事マージすることができました!
マージに対する反響
マージされたことを受けて、このIssueが解決されたことを安野から報告いたしました。このポストもまた大きな反響をいただけました!
まとめ
今回はオープンソースの力でマニフェストの技術部分をアップデートできた話について書きました。
今回のPRのメインコントリビューターの Maki (@Sunwood-ai-labs)さんのコメントの1つに、今回の PR の議論の中で Python の慣習やツールについても詳しくなれた、とお話ししており、コントリビュートすることで自分自身の成長に繋がることもまたオープンソースの素敵な部分だと感じました。
私自身も普段は開発者として GitHub を使っているものの、オープンソースのプロジェクトとしてきちんと関わるのは今回が初めてで、勉強になることが多々ありました。
このPRの後も、たくさんのIssueやPRをいただいております。残りわずかとなった選挙期間ですが、ぜひ今後も皆様からのPRやIssueを元にマニフェストを改善し、より良いものを作っていけたらと思います!こちらのレポジトリやGitHub、ホームページもぜひご覧ください!
政策レポジトリ:https://manifest.takahiroanno.com/
GitHub:https://github.com/takahiroanno2024/election2024
ホームページ:https://takahiroanno.com/
※GitHubを使ったことがない方も、ログイン等不要で中身はご覧いただけます。ぜひ興味を持ってくださったら、イシューやプルリクエストの上げ方マニュアルもレポジトリに含めているので、ご意見届けていただけたら嬉しいです。匿名フォームや #TOKYOAI のつぶやきでも歓迎です!