Skip to content

v9.0.0

  • v9.0.0
  • 0d094f6
  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
  • Choose a tag to compare

  • v9.0.0
  • 0d094f6
  • Choose a tag to compare

  • Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
@sorccu sorccu tagged this 31 Aug 15:06
* feat!: require Node.js >= 22.13.0 [RED-919]

Drop support for Node.js 20 (EOL since 30 Apr 2026) and raise the engines
floor from ^20.19.0 || >=22.12.0 to >=22.13.0. 22.13.0 rather than 22.12.0
because eslint 10 requires ^20.19.0 || ^22.13.0 || >=24, making 22.13.0 the
lowest Node 22 every current dependency supports.

- engines.node -> >=22.13.0 in checkly and create-checkly
- create-checkly preflight now compares the full version against the exact
  floor (previously major-only) via a dependency-free bin module, imports
  @oclif/core dynamically so ESM hoisting cannot crash inside a dependency
  before the friendly error, and is covered by a new node-floor spec that
  also asserts the two engines declarations stay in sync
- create-checkly ships bin/ explicitly now that bin/run is not the only file
  there (npm only auto-includes the bin entry point itself)
- .nvmrc v20.20.0 -> v22.23.2 (latest 22.x)
- CI setup-node pins 20.x -> 22.x (release.yml already on 24.x)
- fix stale "Node.js 18 or later" in the ai-context initialize reference
- update the Node-floor values in the update-dependencies command doc

BREAKING CHANGE: Node.js 20 is no longer supported; the minimum supported
runtime is now Node.js 22.13.0. Ships in the next major (v9).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(create-cli): handle dependency install failures gracefully [RED-919]

Previously a package-manager install that exited non-zero made the
bootstrap print "Packages installed successfully" (the completion promise
resolved on the child's close event regardless of exit code) and then
crash with an unhandled ExecaError, skipping git init and the next-steps
footer.

Await the install instead: on failure, fail the spinner with the short
error, hint that dependencies can be installed manually, and continue the
bootstrap flow — mirroring how `checkly import plan` handles the same
situation. The scaffolded project is already on disk and usable at that
point, so aborting served no one. The failure still surfaces to scripted
callers (non-interactive mode forces the install) through a non-zero exit
code.

This also removes the only use of the event-emitter interface of execa's
returned promise, which execa 10 drops.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(deps): update dependencies to the latest versions on the Node 22.13 floor [RED-919]

Bumps everything the new >=22.13.0 floor and the 2-day release-age
embargo allow. chalk 6, execa 10, nanoid 6, and recast 0.24 all require
Node >=22 and were previously held back by the Node 20 floor.

- chalk ^5.6.2 -> ^6.0.0 (checkly, create-checkly)
- execa ^9.6.1 -> ^10.0.1 (checkly, create-checkly)
- recast ^0.23.21 -> ^0.24.0 (checkly, create-checkly)
- open ^11.0.1 -> ^11.0.2 (checkly)
- nanoid ^5.1.16 -> ^6.0.1 (checkly, dev)
- @commitlint/cli, @commitlint/config-conventional ^20.5.3 -> ^21.2.2
  (root, dev)

execa 10 replaced cross-spawn/which with its own which-command resolver,
whose default PATHEXT list is wider; PathLookup now mirrors that list and
which-command's unset/empty PATHEXT semantics so the pruner's
missing-executable classification keeps agreeing with what execa actually
spawns, and stale cross-spawn attributions in comments were rewritten.

Held back / excluded:
- lint-staged stays 16.4.0: 17.x requires Node >=22.22.1, above our floor
- typescript stays 6.0.3: typescript-eslint 8.68.0 peers allow <6.1.0
- vitest stays 3.2.7 (latest 3.x): v4 remains blocked by policy
- @types/node untouched by policy (pinned near the floor major)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Assets 2
Loading