何を見つけたか
devbase に新しい機能を足したとき、それを使う Plugin が上げるべき requires.devbase の下限を、契機の表へ足す手順が決まっていない。
契機と上げる版数の対応は、docs/plugin-dev/plugin-yml-reference.md の「更新時の警告」(172〜180 行目)に表として既にある(PR #213 で追記)。
| 契機 |
上げる版数(いまの表の記述) |
Plugin が project.yml 形式へ移行した |
その形式を読める版 |
Plugin のプロジェクトが compose.yml に profiles: を使う |
">=3.5.0"(compose-profiles.md へのリンク) |
残っているのは次の 3 点である。
project.yml の行が「その形式を読める版」とだけ書き、版数を書いていない。同じ文書の 141 行目は「devbase 3.0.0 以降のPluginは ">=3.0.0" を指定してください」と書いており、表だけ読むと版数が分からない
- 表へ行を足す手順がどこにも無い。
.github/pull_request_template.md の「動作確認」にも該当する項目が無い
- 表にあるのは 2 行だけで、3.6.0 以降に入った機能のうち Plugin が依存しうるものは洗っていない
volareinc/devbase-ext#31(PR #33)で carmo-system-console に profile を導入したときは、設計の段階でこの手順が出ず、配布の直前に気づいて requires.devbase を上げた。
直し方(#195 本文の「採る手」)
統合(consolidate_duplication)。plugin-yml-reference.md の契機の表を正本にする。
project.yml の行の「上げる版数」を ">=3.0.0" と明記し、141 行目と揃える
.github/pull_request_template.md の「動作確認」に「Plugin から使える機能を足したら、docs/plugin-dev/plugin-yml-reference.md の requires 契機表へ 1 行足した」を加える
CHANGELOG.md の [3.6.0] 以降から Plugin が依存しうる機能を洗い、表を埋める
どこで見つけたか
#195 の本文「修正レイヤー」のさかのぼり。PR #213 は現象レイヤー(docs/plugin-dev/compose-profiles.md と plugin-yml-reference.md の 2 ファイルへの追記と相互リンク)を直し、契機の表はそのときに入った。
なぜこの変更の範囲外なのか
#195 の本文が「この issue の範囲は文書 2 ファイルの追記で、運用の導入はそれを超える」と明示している。PR #213 の受け入れ条件は 2 ファイルの記述が食い違わないことまでで、Pull Request のテンプレートへの手順の追加と、既存の機能の洗い出しは含まない。
直さないと何が起きるか
devbase の次の新機能が Plugin から使われたとき、同じことが起きる。requires.devbase を上げ忘れた Plugin は、古い devbase を使う利用者の環境でインストールも更新も通るのに機能だけが黙って効かない(profiles: なら、テスト用サーバ群が起動せず起動する手段も無い)。check_devbase_requirement / warn_unmet_devbase_requirement の仕組みは既にあるため、防げるはずの事故が防げない。影響の範囲は Plugin の配布先すべて。
由来
PR #213(#208 / #195 の現象レイヤーの修正)
何を見つけたか
devbase に新しい機能を足したとき、それを使う Plugin が上げるべき
requires.devbaseの下限を、契機の表へ足す手順が決まっていない。契機と上げる版数の対応は、
docs/plugin-dev/plugin-yml-reference.mdの「更新時の警告」(172〜180 行目)に表として既にある(PR #213 で追記)。project.yml形式へ移行したcompose.ymlにprofiles:を使う">=3.5.0"(compose-profiles.mdへのリンク)残っているのは次の 3 点である。
project.ymlの行が「その形式を読める版」とだけ書き、版数を書いていない。同じ文書の 141 行目は「devbase 3.0.0 以降のPluginは">=3.0.0"を指定してください」と書いており、表だけ読むと版数が分からない.github/pull_request_template.mdの「動作確認」にも該当する項目が無いvolareinc/devbase-ext#31(PR #33)で carmo-system-console に profile を導入したときは、設計の段階でこの手順が出ず、配布の直前に気づいて
requires.devbaseを上げた。直し方(#195 本文の「採る手」)
統合(
consolidate_duplication)。plugin-yml-reference.mdの契機の表を正本にする。project.ymlの行の「上げる版数」を">=3.0.0"と明記し、141 行目と揃える.github/pull_request_template.mdの「動作確認」に「Plugin から使える機能を足したら、docs/plugin-dev/plugin-yml-reference.mdのrequires契機表へ 1 行足した」を加えるCHANGELOG.mdの[3.6.0]以降から Plugin が依存しうる機能を洗い、表を埋めるどこで見つけたか
#195 の本文「修正レイヤー」のさかのぼり。PR #213 は現象レイヤー(
docs/plugin-dev/compose-profiles.mdとplugin-yml-reference.mdの 2 ファイルへの追記と相互リンク)を直し、契機の表はそのときに入った。なぜこの変更の範囲外なのか
#195 の本文が「この issue の範囲は文書 2 ファイルの追記で、運用の導入はそれを超える」と明示している。PR #213 の受け入れ条件は 2 ファイルの記述が食い違わないことまでで、Pull Request のテンプレートへの手順の追加と、既存の機能の洗い出しは含まない。
直さないと何が起きるか
devbase の次の新機能が Plugin から使われたとき、同じことが起きる。
requires.devbaseを上げ忘れた Plugin は、古い devbase を使う利用者の環境でインストールも更新も通るのに機能だけが黙って効かない(profiles:なら、テスト用サーバ群が起動せず起動する手段も無い)。check_devbase_requirement/warn_unmet_devbase_requirementの仕組みは既にあるため、防げるはずの事故が防げない。影響の範囲は Plugin の配布先すべて。由来
PR #213(#208 / #195 の現象レイヤーの修正)