Skip to content

ci: align command contracts and close real-host and lane coverage gaps #811

Closed

Description

@yeongseon

Context

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.

Activity

  1. changed the title [-]chore(dx): standardize OpenAPI development, testing, and verification evidence[/-] [+]ci: standardize OpenAPI development, testing, and verification evidence[/+] on Oct 22, 2026
  2. 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
  3. yeongseon commented on Oct 24, 2026

    @yeongseon
    OwnerAuthor

    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.

  4. added
    priority:mediumNormal planned work; meaningful impact but limited scope or a workaround exists.
    ciCI / automation
    and removed
    needs-triageNot yet reviewed for validity, scope, type, and priority.
    priority:mediumNormal planned work; meaningful impact but limited scope or a workaround exists.
    on Oct 24, 2026
  5. yeongseon commented on Oct 26, 2026

    @yeongseon
    OwnerAuthor

    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.

  6. yeongseon commented on Oct 26, 2026

    @yeongseon
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions