Skip to content

Sync upstream ctrf-io/main (picks up Node 24 runtime)#33

Closed
AlecRosenbaum wants to merge 30 commits into
mainfrom
sync-upstream-main
Closed

Sync upstream ctrf-io/main (picks up Node 24 runtime)#33
AlecRosenbaum wants to merge 30 commits into
mainfrom
sync-upstream-main

Conversation

@AlecRosenbaum

Copy link
Copy Markdown

Ref https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Resyncs closeio/main with ctrf-io/main to pick up upstream's Node 20 → Node 24 runtime bump, which is the last remaining Node 20 deprecation warning in closeio CI (see closeio/closeio#54963 for context — every other action has already been bumped).

After this merges, closeio/closeio will re-pin its github-test-reporter SHA in a follow-up PR.

Conflict resolution

Auto-merge handled all 100+ upstream commits cleanly except package.json and package-lock.json.

  • package.json — kept upstream's dependency versions (they're all newer than what we had) while preserving the closeio-only overrides block for security pins on handlebars, fast-xml-parser, flatted, and lodash. Upstream already pins handlebars to ^4.7.9 in its direct deps, so the only behavioral difference left on this fork is the transitive overrides.
  • package-lock.json — regenerated from the resolved package.json via npm install --package-lock-only (npm 11.12.1, node 24.15.0).

Verification

$ grep -A1 '^runs:' action.yml
runs:
  using: 'node24'

alexshamrai and others added 30 commits March 21, 2026 10:59
* fix: upgrade action runtime from node20 to node24

* fix: upgrade actions/checkout from v4 to v6

* fix: update node engine requirement and @types/node to v24

