Skip to content

Prepare v0.1.0 npm release: capability rename + admin route fix#3

Merged
drudge merged 5 commits intomainfrom
drudge/release-v0.1.0
May 1, 2026
Merged

Prepare v0.1.0 npm release: capability rename + admin route fix#3
drudge merged 5 commits intomainfrom
drudge/release-v0.1.0

Conversation

@drudge
Copy link
Copy Markdown
Owner

@drudge drudge commented May 1, 2026

Summary

Sets up tag-triggered npm publishing for v0.1.0. Marketplace publishing is intentionally deferred — that flow is too beta to gate v0.1.0 on.

  • Capabilities renamed to the non-deprecated names recognized by emdash >= 0.9.0:
    • email:providehooks.email-transport:register
    • network:fetchnetwork:request
    • peerDependencies.emdash bumped from >=0.7.0 to >=0.9.0.
  • Admin handler accepts /settings, /, and "" for page_load. Previously only /settings matched, which left the plugin root blank when the host admin's "Settings" gear icon linked to /_emdash/admin/plugins/postmark (no splat).
  • Icon relocated from docs/icon.png to icon.png (repo root) and added to files. (Useful for the npm README on npmjs.com; was originally for the marketplace bundle, which is now skipped.)
  • package.json polish: explicit publishConfig.access: public; files includes icon.png and screenshots; prepublishOnly runs pnpm run build.
  • .github/workflows/release.yml triggered on v* tag pushes. Order: install → typecheck → test:coverage → build → version-vs-tag check → npm publish → GitHub Release.

Required before tagging v0.1.0

  1. Add NPM_TOKEN secret at https://github.com/drudge/emdash-plugin-postmark/settings/secrets/actions — npm Automation token (Access Tokens → Generate New Token → Automation), required if 2FA-on-writes is enforced.
  2. Mark this PR ready, merge.
  3. From main: git tag -a v0.1.0 -m "v0.1.0" && git push origin v0.1.0 — release.yml fires.

Deferred (not blocking v0.1.0)

  • Marketplace publish via emdash plugin publish.
  • Screenshots in screenshots/ — would be nice for npm README on npmjs.com but not required to ship.

Test plan

  • pnpm typecheck — clean
  • pnpm test:coverage — 112/112 passing
  • pnpm build — clean, ~12kB gzipped output
  • pnpm pack — npm tarball includes icon.png, dist/, README, CHANGELOG, LICENSE
  • Tag push triggers release.yml end-to-end (verified post-merge)
  • Plugin root URL /_emdash/admin/plugins/postmark now renders the settings page (verified after install in test-site)

drudge added 2 commits May 1, 2026 17:35
- Rename capabilities to non-deprecated names: `email:provide` →
  `hooks.email-transport:register`, `network:fetch` → `network:request`.
  Bumps peerDependency to `emdash >= 0.9.0`.
- Move `docs/icon.png` to repo root so `emdash plugin bundle` picks it
  up automatically (it looks for `icon.png` and `screenshots/` next to
  package.json).
- Add `icon.png` and `screenshots` to the `files` array so the npm
  tarball ships them too; explicit `publishConfig.access: public`;
  `prepublishOnly` now runs `pnpm run build` for consistency with the
  workspace toolchain.
- Add `.github/workflows/release.yml` triggered on tag push (`v*`).
  Order: build → npm publish → bundle marketplace tarball → marketplace
  publish (`--no-wait`) → GitHub Release with bundle as asset. Requires
  secrets: `NPM_TOKEN` (Automation), `EMDASH_MARKETPLACE_TOKEN`.
- Remove "Bundle marketplace tarball" + "Publish to EmDash Marketplace"
  steps and the bundle asset from the GitHub Release. Marketplace
  publishing is too beta to gate v0.1.0 on; release.yml now does
  npm publish + GitHub Release only. EMDASH_MARKETPLACE_TOKEN secret
  is no longer required.
- adminHandler now matches `/settings`, `/`, and `""` for the page_load
  interaction so the plugin root URL (`/_emdash/admin/plugins/postmark`)
  renders the settings page. Previously only `/settings` matched, which
  left the plugin root blank in admin builds whose gear-icon link drops
  the splat.
@drudge drudge changed the title Prepare v0.1.0 release: capability rename + tag-triggered publish workflow Prepare v0.1.0 npm release: capability rename + admin route fix May 1, 2026
@drudge drudge marked this pull request as ready for review May 1, 2026 22:02
@drudge drudge merged commit 5b4c7fa into main May 1, 2026
1 check passed
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