ecspressoへの貢献を振り返る / JAWS-UG コンテナ支部 #24 ecspresso MeetUp
by
cohalz
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ecspressoへの貢献を 振り返る @cohalz JAWS-UG コンテナ支部 #24 ecspresso MeetUp 1
Slide 2
Slide 2 text
自己紹介 ● こはる(@cohalz) ● 株式会社はてな SRE ○ はてなブックマーク ○ はてなブログ 2
Slide 3
Slide 3 text
はてなにおけるecspressoの利用 ● 2021年3月頃から本格利用開始 ○ 社内向けサービスなどではそれ以前から一部利用 ● 現在はてなブログ・はてなブックマーク ・Mackerelで全面的に採用 3
Slide 4
Slide 4 text
今日話すこと ● ecspresso関連の貢献の紹介 ○ v1.5からv2までの新機能 ○ v2で追加したバージョンファイル機能について ● OSS貢献のススメ ○ 様々な貢献の仕方があるよ 4
Slide 5
Slide 5 text
5 貢献の紹介
Slide 6
Slide 6 text
貢献の歴史 ● 2021/3から本体へのPRは9件 ○ v1.5.0から ● その他に本体以外の貢献もあり 6
Slide 7
Slide 7 text
コントリビュート数はbotを除けば1番目 7
Slide 8
Slide 8 text
verifyコマンドでのIAM権限の修正(#262) ● タスク実行ロールに不要な権限が必要だった ○ v1.5.0(2021/4/10)から実行権限でも可に ○ v2で完全に実行権限のみに移行 8
Slide 9
Slide 9 text
ecspresso initでタグが含まれるように (#270) ● initでtagとpropagateTagsが含まれるように ○ 社内ではタグをつける運用だった ○ v1.5.0(2021/4/10)から 9
Slide 10
Slide 10 text
desiredCountがdiffに出るように (#274, #276) ● 設定でdesiredCountを書いた際にdiffが出るように ○ 台数もコード管理したい場合に便利 ○ v1.5.1(2021/4/20)から 10
Slide 11
Slide 11 text
CodeDeployでrollbackが可能に (#261, #275, #284) ● CodeDeployでもロールバックできるように ○ デプロイ中でもそうでなくてもロールバック可能に ○ v1.5.2(2021/5/5)から 11
Slide 12
Slide 12 text
tfstateの値参照がTerraform Cloudに対応 (fujiwara/tfstate-lookup #30) ● 以前はS3やGCSのみ ○ 社内でTerraform Cloud導入が進んだきっかけ ○ v1.6.0(2021/8/7)から 12
Slide 13
Slide 13 text
diffでunified形式が使えるように (#365, #367) ● git diffのようなdiffが出せるように ○ 以前は全行出ていた ○ v1.7.5(2021/12/25)から ○ v2でデフォルトに 13
Slide 14
Slide 14 text
v2の準備が始まった際にいくつか機能要望(#374) 14
Slide 15
Slide 15 text
15 v2で追加した バージョンファイルの紹介
Slide 16
Slide 16 text
ecspressoのバージョン管理問題 ● GitHub Actionsでlatestを指定していた ○ API limitや不具合バージョンのリスクあり ● 手元で使いたい時のバージョン管理 ○ 開発者が増えるならバージョン統一したい 16
Slide 17
Slide 17 text
これを解決するために ● .ecspresso-versionというファイルを導入 ○ Actions/Orbで使える ○ asdfでも利用できる ● どういう順番で実装・どう利用しているか 17
Slide 18
Slide 18 text
GitHub Actionsで利用できるように (#490) ● Actionsにversion-fileオプションを追加 ○ shogo82148/actions-setup-perlの変更きっかけ (#1367) ● その後fujiwaraさんがOrb対応(#492) 18
Slide 19
Slide 19 text
asdf-ecspressoで読めるように (kayac/asdf-ecspresso #1) ● legacy_version_file機能を使い実装 ○ bin/list-legacy-filenamesファイルに追加するだけ ● asdfで読める形式でActionsの方を追加 ○ vプレフィックスの有無など気をつけポイント 19
Slide 20
Slide 20 text
asdf install ecspresso (asdf-vm/asdf-plugins #790) ● asdf install ecspressoできるように ● 製作者にasdf-pluginsに登録してもらった ○ @kolukuさん ○ YAPC::Kyoto 2023の懇親会きっかけで進んだ 20
Slide 21
Slide 21 text
Tips: required_versionと組み合わせる ● required_versionでこのファイルを使う ○ jsonnet推奨 ○ required_version: '= v' + importstr '.ecspresso-version' ○ ecspresso handbook v2のChapter 15でも紹介され ている手法 21
Slide 22
Slide 22 text
Tips: Renovateで更新するには ● Regex Managerを使って更新を拾える ○ 参考: https://scrapbox.io/aereal-tech/Renovateで ecspressoのバージョンを上げる 22
Slide 23
Slide 23 text
Renovateの設定を公開 (hatena/renovate-config #70) ● このRenovate設定をOSSとして公開 ○ 参考: はてなで使用しているRenovateの設定プリセッ トを公開しました ● renovate.jsonに1行追加するだけで使えます ○ "extends": ["github>hatena/renovate-config:ecspressoVersion.json5"] 23
Slide 24
Slide 24 text
24 OSS貢献のススメ
Slide 25
Slide 25 text
これだけ貢献したきっかけ ● CI/CDの改善がOSS活動になっていた ○ 機能が足りてないから改善する ● 楽しんで追加する ○ もはや趣味コードの一つ ○ 「このライブラリと組み合わせたら面白そう」 25
Slide 26
Slide 26 text
PRだけでなくIssueでも ● Issueに機能要望を書くだけでも ○ デプロイ方法は千差万別 ○ どう使われてるかのきっかけになる ● 非互換変更な要望もv2で対応してもらった 26
Slide 27
Slide 27 text
それ以外の貢献方法 ● 使うだけでも貢献...だけど ○ SNSなど本人に見える場所で貢献するとなおよし ○ 良いIssue/PRがあったらリアクションするなども ● OSS開発してる人が何されたら嬉しいか ○ Songmuさんの「OSS活動を細く長く続ける技術」 27
Slide 28
Slide 28 text
28 寄付という手もあります
Slide 29
Slide 29 text
おわり ● 追加した機能の歴史を紹介しました ● OSS貢献でこれからも長く利用していきましょう 29