* fix: update .node-version and devcontainer to node24
Bumps the npm_and_yarn group with 1 update in the / directory: [flatted](https://github.com/WebReflection/flatted).


Updates `flatted` from 3.3.1 to 3.4.2
- [Commits](WebReflection/flatted@v3.3.1...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@vercel/ncc](https://github.com/vercel/ncc) from 0.38.3 to 0.38.4.
- [Release notes](https://github.com/vercel/ncc/releases)
- [Commits](vercel/ncc@0.38.3...0.38.4)

---
updated-dependencies:
- dependency-name: "@vercel/ncc"
  dependency-version: 0.38.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…f-io#264)

Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.2.1 to 5.5.5.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/eslint-plugin-prettier@v5.2.1...v5.5.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the npm_and_yarn group with 1 update in the / directory: [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser).


Updates `fast-xml-parser` from 4.5.1 to 5.5.8
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](NaturalIntelligence/fast-xml-parser@v4.5.1...v5.5.8)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.5.8
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…o#272)

Bumps @isaacs/brace-expansion from 5.0.0 to 5.0.1.

---
updated-dependencies:
- dependency-name: "@isaacs/brace-expansion"
  dependency-version: 5.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
When previous run data exists but values haven't changed, the reports
were showing ±0 next to every metric. This was noisy and unhelpful.
Now only actual changes (↑/↓) are displayed.

Affected templates:
- summary-delta-table.hbs
- github.hbs
- fail-rate-table.hbs
- flaky-rate-table.hbs

Closes ctrf-io#273
…-io#266)

Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.9.0 to 29.15.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](jest-community/eslint-plugin-jest@v28.9.0...v29.15.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-version: 29.15.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@octokit/rest](https://github.com/octokit/rest.js) from 21.1.1 to 22.0.1.
- [Release notes](https://github.com/octokit/rest.js/releases)
- [Commits](octokit/rest.js@v21.1.1...v22.0.1)

---
updated-dependencies:
- dependency-name: "@octokit/rest"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [prettier-eslint](https://github.com/prettier/prettier-eslint) from 16.3.0 to 16.4.2.
- [Release notes](https://github.com/prettier/prettier-eslint/releases)
- [Changelog](https://github.com/prettier/prettier-eslint/blob/master/CHANGELOG.md)
- [Commits](prettier/prettier-eslint@v16.3.0...v16.4.2)

---
updated-dependencies:
- dependency-name: prettier-eslint
  dependency-version: 16.4.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.9.2 to 5.9.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](microsoft/TypeScript@v5.9.2...v5.9.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [yargs](https://github.com/yargs/yargs) from 17.7.2 to 18.0.0.
- [Release notes](https://github.com/yargs/yargs/releases)
- [Changelog](https://github.com/yargs/yargs/blob/main/CHANGELOG.md)
- [Commits](yargs/yargs@v17.7.2...v18.0.0)

---
updated-dependencies:
- dependency-name: yargs
  dependency-version: 18.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
…args-18.0.0

chore(deps): bump yargs from 17.7.2 to 18.0.0
* chore(deps): apply safe dependabot security updates

* chore(deps): upgrade @actions/artifact 2.3.2 → 5.0.3

Changes:
- @actions/artifact: 2.3.2 → 5.0.3
  Eliminates nested @octokit/request-error@2.1.0 (CVE fix).
  v5 depends directly on @octokit/request-error@^5.1.1.

- Add src/__mocks__/actions-artifact.ts
  v5's @actions/artifact has an updated internal octokit stack
  that Jest (CJS) needed a mock for; follows existing mock pattern.

- package.json: add @actions/artifact mock to moduleNameMapper

Skipped v6+ (ESM-only, incompatible with ncc bundler).

* chore(deps): upgrade glob 11.1.0 → 13.0.6
…s) (ctrf-io#288)

* add explicit permissions to all workflow jobs (fixes CodeQL alerts)
…dates (ctrf-io#289)

Bumps the npm_and_yarn group with 4 updates in the / directory: [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser), [brace-expansion](https://github.com/juliangruber/brace-expansion), [lodash](https://github.com/lodash/lodash) and [picomatch](https://github.com/micromatch/picomatch).


Updates `fast-xml-parser` from 5.5.8 to 5.7.2
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](NaturalIntelligence/fast-xml-parser@v5.5.8...v5.7.2)

Updates `brace-expansion` from 1.1.12 to 1.1.14
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](juliangruber/brace-expansion@v1.1.12...v1.1.14)

Updates `lodash` from 4.17.23 to 4.18.1
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.23...4.18.1)

Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-version: 5.7.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: brace-expansion
  dependency-version: 1.1.14
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: picomatch
  dependency-version: 2.3.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: migrate to ESM (vitest, tsup, eslint flat config)

- Add 'type: module' to package.json for native ESM
- Replace ncc with tsup (esbuild-based bundler with first-class ESM)
- Replace Jest/ts-jest with Vitest 3
- Replace ts-node with tsx
- Upgrade @actions/artifact from v5 to v6 (pure ESM)
- Add .js extensions to all relative imports (NodeNext requirement)
- Fix bare directory imports (from '.' → './index.js')
- Fix path alias imports to include .js extensions for NodeNext
- Replace __dirname with import.meta.dirname in reports/core.ts
- Add eslint.config.mjs (ESLint v9 flat config)
- Add tsconfig.eslint.json for linting test files with Vitest globals
- Update tsconfig.json excludes for new config files
- Delete .eslintignore (replaced by ignores in eslint.config.mjs)

All 89 tests pass. Full pipeline: format → lint → test → coverage → bundle ✓

* fix: set platform=node in tsup config to resolve Dynamic require error

* fix: add CJS globals banner to tsup config for ESM bundle compatibility

Bundle CJS deps (like @actions/core and yargs) need require(), __dirname
and __filename to be available in ESM scope. Add a banner that injects
these via createRequire and import.meta properties (Node 21.2+).

* fix: add @d2t/vitest-ctrf-json-reporter to generate ctrf/*.json for action self-test

* fix: resolve template basePath via existsSync instead of RUN_MODE to fix ESM import hoisting

* chore: remove CLI mode, yargs dependency, and RUN_MODE env var
…date (ctrf-io#291)

Bumps the npm_and_yarn group with 1 update in the / directory: [minimatch](https://github.com/isaacs/minimatch).


Updates `minimatch` from 9.0.5 to 9.0.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v9.0.5...v9.0.9)

Updates `minimatch` from 5.1.6 to 5.1.9
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v9.0.5...v9.0.9)

Updates `minimatch` from 10.0.3 to 10.2.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v9.0.5...v9.0.9)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 9.0.9
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: minimatch
  dependency-version: 5.1.9
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: minimatch
  dependency-version: 10.2.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* upgrade @actions/core to v3 and @actions/github to v9 (resolves undici CVEs)

* add check-build job to validate build artifacts before main build
* chore: upgrade all deps/devDeps to latest for v2 candidate

* chore: update coverage badge and rebuild dist files
* feat: migrate to ctrf package types with legacy adapter
Resolves package.json conflict by taking upstream dependency versions while keeping the closeio-specific 'overrides' block for security pins (handlebars, fast-xml-parser, flatted, lodash) intact. package-lock.json regenerated via 'npm install --package-lock-only'.

Upstream bumped the action runtime from node20 to node24 (see action.yml), which is what we're after.
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.

4 participants