Skip to content

PF-3329: Migrate to pnpm@10, Node 24, GitHub Packages#14

Open
genisd wants to merge 7 commits into
mainfrom
PF-3329
Open

PF-3329: Migrate to pnpm@10, Node 24, GitHub Packages#14
genisd wants to merge 7 commits into
mainfrom
PF-3329

Conversation

@genisd
Copy link
Copy Markdown
Member

@genisd genisd commented May 21, 2026

Scope

Migrate this package to pnpm@10.33.4, Node 24, and GitHub-Packages-only publishing on top of util.workflowJavascriptPackage() from lib-jsonnet. Also performs a publish-hygiene pass adding a files allowlist.

lib-jsonnet bootstrap

This repo was bootstrapped to lib-jsonnet as part of this PR (no .github/jsonnet/ existed before). Helpers were extracted from https://files.gynzy.net/lib-jsonnet/v1/jsonnet-pr-257.tar.gz.

Depends on lib-jsonnet#257 (adds packageManager='pnpm' to workflowJavascriptPackage). Follow-up once adopted-ember-addons#257 merges to prod: re-run sh .github/jsonnet/pull-upstream-and-rebuild.sh without PR_NUMBER to repin helpers to prod and regenerate.

Discovery

Field Value
Default branch main
Visibility PUBLICisPublicFork=true
Version bump 0.10.00.10.1
Test cmd npm-run-all lint:* test:* (lint:js, test:ember, test:ember-compatibility)
Build cmd ember build --environment=production
Lint cmd npm-run-all --parallel lint:*
Service deps none

Workflow generation

  • repositories=['github'] — GitHub Packages only (hard requirement: no npm.gynzy.net, no setGynzyNpmToken). Verified: generated YAML contains zero references to either.
  • isPublicFork=true (visibility PUBLIC).
  • buildSteps=[] — the legacy ci/publish.sh published yarn publish directly without a build step; preserving original behavior. Also: ember build does not run on Node 24 with the pinned Ember 3.27 toolchain.
  • testJob runs pnpm run lint (eslint) only. test:ember and test:ember-compatibility need a browser environment that the node:24 container does not provide; Travis previously used chrome: stable addon. Flagged below.

Legacy .github/workflows/publish-pr.yml and publish-tag.yml were deleted (superseded by helper-generated pr.yml and publish-prod.yml).

Publish hygiene

Baseline pnpm pack (before allowlist): 49 files / 49,727 B. Junk shipped: .github.jsonnet, all of .github/jsonnet/*, .github/workflows/*.yml, .claude/, .nvmrc, ci/npm.sh, ci/publish.sh, CHANGELOG.md, CONTRIBUTING.md.

CI bloat risk (generated workflows): pnpm config set store-dir .pnpm-store && pnpm install --frozen-lockfile runs before pnpm publish, which without an allowlist would balloon the published tarball with the pnpm store. The allowlist neutralises this.

Applied:

  • files: ["addon", "app", "config/environment.js", "index.js"]
  • .npmignore deleted (allowlist makes it redundant; the only residual noise inside allowlisted paths is two 0-byte .gitkeep files — harmless).

After: 14 files / 5,771 B (–88% size, –71% files).

Local verification

  • pnpm install — clean.
  • pnpm run lint:js — passes.
  • pnpm run build — fails on Node 24 (pre-existing Ember 3.27 / Node-24 incompatibility); not wired into CI testJob or publish-prod (buildSteps=[]).
  • pnpm run test — not run (browser-dependent ember tests; see Open Questions).

Preserved

  • .travis.yml left as-is (not a GH Actions workflow). Travis is the historical home of ember-try matrix tests.
  • ci/npm.sh, ci/publish.sh left as-is (orphaned scripts, no longer referenced by any workflow). Can be removed in a follow-up.

Open Questions

  • Tag-publish trigger: legacy publish-tag.yml fired on push: tags: '*'. The new helper publishes on push to main. Confirm whether tag-based releases are still desired; if so, additional jsonnet is needed.
  • Ember test execution: test:ember and test:ember-compatibility need a browser. They previously ran on Travis with Chrome installed. Wiring them in GH Actions requires a service container or runner-installed browser — out of scope for this migration. They are NOT run in CI by this PR.
  • ci/npm.sh / ci/publish.sh orphan removal: not part of this PR per minimum-change rule; suggest deleting in a follow-up.

genisd added 7 commits May 21, 2026 17:18
- package.json: packageManager=pnpm@10.33.4, engines.node>=24, version 0.10.0 -> 0.10.1
- .npmrc: point @gynzy at GitHub Packages
- .nvmrc: 24
- drop .yarnrc
Generated via jgen against lib-jsonnet PR-257. Replaces handwritten
publish-pr.yml/publish-tag.yml that targeted npm.gynzy.net.

- repositories=['github'] (publish only to GitHub Packages)
- isPublicFork=true (repo visibility is PUBLIC)
- buildSteps=[] (legacy ci/publish.sh never built before publishing)
- testJob runs 'pnpm run lint' (browser-dependent ember tests require infra not present in node:24 container; flagged in PR)
pnpm pack before: 49 files / 49,727 B (shipped .github/jsonnet helpers,
.github.jsonnet, .github/workflows YAML, .claude/, .nvmrc, ci/*.sh,
CHANGELOG, CONTRIBUTING).
pnpm pack after:  14 files /  5,771 B (-88% size, -71% files).
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