Publishing packages
Any Ende program that defines an export can be published as a package for other developers to import. This page covers where to publish and how.
Choose a registry
Ende packages are published to JSR. It accepts TypeScript directly (no build step) and generates documentation from your JSDoc comments.
Publish to JSR
Give your package a name, a version, and an entry point in ende.json:
{
"name": "@scope/my-package",
"version": "1.0.0",
"exports": "./mod.ts"
}The name is always scoped (@scope/name). Create the scope on
jsr.io the first time you publish.
Check what will be published, then publish:
ende publish --dry-run # verify the file list and metadata
ende publish # opens jsr.io to authenticate, then publishes
ende publish type-checks your code and verifies that your exports don't rely
on anything outside the package before uploading. See the
ende publish reference for flags, and
Publishing packages on jsr.io for
scopes, versioning, provenance, and publishing from CI.
To bump the version field between releases, you can use
ende bump-version.
Workspaces
In a workspace, ende publish publishes
every workspace member that has a name and version, in dependency order. See
publishing workspace packages
for the details.
Automating workspace releases
ende bump-version can drive a whole workspace release. Run at the workspace
root with no increment, it derives each member's version bump from the
Conventional Commits made since the last
release, rewrites the jsr: constraints in the root import map so cross-package
references stay in sync, and prepends a changelog entry to Releases.md. See
deriving bumps from Conventional Commits
for the rules and the flags that pin the commit range.
The Ende Standard Library publishes from CI as
a reference you can adapt: publishing a GitHub release triggers its
workspace_publish workflow,
which runs ende publish for every member, authenticating to JSR with GitHub
OIDC.
Keep going
- Dependency management: the day-to-day workflow this page grew out of
ende publishandende packreferences- JSR publishing docs