Skip to main content
cops release checklist inspects the current working directory for the prerequisites of a verify/pack/distribute release workflow. It reads package.json and checks for the presence of required scripts, the CHANGELOG, a CI workflow file, and a release tarball.

Usage

cops release checklist [flags]

Flags

--output
string
default:"table"
Output format: table, json, or markdown.

Checks

CheckStatus logic
changelog_unreleasedpass when CHANGELOG.md contains ## [Unreleased]; warn otherwise
verify_scriptpass when package.json defines a verify script; warn otherwise
pack_internal_scriptpass when package.json defines a pack:internal script; warn otherwise
ci_workflowpass when .github/workflows/ci.yml exists; warn otherwise
tarball_presentpass when a <name>-<version>.tgz tarball matching package.json name and version exists; warn otherwise
distribution_stepsAlways warn — reminder to publish/share the tarball after packing

Output columns

check, status, details

Exit codes

CodeMeaning
0All checks passed
10One or more checks produced a warn result
1

Update CHANGELOG.md

Add or update the ## [Unreleased] section with all changes for this release.
# Verify the section is present
grep '## \[Unreleased\]' CHANGELOG.md
2

Add required scripts to package.json

Ensure verify (typecheck + test + build) and pack:internal (verify + pack) scripts are defined.
{
  "scripts": {
    "verify": "npm run typecheck && npm test && npm run build",
    "pack:internal": "npm run verify && npm pack"
  }
}
3

Create a CI workflow

Add .github/workflows/ci.yml to run typecheck, test, build, and pack on every push.
4

Run pack:internal

Generate the release tarball.
npm run pack:internal
5

Run the checklist

Verify all prerequisites are met before distributing.
cops release checklist
6

Distribute the tarball

Publish or share the tarball, then install it globally.
npm i -g ./<name>-<version>.tgz

Examples

cops release checklist
check                  status  details
─────────────────────  ──────  ──────────────────────────────────────────────────
changelog_unreleased   pass    CHANGELOG has Unreleased section
verify_script          pass    npm run verify is configured
pack_internal_script   pass    npm run pack:internal is configured
ci_workflow            pass    .github/workflows/ci.yml found
tarball_present        pass    Found my-tool-1.2.0.tgz
distribution_steps     warn    After pack:internal, publish/share tarball and install with `npm i -g ./<tarball>`
cops release checklist operates on the current working directory. Run it from the root of your project where package.json and CHANGELOG.md live.

cops release check

Run policy-based release gates.

cops release summary

Cross-product release readiness summary.

Build docs developers (and LLMs) love