Skip to content

Add EOL warnings for unsupported Node.js versions#1593

Closed
colincasey wants to merge 6 commits intomainfrom
ccasey/classic-eol-support
Closed

Add EOL warnings for unsupported Node.js versions#1593
colincasey wants to merge 6 commits intomainfrom
ccasey/classic-eol-support

Conversation

@colincasey
Copy link
Copy Markdown
Contributor

@colincasey colincasey commented Mar 27, 2026

Summary

  • Renamed resolve-version binary to nodejs-data-query with two clap subcommands:
    • supported-versions <inventory_path> — outputs JSON with current, active LTS, and maintenance LTS versions
    • resolve-version <inventory_path> <node_version> [--os] [--arch] — resolves version with EOL data
  • Uses nodejs-data crate types (NodejsInventoryWithSchedule) via git dependency
  • Inventory parsed with [[releases]] schedule format
  • JSON output includes eol_date and fail_build fields
  • Default LTS derived from schedule at runtime (no more hardcoded value)
  • Bash scripts use nodejs-data-query supported-versions + jq instead of grep/sed TOML parsing
  • EOL warnings/errors in bash match CNB messaging
  • Regenerated inventory with schedule format
  • Rebuilt vendor binary

Test plan

  • cargo test passes in nodejs-data-query/
  • Test deploy with Node.js 18.x shows EOL warning
  • Test deploy with Node.js 24.x shows no warning
  • Default version resolves to active LTS from inventory
  • make heroku-24-general TEST=testEolVersionWarning passes

W-21451598

@colincasey colincasey self-assigned this Mar 27, 2026
@colincasey colincasey marked this pull request as ready for review March 30, 2026 22:27
@colincasey colincasey requested a review from a team as a code owner March 30, 2026 22:27
@colincasey colincasey force-pushed the ccasey/classic-eol-support branch 2 times, most recently from 37edc89 to e63f109 Compare April 2, 2026 18:59
- resolve-version uses nodejs-data crate types via git dependency
- Inventory parsed as NodejsInventoryWithMetadata with release schedule
- JSON output includes eol_date and fail_build fields
- Default LTS read from inventory metadata (no more hardcoded value)
- Bash scripts emit EOL warnings/errors based on resolved version metadata
- Regenerated inventory with metadata section
- Rebuilt resolve-version vendor binary
Switch libherokubuildpack to published =0.30.3 crate and nodejs-data to
the ccasey/eol-support branch. Regenerate inventory with [schedule.vN]
table format replacing [[releases]] array format.
@colincasey colincasey force-pushed the ccasey/classic-eol-support branch from e63f109 to d51fc59 Compare April 2, 2026 19:03
@colincasey
Copy link
Copy Markdown
Contributor Author

closing this in favor of the stacked changes for #1621

@colincasey colincasey closed this Apr 17, 2026
@colincasey colincasey deleted the ccasey/classic-eol-support branch April 17, 2026 17:16
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