Skip to content

ci(e2e): 823 — smoke-test the packed workspace, not whatever is on the registry - #103

Open
randomdevpete wants to merge 2 commits into
task-789-converge-core-atom-namingfrom
task-823-registry-smoke-references-removed-exports
Open

ci(e2e): 823 — smoke-test the packed workspace, not whatever is on the registry#103
randomdevpete wants to merge 2 commits into
task-789-converge-core-atom-namingfrom
task-823-registry-smoke-references-removed-exports

Conversation

@randomdevpete

Copy link
Copy Markdown
Owner

Summary

registry-smoke now packs jarl-atoms and jarl-react from this branch's build and tests against those locally-packed tarballs, rather than installing from the npm registry at latest. This catches export renames and missing exports the moment they're introduced, on every PR, instead of silently failing after a release ships broken.

What this trades away: no longer proves the currently-published npm tarball works end-to-end — a botched npm publish or stale files/exports entry that only a real publish would expose can't be caught this way.

What it buys back: runs on every PR with locally-packed artifacts that use the same files/main/exports/types config and dist/ a release would ship, catching everything short of the publish step itself.

Approach

  • Commit 1: Updated all export references in e2e/registry-smoke/ to track the renames in 675 and 789. Grep-clean: no stale resolvedAtom, rootAtom, redirectAtom, queryParamAtom, or validateAtom.
  • Commit 2: Added e2e/registry-smoke/pack-local.mjs (mirroring cjs-nodenext/pack-local.mjs), switched dependencies to file:./tarballs/*.tgz, made the CI job run unconditionally.

Dependency

Carries the full stack: 675 and 789 are already stacked below this PR.

See e2e/registry-smoke/README.md "Tracking source renames (ticket 823)" for full docs.

resolvedAtom was removed by 675 in favour of asyncRouteAtom(...).data;
followResolvedRedirects became followAsyncRedirects. 789 suffixed every
route atom with Route: rootAtom/createRootAtom split into the bare
instance rootRoute and its factory rootRouteAtom, and redirectAtom,
queryParamAtom and validateAtom each gained the suffix. Update every
reference in the smoke consumer (routes, App, the vitest suite, and
both entrypoint smoke scripts) to match.

Ticket: 823
registry-smoke installed jarl-atoms/jarl-react from the npm registry at
`latest`, on a job wired to workflow_dispatch only. That tests the
published package, which was the point, but it meant a source rename
here couldn't fail until the next release republished it — and it
would fail in a job nobody watches by default. This is exactly the
gap that let 675 and 789 drift unnoticed until this ticket.

Of the three ways to close it (track renames in lockstep, pin to an
explicit version so the mismatch is legible, or run on PRs against a
local build), this takes the third: pack-local.mjs packs jarl-atoms/
jarl-react from the working tree, the same way cjs-nodenext/ already
does for its own narrower check, and installs the tarballs as a real
`file:` dependency in place of `latest`. The registry-smoke CI job now
runs unconditionally alongside build-and-test instead of gating on
workflow_dispatch, so drift surfaces on the PR that introduces it.

Traded away: this no longer proves the currently-published npm
tarball works end-to-end (a botched `npm publish`, a stale `files`/
`exports` entry only a real publish would expose). What it buys back
is catching everything short of the publish step itself, on every PR
rather than after a release ships broken — recorded in
e2e/registry-smoke/README.md, "Tracking source renames", along with
how to point it at a real published version instead.

Ticket: 823
@randomdevpete
randomdevpete force-pushed the task-823-registry-smoke-references-removed-exports branch from 70d2472 to 7bdd115 Compare August 21, 2026 13:43
@randomdevpete randomdevpete reopened this Aug 21, 2026
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.

1 participant