Skip to content

[Maintenance] Update Node.js and npm version requirements to Node 22+ and npm 11+ #787

@tibiii

Description

@tibiii

name: "🧹 Maintenance"
about: "Update minimum Node.js and npm version requirements due to Node 18 EOL"
labels: [type:chore, area:maintenance, status:needs-triage]
assignees: []
projects: []
milestone: ""
file_type: maintenance

Maintenance / Chore Summary

Node 18 reached End of Life (EOL) in April 2025. The project should update its minimum version requirements to Node 20 or Node 22, along with npm 11, to ensure developers use supported and secure tooling.

All development tools work correctly with Node 22 and npm 11, making this a safe update that also helps prevent future compatibility issues.

Steps / Checklist

  • Update package.json to add engine constraints:
    {
      "engines": {
        "node": ">=22.0.0",
        "npm": ">=11.0.0"
      }
    }
  • Update .nvmrc file (if exists) to specify Node 22
  • Update any CI/CD workflows (GitHub Actions) to use Node 22
  • Update README.md development requirements section
  • Update any Codespaces/DevContainer configurations to use Node 22
  • Test all npm scripts with Node 22 and npm 11
  • Verify build process completes successfully
  • Verify all tests pass

Rationale

  • Node 18 EOL: Node 18 reached End of Life in April 2025 and no longer receives security updates
  • LTS Support: Node 22 is the current Active LTS (until April 2027)
  • Compatibility: All project tools and dependencies work correctly with Node 22 and npm 11
  • Developer Experience: Engine constraints in package.json prevent developers from accidentally using incompatible versions

Acceptance Criteria

  • package.json contains engine constraints for Node >=22.0.0 and npm >=11.0.0
  • CI/CD workflows use Node 22
  • All npm scripts execute successfully on Node 22
  • Build process completes without errors
  • All tests pass
  • Documentation updated to reflect new requirements
  • PR uses correct branch prefix (maintenance/ or chore/)
  • Approved by at least one maintainer

Additional Context

Current Node.js LTS Schedule:

  • Node 18: EOL April 2025 ❌
  • Node 20: Maintenance LTS until April 2026
  • Node 22: Active LTS until April 2027 ✅ (Recommended)
  • Node 24: Current release (not recommended for production)

npm Version Notes:

  • npm 11 provides improved performance and security
  • npm 11 is the default package manager for Node 22

References


Definition of Ready (DoR)

  • Task/goal described and scoped
  • Steps/checklist listed
  • Acceptance criteria listed
  • Estimate added (if applicable)

Definition of Done (DoD)

  • Task completed and documented
  • Documentation/changelog updated if needed
  • PR uses correct branch prefix (maintenance/ or chore/)
  • Approved by at least one maintainer

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    Needs Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions