chore: upgrade to Node.js 24 LTS and Debian Trixie#668
Merged
JamieMagee merged 3 commits intomasterfrom Jan 26, 2026
Merged
Conversation
Contributor
Author
Docker Build FixThe initial Docker build was failing because Debian Trixie implements PEP 668 (Externally Managed Environments). What is PEP 668?PEP 668 marks the system Python installation as "externally managed" to prevent conflicts between system packages (installed via When you try to run FixAdded # Before
RUN pip3 install scancode-toolkit==$SCANCODE_VERSION
# After
RUN pip3 install --break-system-packages scancode-toolkit==$SCANCODE_VERSION |
013f0b5 to
02e8194
Compare
qtomlinson
approved these changes
Jan 24, 2026
02e8194 to
9d52aa4
Compare
qtomlinson
approved these changes
Jan 26, 2026
Upgrade the project from Node.js 18 to Node.js 24 LTS and from Debian Bullseye to Debian Trixie. Node.js 18 reached end of life on April 30, 2025. Node.js 24 LTS is supported until April 30, 2028. Debian 11 (Bullseye) active support ended August 14, 2024, with LTS support ending August 31, 2026. Debian 13 (Trixie) is supported until August 2028, with LTS until June 2030. Changes: - Update Docker base images to node:24-trixie - Update CI workflow to use Node.js 24 - Update TypeScript and type definitions for Node.js 24 - Add npm override for lzma-native@^8.0.6 to fix native addon compatibility (decompress-tarxz depends on an older version using nan bindings which are incompatible with Node.js 24's V8 API)
Debian Trixie implements PEP 668 (Externally Managed Environments), which marks the system Python as externally managed. This prevents pip from installing packages system-wide without explicitly opting in. Add --break-system-packages flag to all pip3 install commands to allow installation in the Docker container environment.
Debian Trixie installs pip via apt, which doesn't create a RECORD file. This prevents pip from uninstalling itself when trying to upgrade. Since Debian Trixie ships with pip 25.1.1, which is recent enough for scancode-toolkit, we can simply skip the pip/setuptools/wheel upgrade.
9d52aa4 to
8c7edea
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrade the project from Node.js 18 to Node.js 24 LTS and from Debian Bullseye to Debian Trixie.
Motivation
Node.js
Debian
Changes
node:18-bullseyetonode:24-trixieoverridesforlzma-native@^8.0.6to fix native addon compatibilitydecompress-tarxzdepends onlzma-native@^4.xwhich usesnanbindingsnanis incompatible with Node.js 24's V8 APIlzma-native@8.xuses N-API which is Node version-agnosticReferences