getsentry/action-release · Archived

verify-dist

Regenerate and commit dist/index.js when source files or runtime deps change

First seen Jun 18, 2026

Installation

$ npx skills add getsentry/action-release --skill verify-dist

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from getsentry/action-release.

npx skills add getsentry/action-release

Browse all from getsentry/action-release

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 492
License LICENSE
Default branch master
Open issues 21
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,705 B
  • docs SUMMARY.md 95 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Verify Dist Skill

action-release ships a bundle in dist/ built by ncc. The verify-dist CI workflow (.github/workflows/verify-dist.yml) fails any PR where the committed bundle does not match the source. This skill keeps them in sync locally.

dist/ is a directory, not a single file. Alongside dist/index.js, ncc emits code-split chunks (dist/319.index.js and friends) for every dynamic import() in a dependency. @opentelemetry/resources loads its per-platform getMachineId that way, so the chunks arrive with @sentry/node. index.js loads them at runtime with a relative require, so they must sit next to it and must all be committed.

When to invoke

  • You changed anything under src/.
  • You bumped a runtime dep in package.json (anything under dependencies, not devDependencies).
  • CI posted "Detected uncommitted changes after build" on a PR.

Modes

--check (default)

Report whether dist/ is in sync with the current source tree. Do not modify anything.

yarn install --frozen-lockfile
yarn build
git diff --ignore-space-at-eol --stat dist/
git ls-files --others --exclude-standard dist/   # new chunks show up here, not in git diff
  • If both commands print nothing → dist/ is in sync. Done.
  • If either prints something → report the changed files and line counts, then ask the user whether to switch to --fix.

--fix

Rebuild and stage dist/.

yarn install
yarn build
git add dist/
git status --short dist/

Do not commit automatically — let the user review the bundle diff first. A reasonable follow-up commit message:

build: regenerate dist/index.js

Or, if tied to a source change:

<type>(<scope>): <summary>

Regenerates dist/index.js.

Before the user commits: pre-commit hook reminder

Whoever runs the follow-up commit needs the repo's pre-commit hooks installed. Verify with ls .git/hooks/pre-commit; if missing, run make (installs yarn deps + pre-commit install) or pre-commit install.

The set-docker-tag-from-branch hook will rewrite action.yml on the first commit of a branch and fail the commit. Recover by staging action.yml and committing again (never --amend — the hook-failed commit never landed):

git add action.yml
git commit -m "<same message>"

CI does not run pre-commit. CI's prepare-docker job rejects PRs where action.yml's Docker tag still matches a semver like 3.6.0, so keeping the tag in sync via the local hook is what prevents the CI failure.

Notes

  • The CI check runs git diff --ignore-space-at-eol dist/ — whitespace-only diffs pass, anything else fails. Match that locally.
  • CI also fails on untracked files in dist/ via git ls-files --others --exclude-standard dist/. git diff alone never reports a brand-new chunk, so a missing chunk would otherwise pass CI and only break at runtime on whichever platform needs it.
  • yarn build shells out to ncc build src/main.ts -e @sentry/cli. @sentry/cli is deliberately excluded from the bundle because it ships its own native binaries at runtime.
  • The bundle diff can be large even for small source changes (minifier + bundler reshuffles). That is expected; just verify the intended symbols are present.
  • Never hand-edit dist/index.js or any chunk. Always regenerate.

Related files

  • .github/workflows/verify-dist.yml — the CI check this skill satisfies.
  • package.json → scripts.build — the canonical build command.
  • src/main.ts — the ncc entry point.