Repository navigation
Publish every package to npm - #16
Merged
Merged
Conversation
|
Subscribed! Subsequent pull request activity will be logged. |
Follow fold's release setup. A `v*` tag builds every package in packages/, stages it in .release/ with real versions, checks it, and publishes it to npm through trusted publishing. `-rc.N` versions publish under the `rc` tag. - scripts/build/packages.ts bundles each package's JavaScript and emits its declarations, then adds `.js` to relative imports in them so NodeNext projects can read them. - scripts/release/prepare.ts writes publishable manifests: catalog and workspace ranges resolved, our packages pinned to the release, Effect and Alchemy as `^` peer ranges, exports pointing at dist/. - scripts/release/validate.ts checks each manifest, then installs the packed tarballs into a fresh project with npm, typechecks a sample app against them with NodeNext and skipLibCheck off, and imports every package under plain Node.js with one copy of Effect, no TypeScript, and no network. - scripts/release/publish.ts publishes in dependency order and skips versions already on npm, so a failed release can be resumed. - CI runs check, tests, both backend suites, and the release check with a dry-run publish on every pull request. Validate Publish runs that by hand. Effect and Alchemy are now peer dependencies; emulate moves to dev dependencies, since only tests use it. ChannelsCloudflare imports alchemy/Cloudflare so its declarations name DurableObjectState through a public path, not alchemy/Cloudflare/index. Add READMEs for the packages that had none. Replace the unused tools/packaging harness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
Bun 1.3.14's bundler emits a broken export for `export * as Channels`, which the release check caught under Node.js. tsc emits one file per source file, the same on every Bun version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
K-Mistele
force-pushed
the
release-process
branch
from
October 3, 2026 21:49
3165f76 to
2552ee6
Compare
Add `bun run release:trust`, which runs `npm trust github` for every package against release.yml in humanlayer/effect-channels and skips packages that are already connected. Document the first-release steps in the README. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> HumanLayer-Session: https://app.dev.codelayer.gg/sessions/01a102d3-2fe4-7531-aff7-d6c62a5dc2e8
K-Mistele
changed the base branch from
update-readme-with-features-and-integration-examples-qib91d
to
main
October 5, 2026 18:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #15.
What this does
Pushing a
v*tag publishes every package inpackages/to npm at the same version, the way fold does it.v0.1.0-rc.1goes out under therctag;v0.1.0goes out aslatest. GitHub signs in to npm through trusted publishing.Before publishing, the release check:
package.jsonis publishable (real versions, public, Effect only as a peer, exports pointing at files that exist)CI runs that check, with a dry-run publish, on every pull request. It also runs the Postgres and Redis suites.
Found by the check
@humanlayer/channels-alchemy-cloudflare's type files importedalchemy/Cloudflare/index, a path Alchemy doesn't export. Fixed by importingalchemy/CloudflareinChannelsCloudflare.ts..js.Other changes
effect(andalchemy, for the Cloudflare package) are now peer dependencies, published as^ranges.emulatemoved to dev dependencies, since only tests use it.scripts/is excluded from the library lint rules, liketools/, and gets its own type check.tools/packagingharness is replaced.First release (needs a person)
npm only lets you set up trusted publishing for a package that already exists, so the first test version goes out from a laptop:
npm loginas someone who can publish to@humanlayer.bun run build && bun run release:prepare --version 0.1.0-rc.0 && bun run release:validate --version 0.1.0-rc.0 && bun run release:publish --version 0.1.0-rc.0 --tag rchumanlayer, repoeffect-channels, workflowrelease.yml.Test plan
bun run check,bun run test(544/544)0.1.0-rc.0published by hand, trusted publishing set up, thenv0.1.0-rc.1tag publishes from GitHub🤖 Generated with Claude Code