Skip to content

test: add Provin consumer compatibility to auth CI - #26

Merged
y1o1 merged 2 commits into
developfrom
test-provin-consumer-compatibility
Sep 6, 2026
Merged

test: add Provin consumer compatibility to auth CI#26
y1o1 merged 2 commits into
developfrom
test-provin-consumer-compatibility

Conversation

@y1o1

@y1o1 y1o1 commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

The generic Bearer E2E suite did not exercise Provin's DID grant, custom collectors or generated composition roots. Add a separate CI job that packs the pinned Provider/Verifier builds and tests the actual pinned Provin source against those artifacts.

make test-provin covers consumer build/typecheck/tests, real DID issuance and policy allow/deny, generated app configuration/build/startup, and tampered DID-signature rejection. Direct and transitive upstream dependencies are replaced in a disposable checkout; no release or publish is performed. This requires the Provin compatibility fixes in provin-line/auth#20.

Validation: local candidate-package tests and generated Provider/Verifier smoke pass; issuer/audience rejection and non-Owner subject denial pass. The existing 39-test Bearer E2E remains a separate required job. Consumer deployment pins/configuration still require deliberate application adoption, documented in the test README.

Copilot AI lite review requested due to automatic review settings September 6, 2026 01:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new test-provin Makefile target installs auth.utils without --frozen-lockfile, which is inconsistent with the repo’s other pinned dependency installs and reduces CI determinism.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a dedicated Provin consumer compatibility check to the auth CI so the pinned downstream provin-line/auth source is exercised against the same pinned candidate Provider/Verifier (and utils) revisions used by the existing Bearer E2E workflow, without publishing any artifacts.

Changes:

  • Introduces make test-provin to clone pinned repos, build candidate packages, and run the Provin compatibility script.
  • Adds tests/provin/run.mjs plus documentation to pack candidate artifacts, override downstream dependencies, and run build/typecheck/tests + generated-instance smoke checks.
  • Extends the GitHub Actions E2E workflow with a separate provin-compatibility job.
File summaries
File Description
tests/provin/run.mjs Packs candidate packages into tarballs, rewrites Provin’s pnpm.overrides, runs workspace checks, generates composition roots, and smokes instances.
tests/provin/README.md Documents what make test-provin covers and the disposable nature of the checkout.
Makefile Adds pinned UTILS_REV/PROVIN_REV plus setup-provin/test-provin targets to run the new suite.
docs/internal-adoption.md Links internal adoption docs to the new Provin compatibility check.
.github/workflows/e2e.yml Adds a new CI job to run make test-provin alongside the existing E2E job.
Review details
  • Files reviewed: 5/5 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread Makefile Outdated
@y1o1
y1o1 merged commit cbb22fd into develop Sep 6, 2026
2 checks passed
@y1o1
y1o1 deleted the test-provin-consumer-compatibility branch September 6, 2026 01:34
y1o1 added a commit that referenced this pull request Sep 14, 2026
…cks are its own

#26 added a CI job that packs the pinned provider and verifier builds and runs
provin-line/auth's source, DID grant, collectors and generated composition
roots against them, pinned here as PROVIN_REV. That puts one named consumer
inside the auth family's release gate: every documented BREAKING change turns
the release-cut pin PR red until that consumer catches up, as the v0.10.0
verifier cut did (Provin's tests held evaluate() unawaited).

The auth family is independent of any consumer. What it owes one is generic
extension points — custom grants, collectors, module wiring — and those are
tested in the component repos and by this repository's E2E without naming a
consumer. Checking that a particular consumer builds against a new auth
release, and adapting it, belongs to that consumer's repository.

Removes the provin-compatibility job, PROVIN_REV and the setup-provin /
test-provin targets, tests/provin, and the paragraph in
docs/internal-adoption.md that pointed at it. test-e2e is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants