fix(elixir-ci): run quality checks on the LTS Elixir lane#95
Closed
toshi0806 wants to merge 1 commit into
Closed
Conversation
The Code Quality job ran `mix credo --strict` on the latest Elixir lane (1.20.1), where credo 1.7.x crashes tokenizing regex sigils (~r/.../): `FunctionClauseError in Credo.Code.Token.position/1`. credo's version is pinned by each caller's mix.lock, not this reusable workflow, so the only lever here is the Elixir version the quality checks run on. Point the quality job (format / compile / credo) at the LTS lane, where credo works. Latest-Elixir compatibility is still covered by the test matrix, which compiles and tests on the latest lane. The only thing no longer enforced on the latest lane is `--warnings-as-errors`. Resolves #94 Claude-Session: https://claude.ai/code/session_01Jnvhs3pKABL6vvxj9a5ueb
| # crashes tokenizing regex sigils (~r/.../) on newer Elixir (smkwlab/.github#94), | ||
| # and credo's version is controlled by each caller's mix.lock, not this | ||
| # workflow. Real latest-Elixir compatibility is still covered by the test | ||
| # matrix below (which compiles and tests on the latest lane). |
There was a problem hiding this comment.
✨ [POSITIVE] コメントは問題の背景・理由・トレードオフを簡潔に説明しており、将来のメンテナンス性に貢献しています。良い実践です。
Member
Author
|
検証の結果、この共通 CI 変更は不要と判断し close します。 credo の crash は上流で修正済みでした(1.7.12 → 1.7.19)。Elixir 1.20.1 で 1.7.19 は crash せず正常完走することを CI で実証しました(残る失敗は length/1 警告 7 件のみ)。 したがって正しい対処は「利用リポジトリ側で credo を最新に保つ」ことで、共通 CI を LTS に寄せて全 repo の latest レーン品質チェックを下げる本 PR は過剰です。ecosystem-manager 側の credo bump で対応します(#94 も併せて close)。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
reusable workflow
elixir-ci.ymlの Code Quality ジョブを LTS レーン(Elixir 1.17.3) で実行するように変更します。Resolves #94。背景
Code Quality ジョブは
mix format/mix compile --warnings-as-errors/mix credo --strictを latest レーン(1.20.1) で実行していました。credo 1.7.x が Elixir 1.20 の regex sigil(~r/.../)トークンをパースできず crash します:credo のバージョンは各利用リポジトリの
mix.lock由来で reusable workflow からは固定できないため、workflow 側で打てる手は「quality チェックを走らせる Elixir バージョン」の変更のみです。変更
qualityジョブのsetup-beamをinputs.otp-version-latest/elixir-version-latest→*-ltsに変更(7 insertions, 2 deletions)testマトリクス(両レーン)・dialyzer(latest)は不変trade-off: latest レーンでの
--warnings-as-errorsは失われますが、latest Elixir での実コンパイル・テストはtestマトリクスで引き続き担保されます。新規ジョブを増やさないため、全利用リポジトリの required check 面は変わりません。検証(E2E)
fix ブランチを
smkwlab/ecosystem-manager(sigil crash の初出リポジトリ)の CI から参照してworkflow_dispatch実行:push時のみ実行)以前 crash していた credo が LTS レーンで pass することを実リポジトリで確認済み。検証用の throwaway ブランチは削除済みです。
merge 後の必須手順⚠️
本 workflow は
@v1タグ参照です。merge 後にv1タグをこの修正コミットへ移動しないと、ecosystem-manager 等の@v1利用リポジトリには反映されません(タグ移動は merge 前には行いません)。Claude-Session: https://claude.ai/code/session_01Jnvhs3pKABL6vvxj9a5ueb