feat(tasks): classify fast and CI-only quality checks (EXT-37) - #242
Closed
ruby-automation wants to merge 2 commits into
Closed
feat(tasks): classify fast and CI-only quality checks (EXT-37)#242ruby-automation wants to merge 2 commits into
ruby-automation wants to merge 2 commits into
Conversation
Split mix precommit and mix ci into distinct, purposeful quality gates per documents/quality-gates-decision.adoc and documents/phase-15-plan.adoc: - mix precommit is now the fast local gate (format + unit tests only, no network, no external services after a one-time deps.get). Removes deps.get, hex.audit, deps.audit, usage_rules.sync, and the PR-title and commit-range validators — all CI-only work. - mix ci is now an independent orchestrator: deps.get bootstrap, fast metadata guards (PR title + commit range), the full precommit sequence, then CI-only audits (hex.audit, deps.audit, usage_rules.sync) and CI-classified integration tests (mix test --only ci_only). - app/test/test_helper.exs excludes :ci_only tagged tests by default so mix precommit's mix test step runs only fast unit tests. No existing tests are CI-only yet; this establishes the classification mechanism. - .github/workflows/ci.yaml now calls mix ci instead of mix precommit so the full integration gate (audits, metadata validation) still runs in CI. - Enforcement tests added: precommit_test asserts CI-only commands are absent; ci_test asserts the strict-superset relationship. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
mix precommitis now the fast local gate: root format, root tests, app format, app Credo, app unit tests. No network, no credentials, no external services required after a one-timemix deps.get. CI-only commands (deps.get, hex.audit, deps.audit, usage_rules.sync, PR/commit validation) are removed.mix ciis now an independent orchestrator (not an alias): bootstrap deps → PR-title and commit-range validation →mix precommit→ hex/dep audits → usage-rule drift → CI-classified integration tests.ExUnit.start(exclude: [:ci_only])inapp/test/test_helper.exsestablishes the classification mechanism. No existing tests are tagged:ci_onlyyet; future CI-only tests use@moduletag :ci_only.precommit_testadds a negative-assertion test verifying no CI-only commands are present;ci_testverifies the strict-superset relationship (mix precommit ⊂ mix ci).mix ciinstead ofmix precommitin the Test job.documents/quality-gates-decision.adoc"Current Implementation" section updated to reflect the completed split.Relation to prior work
Implements phase-15-plan.adoc step 1 (classify) and steps 2-4 (implement + rewire). Supersedes Phase 14 decision 7. Related to EXT-38 (PR #237) which also implements this split — the team should coordinate merge order.
Test plan
Excluding tags: [:ci_only]confirmed in outputmix format --check-formattedclean (root and app)mix credo --strictclean (612 mods/funs, no issues)mix precommitruns correctly per new contractmix cisequencing verified via test assertions🤖 Generated with Claude Code