Repository navigation
Match webware-ci.json to the canonical CI contract - #2
Merged
Merged
Conversation
The file was missing `integration_php_version`, which the canonical preset artifact ships and which webware-event already carries. Empty keeps the workflow's documented default - the integration suite runs on every php/dependency leg - so no behaviour changes, but the contract is now explicit and shaped like the artifact. Decisions this file records, and the evidence for each: - `enable_infection` stays ON at 95/95. Measured rather than assumed: infection reports 100% mutation code coverage and 100% covered MSI (3 mutants, all killed) on the current src, and the required workflow's mutation job passed on the rename PR. 95 is the ecosystem standard with headroom for the app code still to come. - `run_integration` stays ON: test/integration holds a real wiring test that asserts composer.json's config-provider matches App\ConfigProvider. - `db_*` keys stay ABSENT: no integration test touches a database yet, and the workflow starts and health-checks the DB on every leg it is configured for. They arrive with the first DB-backed suite. - `integration_php_version` stays "" (every leg). The DB start is gated by the same value, so narrowing it is the lever to reach for when the integration suite gets expensive - not before. Signed-off-by: Joey Smith <jsmith@webinertia.net>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
Settles the CI parameter contract for this repository (handoff §7, "decide deliberately whether to disable infection for this repo, or keep a real MSI").
Change
webware-ci.jsonwas missingintegration_php_version, which the canonical preset artifact (webware-tools/presets/webware-alignment/artifacts/webware-ci.json) ships and whichwebware-eventalready carries. That is the only diff — one key, in the canonical position.""keeps the workflow's documented default (integration on every php/dependency leg), so no CI behaviour changes; the contract is now explicit and shaped like the artifact instead of silently relying onjq's fallback.The decisions this file records, with evidence
enable_infectionmin_msi/min_covered_msi= 95infectionreports 100% mutation code coverage and 100% covered MSI (3 mutants, all killed) on the currentsrc. The required workflow's Mutation testing job also passed on the rename PR. 95 is the ecosystem standard, with headroom for app code still to come.run_integrationtest/integrationholds a real wiring test (composer'sconfig-providermust matchApp\ConfigProvider).db_*mysqlservice incompose.yml.integration_php_version""(every leg)php_versions,coverage_php_versioncomposer.json's~8.4.1 || ~8.5.0.I verified all 16 keys the workflow reads (including every defaulted one) resolve to the intended values by running the workflow's own
jqexpressions against the file locally.Note: the rename PR already shows this is not "the likely first red run"
The handoff predicted
enable_infection: truewithmin_msi: 95would be the first red run. It is not — PR #1 is green on all 11 required checks, mutation job included, on the template's library values.Drift found while checking (not touched here)
Two other files diverge from the canonical artifacts, both cosmetic and unrelated to CI:
compose.ymlline 30 comments the key asdb-imagewhere the artifact saysdb_image— the correct key name is the one the workflow reads.renovate.jsonis missing a trailing newline, so it is not byte-identical to the artifact.Also worth knowing outside this repo:
repo-template's copy ofwebware-ci.jsonis stale in the same way — it lacksintegration_php_versionwhile its committed lock pins the samewebware-tools1.0.0-beta.3 that ships the key. Every repo derived from it inherits the gap.