‘fedify init’ currently doesn’t verify that the corresponding runtime version is compatible with Fedify. This can lead to initialise with unsupported versions of Deno, Node.js, or Bun.
The current minimum versions declared by @fedify/fedify are:
- Deno 2.0.0
- Node.js 22.0.0
- Bun 1.1.0
Some frameworks can impose stricter requirements. For example, Astro currently requires Node.js 22.12 or later.
Proposed behaviour
After all initialisation options have been resolved, but before creating begins, it should detect and validate the selected runtime version.
When the runtime is unsupported, the initialiser should show the detected runtime and its version, the minimum required version, and etc.
Interactive initialisation could return to package manager selection, while non-interactive initialisation should exit with an actionable error.
Acceptance criteria
- Runtime minimum versions are defined in one shared location.
- Deno, Node.js, and Bun versions are checked before files are generated.
- Framework-specific minimum versions can raise the base Fedify requirement.
- Missing, malformed, and unsupported runtime versions produce clear errors.
- Tests cover versions below, equal to, and above each minimum.
- Existing Deno Temporal configuration for versions earlier than 2.7 remains supported.
‘fedify init’ currently doesn’t verify that the corresponding runtime version is compatible with Fedify. This can lead to initialise with unsupported versions of Deno, Node.js, or Bun.
The current minimum versions declared by
@fedify/fedifyare:Some frameworks can impose stricter requirements. For example, Astro currently requires Node.js 22.12 or later.
Proposed behaviour
After all initialisation options have been resolved, but before creating begins, it should detect and validate the selected runtime version.
When the runtime is unsupported, the initialiser should show the detected runtime and its version, the minimum required version, and etc.
Interactive initialisation could return to package manager selection, while non-interactive initialisation should exit with an actionable error.
Acceptance criteria