This repo is a pnpm workspace monorepo. Public npm packages live in packages/* and are published in dependency order:
pnftrading_codei-core- language adapters
pnftrading_codei
Before publishing, make sure you have:
- updated package versions you want to release
- updated changelog or release notes
- valid npm authentication (
npm loginorNPM_TOKEN) - a clean git state
Create a changeset for a package change:
pnpm changesetApply version bumps and changelog updates locally:
pnpm run version-packagesRun a full release verification:
pnpm run release:checkThis command verifies that:
- all public packages already have
dist/ - each public package has its own
README.md - packed tarballs can be generated successfully
- packed manifests no longer contain
workspace:*dependency ranges
Run a dry-run publish:
pnpm run release:publish:dry-runThis performs a local publish simulation:
- runs
release:check - prints the publish order
- prints the exact
pnpm publishcommands that would run
It does not hit the npm registry, so you can use it safely on a dirty branch or before bumping versions.
Publish for real:
pnpm run release:publish- The GitHub workflow at
.github/workflows/release.ymluseschangesets/actionto open or update a release PR automatically onmain. - To enable npm publishing from GitHub Actions, add an
NPM_TOKENrepository secret with publish access to the unscopedpnftrading_codei*packages. release:publishrunsrelease:checkfirst.- Packages are published in topological dependency order so
pnftrading_codei-coreis available before adapters andpnftrading_codei. - The website package is private and is not part of npm publishing.
- CI also runs
pnpm run release:checkon pushes and pull requests to keep npm artifacts healthy.