You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: align command contracts and close real-host and lane coverage gaps #811
Verified on main: make docs is weaker than the CI docs gate (no --strict), every target re-runs pip install --upgrade pip and pip install hatch, make check type-checks twice, and make doctor cannot fail for a missing Hatch environment or func. The real-host and lane-coverage gaps are tracked as separate bug issues (host-smoke routes, browser lane, optional-dependency skips).
Acceptance Checklist
One documented command per purpose: make install (no per-run pip/Hatch upgrade), make install-ci PYTHON=<interpreter> (installs into exactly that interpreter), make doctor (read-only; non-zero when Python >= 3.11 or Hatch is missing; reports func/azurite), make format / make format-check, make check (lint, format, mypy once, Bandit scope, workflow lints), make test (offline, 95% floor, no e2e/perf/browser/host), make integration (real Functions host + Azurite on free ports; non-zero without prerequisites; no leftover processes), make verify (check + test + integration + strict docs + wheel smoke), make e2e-azure (never silently skips), make clean (generated artifacts only). make check-all keeps its offline meaning or is documented as an alias.
make docs equals the CI docs gate (mkdocs build --strict).
Failed CI runs retain JUnit and coverage XML; coverage is summarized in the Job Summary; no secret-bearing file is uploaded.
Matrix cells run on their own interpreter and enforce coverage >= 95% on 3.11 x latest.
No existing gate is removed, renamed, made advisory or weakened (required contexts, release chain, wheel, minimum-dependency, 2.x, host-smoke, docs and perf lanes).
Out of scope
A custom evidence/summary schema, generic secret redaction, new orchestration modules under tools/, Azure infrastructure changes, a report command.
References
Real-host routes, browser lane and optional-dependency skips have their own issues.
changed the title [-]chore(dx): standardize OpenAPI development, testing, and verification evidence[/-][+]ci: standardize OpenAPI development, testing, and verification evidence[/+]on Oct 22, 2026
changed the title [-]ci: standardize OpenAPI development, testing, and verification evidence[/-][+]ci: align command contracts and close real-host and lane coverage gaps[/+]on Oct 24, 2026
Rewrote the body to outcome-focused criteria. The original prescribed a summary.json schema with PASS/FAIL/INCOMPLETE/NOT_APPLICABLE, an evidence tree, report, and thin-Makefile-plus-tested-scripts orchestration. Auditing main found the real defects (listed in Context) and three separate bugs, now tracked in their own issues; JUnit/coverage artifacts and coverage report --format=markdown cover the reporting need. Previous text is in the edit history. PR #813 (about 1,700 added lines) will be replaced by small PRs.
Closed with one acceptance item not met on main (verified at 65ad8c4): the checklist says make check covers "lint, format, mypy once, Bandit scope, workflow lints", but check is still just lint; Bandit and the workflow lints run only in make check-all. tests/test_make_contract.py (from #831) pins check to run no tests and check-all to run each gate once, so moving them into check means changing that contract.
Everything else on the list is on main: integration, wheel-smoke and verify (#844), failed-run JUnit/coverage retention and the coverage Job Summary (#843), and the earlier install/install-ci/doctor/strict docs work (#831). If keeping Bandit and workflow lints in check-all is intended, the checklist item could be reworded instead. Reopening or a follow-up issue is the maintainer's call.
The remaining static-check contract is now addressed by merged PR #851: make check includes lint (format and mypy once), the existing expanded Bandit scope, and all workflow lints. make check-all retains every offline gate exactly once. Contributor/development docs and contract tests were updated deliberately. Local make check-all: 1651 passed, 30 skipped, 22 deselected, 5 warnings in 27.25s; coverage 95.25%; strict docs and build passed. All five required contexts passed on PR head 24e3c25. This follow-up does not claim a new certification of every historical checklist item.
Activity
[-]chore(dx): standardize OpenAPI development, testing, and verification evidence[/-][+]ci: standardize OpenAPI development, testing, and verification evidence[/+][-]ci: standardize OpenAPI development, testing, and verification evidence[/-][+]ci: align command contracts and close real-host and lane coverage gaps[/+]yeongseon commentedon Oct 24, 2026
Rewrote the body to outcome-focused criteria. The original prescribed a
summary.jsonschema with PASS/FAIL/INCOMPLETE/NOT_APPLICABLE, an evidence tree,report, and thin-Makefile-plus-tested-scripts orchestration. Auditingmainfound the real defects (listed in Context) and three separate bugs, now tracked in their own issues; JUnit/coverage artifacts andcoverage report --format=markdowncover the reporting need. Previous text is in the edit history. PR #813 (about 1,700 added lines) will be replaced by small PRs.build(make): build docs with --strict and the project's docs extra
build(make): make doctor a read-only prerequisite check that can fail
docs(development): document install-ci, doctor, strict docs and the s…
test(make): compact the Makefile contract tests
build(make): align make docs with CI, stop re-bootstrapping, run mypy…
yeongseon commentedon Oct 26, 2026
Closed with one acceptance item not met on
main(verified at 65ad8c4): the checklist saysmake checkcovers "lint, format, mypy once, Bandit scope, workflow lints", butcheckis still justlint; Bandit and the workflow lints run only inmake check-all.tests/test_make_contract.py(from #831) pinscheckto run no tests andcheck-allto run each gate once, so moving them intocheckmeans changing that contract.Everything else on the list is on
main:integration,wheel-smokeandverify(#844), failed-run JUnit/coverage retention and the coverage Job Summary (#843), and the earlierinstall/install-ci/doctor/strictdocswork (#831). If keeping Bandit and workflow lints incheck-allis intended, the checklist item could be reworded instead. Reopening or a follow-up issue is the maintainer's call.yeongseon commentedon Oct 26, 2026
The remaining static-check contract is now addressed by merged PR #851: make check includes lint (format and mypy once), the existing expanded Bandit scope, and all workflow lints. make check-all retains every offline gate exactly once. Contributor/development docs and contract tests were updated deliberately. Local make check-all: 1651 passed, 30 skipped, 22 deselected, 5 warnings in 27.25s; coverage 95.25%; strict docs and build passed. All five required contexts passed on PR head 24e3c25. This follow-up does not claim a new certification of every historical checklist item.