feat: move v20 to deprecated versions#1941
Conversation
WalkthroughThis PR updates Node.js version support across CI workflows, script generators, and documentation. Active testing and generation now covers versions 22, 24, 25, and 26 (dropping 20), while the deprecated workflow adds 20 alongside 16 and 18 to test end-of-life versions. All related documentation is updated to reflect the new support matrix. ChangesNode.js Version Support Update
🎯 2 (Simple) | ⏱️ ~10 minutes Possibly Related PRs
Suggested Reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/rpm/script_generator/README.md`:
- Line 40: The Node.js version lists are inconsistent between the generator and
CI; update the generator to match CI by changing occurrences of "23.x" to "22.x"
in the generator artifacts: edit the versions array/list in generator.sh (the
variable that enumerates 23.x,24.x,25.x,26.x) and update the README sentence
that describes the generated scripts to say 22.x instead of 23.x; alternatively,
if you prefer CI change, update the RPM job matrix.version in ci.yaml to include
23 (so it becomes [22, 23, 24, 25, 26]) to match generator.sh and README.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: a6b75f4e-f7c8-4a5b-b7c2-240c277ef7b0
📒 Files selected for processing (6)
.github/workflows/ci.yaml.github/workflows/deprecated.yamlDEV_README.mdscripts/deb/script_generator/README.mdscripts/deb/script_generator/generator.shscripts/rpm/script_generator/README.md
| ``` | ||
|
|
||
| This script iterates over a list of versions (currently 18.x, 20.x, and 21.x), and creates a new script for each version with the updated base script. It also creates setup_current and setup_latest scripts for the current and latest versions of Node.js, respectively. | ||
| This script iterates over a list of versions (currently 23.x, 24.x, 25.x, and 26.x), and creates a new script for each version with the updated base script. It also creates setup_lts and setup_current scripts for the LTS and current versions of Node.js, respectively. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# List relevant files
ls -la scripts/rpm/script_generator/README.md .github/workflows/ci.yaml
# Show the README snippet around line 40
echo "=== README.md around line 35-50 ==="
nl -ba scripts/rpm/script_generator/README.md | sed -n '30,55p'
# Show CI workflow around the RPM matrix section (look for "rpm" and "matrix")
echo "=== ci.yaml around RPM matrix (searching) ==="
nl -ba .github/workflows/ci.yaml | sed -n '1,220p' | rg -n "rpm|RPM|setup_|matrix|versions|\[ *[0-9, ]+ *\]" || true
# More targeted: print the RPM job block if present
echo "=== ci.yaml: find lines containing 'rpm' and 'matrix' ==="
rg -n "rpm|RPM" .github/workflows/ci.yaml
echo "=== ci.yaml: find 'matrix' block near RPM ==="
rg -n "matrix" .github/workflows/ci.yaml
# Extract exact versions list for RPM if pattern exists
echo "=== ci.yaml: search for a versions array that includes 22/23 ==="
rg -n "\\[\\s*22\\s*,|\\[\\s*23\\s*,|22\\s*,\\s*24|versions" .github/workflows/ci.yaml || true
# Search RPM script generator code for version lists (22/23)
echo "=== Search rpm script generator code for 22/23 ==="
rg -n "23\\.|22\\.|\\b23\\b|\\b22\\b" scripts/rpm/script_generator || true
echo "=== Search entire rpm generator directory for 'versions' or 'NODE' ==="
rg -n "versions|NODE_VERSION|setup_" scripts/rpm/script_generator || true
# Identify generator source file(s)
echo "=== List scripts/rpm/script_generator directory ==="
find scripts/rpm/script_generator -maxdepth 2 -type f -printRepository: nodesource/distributions
Length of output: 330
🏁 Script executed:
#!/bin/bash
set -euo pipefail
show_numbered() { awk '{printf "%d\t%s\n", NR, $0}' "$1"; }
echo "=== Files present ==="
ls -la .github/workflows/ci.yaml scripts/rpm/script_generator/README.md || true
echo
echo "=== README.md around lines 30-55 ==="
show_numbered scripts/rpm/script_generator/README.md | sed -n '30,55p'
echo
echo "=== ci.yaml: find RPM-related blocks ==="
rg -n "rpm|RPM|matrix|setup_" .github/workflows/ci.yaml || true
echo
echo "=== ci.yaml: print lines ~90-140 (likely around RPM job) ==="
show_numbered .github/workflows/ci.yaml | sed -n '90,160p'
echo
echo "=== ci.yaml: extract any 'versions' arrays containing 22 or 23 ==="
rg -n "\\bversions\\b|\\[\\s*22\\s*,|\\[\\s*23\\s*," .github/workflows/ci.yaml || true
echo
echo "=== List files under scripts/rpm/script_generator ==="
find scripts/rpm/script_generator -maxdepth 3 -type f -print
echo
echo "=== Search rpm generator directory for version lists (22/23/24/25/26) ==="
rg -n "\\b(22|23|24|25|26)(?:\\.|\\b)" scripts/rpm/script_generator || true
rg -n "versions|version|NODE_VERSION|setup_" scripts/rpm/script_generator || trueRepository: nodesource/distributions
Length of output: 13686
Align RPM Node version lists across generator and CI
scripts/rpm/script_generator/README.md (line 40) and scripts/rpm/script_generator/generator.sh generate setup_23.x–setup_26.x, but .github/workflows/ci.yaml RPM job tests matrix.version: [ 22, 24, 25, 26 ] (line 108). Update either the generator/README to use 22.x instead of 23.x, or adjust the RPM CI matrix to include 23.x so all three stay consistent.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@scripts/rpm/script_generator/README.md` at line 40, The Node.js version lists
are inconsistent between the generator and CI; update the generator to match CI
by changing occurrences of "23.x" to "22.x" in the generator artifacts: edit the
versions array/list in generator.sh (the variable that enumerates
23.x,24.x,25.x,26.x) and update the README sentence that describes the generated
scripts to say 22.x instead of 23.x; alternatively, if you prefer CI change,
update the RPM job matrix.version in ci.yaml to include 23 (so it becomes [22,
23, 24, 25, 26]) to match generator.sh and README.
Summary
Moves Node.js v20 from the active/supported lane to deprecated (EOL), following the same pattern used for v18 in #1911.
Changes
.github/workflows/ci.yaml: remove20from the deb, rpm and rpm-minimal test matrices..github/workflows/deprecated.yaml: add20to the deb and rpm deprecated matrices.scripts/deb/script_generator/generator.sh: drop"20"from the regenerated versions array (the existingsetup_20.xscripts stay in place for current users, same assetup_16.x/setup_18.x).DEV_README.md: FAQ active versions updated to22, 24, 25, 26; v18 and v20 install sections flagged as deprecated/EOL.scripts/{deb,rpm}/script_generator/README.md: refresh stale LTS/current info (LTS 24.x, current 26.x), fixsetup_latest→setup_ltsnaming, update the iterated version list and examples.Notes
setup_20.x(deb & rpm) are intentionally kept on disk; they are no longer regenerated but still work for existing users.ubuntu:20.04,debian:10,fedora:29,amazonlinux:2023) — worth watching in case those jobs need a newer OS matrix.Summary by CodeRabbit
Documentation
Chores