QVAC-23575 chore[bc]: move SDK e2e onto the in-repo @qvac/test-suite - #4083
Draft
Victor-Rodzko wants to merge 1 commit into
Draft
QVAC-23575 chore[bc]: move SDK e2e onto the in-repo @qvac/test-suite#4083Victor-Rodzko wants to merge 1 commit into
Victor-Rodzko wants to merge 1 commit into
Conversation
Contributor
License compliance — findings detected (warn-only)Critical: 0 · High: 1 · Medium: 0
How to resolve a blocking finding:
Warn-only (shadow) mode — this check does not block merges yet. Updated automatically by the canonical license compliance workflow. NOTICE presence (advisory)Missing NOTICE (advisory, does not block):
|
Contributor
Workflow security (shadow mode)zizmor found 1074 finding(s) in Findings are annotated inline on the changed files and listed in the job summary. Reproduce locally: pipx run zizmor==1.27.0 --offline .github/ |
Victor-Rodzko
commented
Aug 26, 2026
| "dependencies": { | ||
| "@qvac/sdk": "file:..", | ||
| "@qvac/qvac-test-suite": "^0.10.3", | ||
| "@qvac/test-suite": "file:../../test-suite", |
Contributor
Author
There was a problem hiding this comment.
Only for e2e test run via CI - should be changed after publishing the framework version (0.11.0)
Victor-Rodzko
force-pushed
the
feature-test-suite-fold
branch
from
August 26, 2026 12:05
680aecf to
89bb470
Compare
Victor-Rodzko
force-pushed
the
QVAC-23575-sdk-e2e-on-test-suite
branch
from
August 26, 2026 12:06
3c04a7b to
d3c4860
Compare
Victor-Rodzko
had a problem deploying
to
release
August 26, 2026 12:32 — with
GitHub Actions
Failure
Victor-Rodzko
had a problem deploying
to
release
August 26, 2026 12:32 — with
GitHub Actions
Failure
Victor-Rodzko
had a problem deploying
to
release
August 26, 2026 12:32 — with
GitHub Actions
Failure
Victor-Rodzko
marked this pull request as draft
August 26, 2026 12:42
Victor-Rodzko
force-pushed
the
QVAC-23575-sdk-e2e-on-test-suite
branch
from
August 26, 2026 14:45
d3c4860 to
d1d32ba
Compare
Switches packages/sdk/e2e from the published @qvac/qvac-test-suite to the in-repo @qvac/test-suite package, and renames the import specifier across the e2e suite. Adds a test-suite-source input (manifest | branch | npm) plus test-suite-version to test-sdk.yml, mirroring the existing inference-source selector. A new prepare-test-suite job resolves the framework once per run and .github/actions/sdk-e2e-prepare-test-suite applies it before each consumer install, so an SDK change can be tested against an unreleased framework change without publishing. PRs touching packages/test-suite run their e2e suite in branch mode. `packages/test-suite` and the new action are added to all five sparse-checkout blocks across test-node-sdk.yml, test-android-sdk.yml and test-ios-sdk.yml. The report actions gain a test-suite-provenance input so run summaries state which framework build was used. The dependency is a file: link for now, because @qvac/test-suite is not on npm under the new name yet. It is swapped for a published range before this merges, once 0.11.0 ships; the manifest-link handling in the prepare action exists only to support that interim state and to keep coload-smoke-mobile.yml — which calls test-android-sdk.yml directly without the new inputs — working. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Victor-Rodzko
force-pushed
the
QVAC-23575-sdk-e2e-on-test-suite
branch
from
August 26, 2026 14:46
d1d32ba to
ae4b04f
Compare
This was referenced Aug 26, 2026
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.
🎯 What problem does this solve?
Part 2 of 2 for QVAC-23575. #4082 added
@qvac/test-suiteto the monorepo but left it unconsumed. This PR migratespackages/sdk/e2eonto it and adds the CI switch that lets an SDK change be tested against an unreleased framework change without publishing.📝 How is it solved?
Consumer migration.
packages/sdk/e2eswitches from the published@qvac/qvac-test-suiteto the in-repo package, and the import specifier is renamed across the e2e suite — 114 files, a single mechanical token change per file.New
test-suite-sourceselector ontest-sdk.yml(manifest|branch|npm) plustest-suite-version, mirroring the existinginference-source. Aprepare-test-suitejob resolves the framework once per run;.github/actions/sdk-e2e-prepare-test-suiteapplies it before each consumer install.packages/test-suiteand the new action are added to all five sparse-checkout blocks across the three platform workflows. PRs touchingpackages/test-suiterun their e2e suite inbranchmode automatically.Report provenance.
sdk-e2e-report-start/-finalizegain atest-suite-provenanceinput, so run summaries state which framework build was used alongside the inference build.🧪 How was this verified?
packages/sdk/e2etypecheck+buildclean — this is what proves the 114-file rename is complete; a single missed import fails the compile.manifestwith a registry spec (no-op),manifestwith a local link (builds and packs, reportsbranch),branch(packs and rewrites to the tarball, leaves@qvac/sdkuntouched),npm(fails closed with a clear 404 — the new name is not published yet).file://+--install-linksinto a clean consumer,qvac-test --versionworks from it — the crux ofbranchmode.actionlintstructural gate clean; 97/97 CI policy tests pass.Not verified locally: a full e2e run (needs model downloads) and the Electron/Snap/mobile consumer builds. Those are covered by a follow-up task that runs each family via
workflow_dispatch.💥 Breaking Changes
No new breaking change beyond the rename already declared in #4082 — this PR is what actually moves a consumer onto the new name, so the consumer-visible shape of that rename is shown here.
Import specifier:
BEFORE:
AFTER:
Dependency (end state, once 0.11.0 is published — see Migration Notes):
BEFORE:
{ "dependencies": { "@qvac/qvac-test-suite": "^0.10.3" } }AFTER:
{ "dependencies": { "@qvac/test-suite": "^0.11.0" } }Metro resolution for React Native consumers changes with it:
BEFORE:
AFTER:
The old package stays installable and will be deprecated, not unpublished, so anything pinned to a released
0.10.xkeeps resolving. The framework also still recognises all four names at runtime, so a mixed setup during migration resolves correctly.📦 Package Surface Changes
Two composite actions gain an optional
test-suite-provenanceinput (sdk-e2e-report-start,sdk-e2e-report-finalize)..github/actions/sdk-e2e-prepare-test-suite/is new — a deliberate sibling ofsdk-e2e-prepare-inferencerather than a refactor of it, because the inference path is release-critical and gets no edits here.🚀 Workflow / Publish Changes
test-sdk.yml,test-node-sdk.yml,test-android-sdk.yml,test-ios-sdk.yml,on-pr-test-sdk.yml.coload-smoke-mobile.ymlcallstest-android-sdk.ymldirectly and does not pass the new inputs. That path lands onmanifestwith a local link, so the apply action builds the linked package in place instead of expecting an artifact — verified by simulating that caller.🔄 Migration Notes
The dependency is
file:../../test-suitefor now, because@qvac/test-suiteis not on npm under the new name yet. Sequence:release-test-suite-0.11.0cut and published"@qvac/test-suite": "^0.11.0"and the interimmanifest-link handling (isLocalFileSpec/buildInPlace) is removed from the prepare action, leavingmanifest= published release andbranch= in-repo build, exactly like@qvac/inference📚 Docs Changes
packages/sdk/TESTING.md,packages/sdk/e2e/README.md,packages/bare-sdk/test/bare/README.md,.cursor/skills/qv-sdk-e2e-create/SKILL.md, and the CI section of.cursor/rules/sdk/test-suite/main.mdc(which #4082 deliberately leaves describing only the publish pipeline).