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