Skip to content

fix(fixtures): pack under a canonical name so the suite works on any branch - #875

Merged
PolinaGurinovich97 merged 1 commit into
developmentfrom
fix/fixtures-version-agnostic-tarball
Sep 14, 2026
Merged

PolinaGurinovich97 merged 1 commit into
developmentfrom
fix/fixtures-version-agnostic-tarball

Conversation

@PolinaGurinovich97

Copy link
Copy Markdown
Collaborator

Problem

Verify package distribution fails on every PR opened against a release branch, whatever the PR contains. It surfaced on #873, the 0.14 cherry-pick of #872, where all ten fixtures failed with:

npm error enoent ENOENT: no such file or directory, open
'…/fixtures/.tarballs/epam-ai-dial-ui-kit-0.0.0.tgz'

fixtures/run-all.mjs runs npm pack, which names its output after package.json#version and cannot be told otherwise. Every fixture pins that filename literally:

"@epam/ai-dial-ui-kit": "file:../.tarballs/epam-ai-dial-ui-kit-0.0.0.tgz"

On development the version is 0.0.0, so the two agree and the job is green. On release-0.14 the version is 0.14.0, the tarball is packed as epam-ai-dial-ui-kit-0.14.0.tgz, and nothing resolves — so the suite reports ten regressions that are really one wrong path, and the identical commit is green on development and red on the release branch.

Change

The packed artifact is renamed to one canonical, version-free name — ai-dial-ui-kit.tgz — which is what all ten fixtures now pin. The version stops taking part in the path, so the job behaves the same on development and on any release-* branch. The runner also fails loudly if the pack step leaves anything other than exactly one .tgz behind, instead of letting ten installs fail one after another.

Verification

npm run fixtures:run-all locally: all 10 fixtures pass end-to-end, built and installed from the renamed tarball. npm run lint and npm run typecheck are green.

The release-branch case — the one that was broken — is verified by the same job running on #873 once this is cherry-picked there.

🤖 Generated with Claude Code

…branch

`npm pack` names its output after `package.json#version` and cannot be told
otherwise, so the packed artifact is `epam-ai-dial-ui-kit-0.0.0.tgz` on
`development` and `epam-ai-dial-ui-kit-0.14.0.tgz` on `release-0.14`. Two
places pinned the `0.0.0` spelling — all ten fixture manifests and the
`--from-tarball` argument in `verify:distribution` — so on a release branch
every fixture failed to install:

    npm error enoent ENOENT: no such file or directory, open
    '…/fixtures/.tarballs/epam-ai-dial-ui-kit-0.0.0.tgz'

and `Verify package distribution` reported ten regressions that were really
one wrong path. It fails that way for any PR opened against a release branch,
which is how it surfaced on the 0.14 cherry-pick of #872.

The packed tarball is now renamed to one canonical, version-free name that
both the fixtures and the export-surface check point at, and the runner fails
loudly if the pack step leaves anything other than exactly one `.tgz` behind.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@PolinaGurinovich97
PolinaGurinovich97 force-pushed the fix/fixtures-version-agnostic-tarball branch from 4d24d12 to cf12e53 Compare September 14, 2026 19:50
@PolinaGurinovich97
PolinaGurinovich97 merged commit 8092410 into development Sep 14, 2026
11 checks passed
@PolinaGurinovich97
PolinaGurinovich97 deleted the fix/fixtures-version-agnostic-tarball branch September 14, 2026 19:54
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