Skip to content

🔧 chore: migrate to pnpm + Node 22 and adopt workflow-scripts release flow - #15

Merged
elisiondan merged 1 commit into
mainfrom
chore-migrate-pnpm-node22-release-flow
Jul 14, 2026
Merged

elisiondan merged 1 commit into
mainfrom
chore-migrate-pnpm-node22-release-flow

Conversation

@elisiondan

Copy link
Copy Markdown
Member

Summary

Modernises the build/release toolchain for this package, following the current org convention set by directus-extension-localazy (#101 "adopt release flow via @localazy/workflow-scripts" and #102 "migrate from npm workspaces to pnpm").

  • Release flow — replaces the localazy/release@v2 composite actions with two commit-message-gated jobs driven by @localazy/workflow-scripts@latest:
    • create-release-pr on normal pushes to main
    • publish-release on the merged 🚀 release: commit → build, pnpm publish, create-git-tag, create-github-release
  • Package manager — npm → pnpm 11.4.0 (packageManager pin); package-lock.json → pnpm-lock.yaml; new pnpm-workspace.yaml with an allowBuilds allowlist (esbuild).
  • Node — bumped to 22 (.nvmrc, engines.node >= 22, @types/node ^22).
  • QA — qa.yml now runs on pnpm + Node 22 and uses a single pnpm run check + build.
  • Misc — vitest passWithNoTests (empty suite exits 0); .prettierignore ignores dist + pnpm-lock.yaml; reformatted service.ts/scope.ts under the bumped prettier (no behaviour change — enum values untouched).

Verified locally (Node 22.21.1 / pnpm 11.4.0)

  • pnpm install --frozen-lockfile — clean (no ERR_PNPM_IGNORED_BUILDS after the allowBuilds allowlist)
  • pnpm run check (typecheck + test + lint + prettier) — pass
  • pnpm run build — pass
  • pnpm publish --dry-run — resolves @localazy/generic-connector-client@0.4.0

Relationship to #14

This PR should merge first. #14 ("reassign IN_CONTEXT_EDITOR to plugin id 8") is the follow-up and contains only the enum value change. Because this PR reformats src/enums/service.ts (unquoting members), #14 will need a trivial rebase onto main afterwards so its 7 → 8 re-applies in the new unquoted style.

Test plan

  • qa.yml passes on this PR
  • After merge, a non-release push to main opens a proper release PR via create-release-pr
  • Merging that release PR publishes to npm + tags + creates a GitHub Release
  • Confirm org secrets NPM_AUTH_TOKEN_PUBLIC, AUTH_APP_ID, AUTH_APP_KEY reach this repo (already used by the old release.yml)

🤖 Generated with Claude Code

… flow

Replace the localazy/release@v2 composite actions with the
@localazy/workflow-scripts release flow, and switch the package manager
from npm to pnpm on Node 22 — matching the current org convention
(directus-extension-localazy #101/#102).

- release.yml: two commit-message-gated jobs (create-release-pr /
  publish-release) driven by @localazy/workflow-scripts@latest; publish
  via `pnpm publish`
- qa.yml: pnpm + Node 22 via .nvmrc; single `pnpm run check` + build
- package.json: packageManager pnpm@11.4.0, engines node>=22,
  @types/node ^22, internal scripts npm->pnpm
- declare typescript ~5.4.2 as a direct devDependency and run `tsc`
  instead of `npx tsc`: pnpm's strict node_modules does not hoist
  transitive binaries, so tsc must be a direct dependency
- add pnpm-workspace.yaml (allowBuilds: esbuild) and pnpm-lock.yaml,
  remove package-lock.json
- .prettierignore: ignore dist and pnpm-lock.yaml
- vitest: passWithNoTests so the empty suite exits 0
- reformat service.ts / scope.ts under the bumped prettier (no behaviour
  change; enum values untouched)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@elisiondan
elisiondan force-pushed the chore-migrate-pnpm-node22-release-flow branch from e5273ec to c14ac7c Compare July 14, 2026 08:49
@elisiondan
elisiondan merged commit 8d8f0ec into main Jul 14, 2026
1 check passed
@elisiondan
elisiondan deleted the chore-migrate-pnpm-node22-release-flow branch July 14, 2026 09:08
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