Skip to content

fix(ci): run publint/attw from package dir so the release workflow works#14

Merged
kelsos merged 1 commit intomainfrom
fix/release-workflow
Apr 18, 2026
Merged

fix(ci): run publint/attw from package dir so the release workflow works#14
kelsos merged 1 commit intomainfrom
fix/release-workflow

Conversation

@kelsos
Copy link
Copy Markdown
Owner

@kelsos kelsos commented Apr 18, 2026

Summary

The v0.1.0 release workflow failed before reaching npm. The publint step was written as:

- run: pnpm --filter plainfp dlx publint

But pnpm dlx ignores filter flags and actively rejects --recursive (which -r/--filter introduces into its options), so the step fails with:

ERROR Unknown option: 'recursive'

Fix

Run the packaging-hygiene checks from the package's own directory via working-directory:, same pattern already used by the publish + GitHub Release steps below. Also add the attw check that ci.yml runs — release should verify the same packaging quality gates.

- name: Check packaging hygiene (publint + attw)
  working-directory: packages/plainfp
  run: |
    pnpm dlx publint
    pnpm dlx @arethetypeswrong/cli@0.18.2 --pack . --profile esm-only

Verified locally

Ran the full release sequence locally against `packages/plainfp` at 0.1.0:

Step Status
Typecheck
Lint
Tests (276)
Build
publint ✅ "All good!"
attw (esm-only profile) ✅ all 15 subpath exports green
pnpm publish --dry-run ✅ plainfp@0.1.0, 52.9 KB tarball, 61 files

Recovery for v0.1.0

Once this merges, I'll delete the failed tag and re-tag from the new main:

git tag -d v0.1.0
git push --delete origin v0.1.0
git checkout main && git pull
git tag v0.1.0
git push --tags

The tag push fires release.yml (with the fix) → publishes with provenance + creates the GitHub Release.

Test plan

The release workflow called `pnpm --filter plainfp dlx publint`, but
`pnpm dlx` ignores filter flags and rejects `--recursive`, so the step
failed with `ERROR Unknown option: 'recursive'` and the v0.1.0 publish
never reached npm.

Switch to a `working-directory: packages/plainfp` step that runs both
publint and @arethetypeswrong/cli in the same place we run them from CI
`Build + publint`. Matches the pattern already used by the
`Publish with provenance` and `Create GitHub Release` steps below.

No runtime change, just a workflow fix.
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.68%. Comparing base (3176de9) to head (b24cfb3).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main      #14   +/-   ##
=======================================
  Coverage   91.68%   91.68%           
=======================================
  Files          23       23           
  Lines         397      397           
  Branches       90       90           
=======================================
  Hits          364      364           
  Misses         11       11           
  Partials       22       22           
Flag Coverage Δ
unittests 91.68% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 18, 2026

Merging this PR will not alter performance

✅ 48 untouched benchmarks


Comparing fix/release-workflow (b24cfb3) with main (3176de9)

Open in CodSpeed

@kelsos kelsos merged commit b24cfb3 into main Apr 18, 2026
11 checks passed
@kelsos kelsos deleted the fix/release-workflow branch April 18, 2026 18:09
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