Supported user-facing install targets:
emdash-smtpemdash-smtp-marketplace
Implementation packages that are still published automatically to satisfy npm dependency resolution:
emdash-smtp-coreemdash-smtp-node-transports
Marketplace listing identity:
- package directory:
packages/emdash-smtp-marketplace - EmDash plugin ID:
emdash-smtp
Before publishing:
- Bump versions consistently across all package manifests and
SMTP_PLUGIN_VERSION. - Confirm npm publish access for the unscoped package names.
- Ensure the EmDash CLI is reachable through one of these paths:
EMDASH_CLI_PATH- an installed EmDash package that exposes its CLI
- a sibling
../emdashworkspace checkout withpackages/core/dist/cli/index.mjs
- Authenticate for marketplace publication with
emdash plugin loginor duringemdash plugin publish.
Run the full local verification pass before publishing:
pnpm release:checkThat runs:
pnpm install --frozen-lockfilepnpm typecheckpnpm testpnpm buildpnpm validate:marketplacepnpm bundle:marketplace
Use the root publisher so packages go out in dependency order and can be resumed cleanly.
Dry run:
pnpm publish:npm -- --dry-runPublish:
pnpm publish:npmDeprecate the legacy scoped package names after the unscoped publish is live:
pnpm deprecate:legacyPublished order:
packages/corepackages/node-transportspackages/emdash-smtppackages/emdash-smtp-marketplace
If publication stops partway through, resume from the first unpublished package:
pnpm publish:npm -- --from <first-unpublished-package>Valid package names are:
emdash-smtp-coreemdash-smtp-node-transportsemdash-smtpemdash-smtp-marketplace
Only the marketplace package goes through the EmDash marketplace flow.
pnpm validate:marketplace
pnpm bundle:marketplace
pnpm publish:marketplaceEquivalent direct CLI flow:
node scripts/run-marketplace-cli.mjs plugin publish --dir packages/emdash-smtp-marketplace --build-
Legacy package names under
@masonjames/*should remain deprecated and point users at the supported unscoped install targets. -
publish:marketplaceusesemdash plugin publishunder the hood after patching the marketplace package manifest to point at source entrypoints temporarily. -
emdash plugin publishregisters the plugin automatically the first time if the plugin ID does not exist yet. -
Marketplace publication requires a strictly increasing semver version.
-
If interactive marketplace auth fails before a device code is shown, verify the registry discovery response includes
github.clientIdor provideEMDASH_MARKETPLACE_TOKEN. -
The CI workflow now relies on the root
packageManagerfield via Corepack so pnpm stays single-sourced. -
This repository does not store npm credentials or marketplace auth tokens.
-
Use
docs/RELEASE.mdfor the full GitHub + npm + marketplace runbook.