Upstream update available: nodejs 24.12.0 → 25.9.0 #1

Open
opened 2026-04-28 01:36:02 +03:00 by sbelikov · 0 comments
Owner

Upstream update available: nodejs 24.12.025.9.0

Package

  • Package: nodejs
  • RPM name: nodejs
  • Branch: niceos-5.2
  • Current EVR: 24.12.0-1
  • Update class: major
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: github-upstream

Upstream

Signals

  • Security-relevant keywords detected: True
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/high, security-release, update/major, upstream-update, upstream/github

NiceSOFT AI preliminary analysis

1. Краткий вывод

Обновление пакета nodejs с версии 24.12.0 до 25.9.0 является мажорным (major), что подразумевает потенциальные несовместимые изменения в ABI/API. В релиз-нотах зафиксированы существенные изменения в модуле тестирования (mock.module) и удаление зависимости от устаревшего модуля domain. Также обнаружены обновления криптографических алгоритмов и зависимостей, включая поддержку OpenSSL 4.0.

2. Риск для НАЙС.ОС

high.
Переход между мажорными версиями Node.js (24.x -> 25.x) часто сопровождается изменениями в нативном коде и API, которые могут нарушить работу пользовательских модулей или встроенных компонентов дистрибутива. Наличие изменений в mock.module требует проверки внутренних тестовых фреймворков системы. Обновление криптографии и зависимостей (OpenSSL 4.0) несет риски нестабильности сборки и работы приложений, если они жестко привязаны к специфичным версиям библиотек.

3. Security/CVE

Во входных данных нет явных идентификаторов CVE или прямых упоминаний исправлений уязвимостей (security fixes).
Присутствует флаг security_keywords_detected_by_script: True, однако текст релиз-нот и список коммитов не содержат конкретных названий уязвимостей или номеров CVE. Упоминания относятся к функциональным улучшениям (добавление алгоритмов TurboSHAKE/KangarooTwelve, обновление корневых сертификатов NSS), а не к патчам известных дыр.

4. ABI/API риск

Высокий риск, требующий ручного анализа.

  • API Breaking Changes: Удаление модуля domain и изменение сигнатуры опций MockModuleOptions могут сломать код, использующий эти интерфейсы напрямую.
  • ABI Changes: Коммит 02980b8c8f указывает на изменение внутреннего поля context_frame в AsyncWrap, что является прямым изменением ABI. Коммит 02980b8c8f также упоминает конвертацию полей, что часто требует пересборки нативных модулей.
  • OpenSSL 4.0: Поддержка компиляции/линковки с OpenSSL 4.0 может изменить структуру данных или поведение криптографических функций, влияя на совместимость с существующими нативными расширениями.

5. Риск для RPM-сборки

  • BuildRequires: Возможно потребуется обновление openssl-devel до версии 4.0 или выше, если текущая сборка дистрибутива использует старую версию OpenSSL.
  • %check: Тесты, использующие mock.module или модуль domain, могут начать падать из-за изменений в их интерфейсах.
  • Патчи: Существующие патчи, применяющие хуки на уровне domain или специфичные настройки mock.module, могут перестать работать корректно.

6. Проверки мейнтейнера

  • Проверить наличие в системе кодов, использующих require('domain') или domain.createDomain().
  • Протестировать внутренние модули, использующие mock.module (проверить миграцию через codemod).
  • Проверить совместимость текущего openssl-devel в репозитории с требованием OpenSSL 4.0 (коммит 02980b8c8f).
  • Запустить %check секцию сборки с флагом строгости, чтобы выявить падения тестов из-за изменений в AsyncLocalStorage или mock.module.
  • Проверить нативные расширения дистрибутива на предмет использования удаленных или измененных API.

7. Рекомендация

blocked manual review

8. Основание рекомендации

Мажорное обновление (24.x -> 25.x) с подтвержденными изменениями ABI (внутренние структуры AsyncWrap) и критическими изменениями публичного API (удаление domain, рефакторинг mock.module) не может быть применено автоматически. Необходима ручная верификация совместимости с нативными расширениями и внутренними компонентами ОС перед разрешением обновления.

Upstream release notes / description

Notable Changes

Test runner module mocking improvements

MockModuleOptions.defaultExport and MockModuleOptions.namedExports have been
consolidated into a single option MockModuleOptions.exports to align with user
expectations and other test runners.

A default property on MockModuleOptions.exports represents the default
export, and own enumerable properties are treated as named exports.

An automated migration is available to update user code:
https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports

npx codemod @nodejs/mock-module-exports

Contributed by sangwook in #61727.

Other notable changes

  • [312476cb84] - (SEMVER-MINOR) async_hooks: add using scopes to AsyncLocalStorage (Stephen Belanger) #61674
  • [62d2cd473b] - (SEMVER-MINOR) cli: add --max-heap-size option (tannal) #58708
  • [d0ebf0e44b] - (SEMVER-MINOR) crypto: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) #62183
  • [f85b9d9fa8] - (SEMVER-MINOR) repl: add customizable error handling (Anna Henningsen) #62188
  • [67b854d407] - (SEMVER-MINOR) repl: remove dependency on node:domain (Matteo Collina) #61227
  • [966b700623] - (SEMVER-MINOR) sea: support code cache for ESM entrypoint in SEA (Joyee Cheung) #62158
  • [e1f0d2a014] - (SEMVER-MINOR) stream: add stream/iter Implementation (James M Snell) #62066

Commits

  • [312476cb84] - (SEMVER-MINOR) async_hooks: add using scopes to AsyncLocalStorage (Stephen Belanger) #61674
  • [bfff8cb2ab] - (SEMVER-MINOR) benchmark: add benchmarks for experimental stream/iter (James M Snell) #62066
  • [c721d68502] - benchmark: fix destructuring in dgram/single-buffer (Ali Hassan) #62084
  • [e2f03c8e92] - buffer: improve performance of multiple Buffer operations (Ali Hassan) #61871
  • [2fcd07f1ba] - build: support empty libname flags in configure.py (Antoine du Hamel) #62477
  • [b800c57fce] - build: fix timezone-update path references (Chengzhong Wu) #62280
  • [7dc5a1e9b4] - build: skip dockit on IBMi (SRAVANI GUNDEPALLI) #62189
  • [f0eea0f905] - build: fix --node-builtin-modules-path (Filip Skokan) #62115
  • [62d2cd473b] - (SEMVER-MINOR) cli: add --max-heap-size option (tannal) #58708
  • [ac4b485698] - crypto: update root certificates to NSS 3.121 (Node.js GitHub Bot) #62485
  • [d0ebf0e44b] - (SEMVER-MINOR) crypto: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) #62183
  • [3009980d9d] - crypto: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) #62254
  • [f5725ca81d] - crypto: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) #62218
  • [f69ed4bc3f] - crypto: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) #61875
  • [4d96e53570] - crypto: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) #62169
  • [93d77719e8] - crypto: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) #62170
  • [3d2e23a981] - deps: update ada to 3.4.4 (Node.js GitHub Bot) #62414
  • [176d6d2205] - deps: update timezone to 2026a (Node.js GitHub Bot) #62164
  • [95c7fc67ba] - deps: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) [#62484](https://github.com/nodejs/node/p

...[truncated 16634 chars]

NiceOS maintainer checklist

  • Confirm that the detected version is a stable upstream release.
  • Check upstream changelog for security fixes, ABI/API changes and build-system changes.
  • Check ABI/API compatibility and reverse dependencies.
  • Download source into NiceOS lookaside storage.
  • Update Version and related fields in SPECS/*.spec only if policy allows it.
  • Regenerate SOURCES/sources.lock.json, manifests, metadata and SBOM.
  • Build SRPM/RPM in a clean NiceOS buildroot.
  • Run package smoke tests.
  • Link PR/build logs and close this issue after update or triage.

Bot metadata

  • Tool: niceos_upstream_monitor.py 1.4
  • Generated at: 2026-04-28T23:37:17Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:nodejs:25.9.0 --> <!-- niceos-upstream-monitor:package=nodejs --> <!-- niceos-upstream-monitor:current=24.12.0 --> <!-- niceos-upstream-monitor:latest=25.9.0 --> # Upstream update available: `nodejs` `24.12.0` → `25.9.0` ## Package - Package: `nodejs` - RPM name: `nodejs` - Branch: `niceos-5.2` - Current EVR: `24.12.0-1` - Update class: `major` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `github-upstream` ## Upstream - Upstream type: `github` - Upstream project: `nodejs/node` - Upstream URL: https://github.com/nodejs/node - Detected version: `25.9.0` - Tag/release: `v25.9.0` - Source: `github_release_latest` - Published: `2026-04-01T14:45:58Z` - Release URL: https://github.com/nodejs/node/releases/tag/v25.9.0 - Source URL: https://api.github.com/repos/nodejs/node/tarball/v25.9.0 - Pre-release: `False` ## Signals - Security-relevant keywords detected: `True` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/high, security-release, update/major, upstream-update, upstream/github` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Обновление пакета `nodejs` с версии 24.12.0 до 25.9.0 является мажорным (major), что подразумевает потенциальные несовместимые изменения в ABI/API. В релиз-нотах зафиксированы существенные изменения в модуле тестирования (`mock.module`) и удаление зависимости от устаревшего модуля `domain`. Также обнаружены обновления криптографических алгоритмов и зависимостей, включая поддержку OpenSSL 4.0. ### 2. Риск для НАЙС.ОС **high**. Переход между мажорными версиями Node.js (24.x -> 25.x) часто сопровождается изменениями в нативном коде и API, которые могут нарушить работу пользовательских модулей или встроенных компонентов дистрибутива. Наличие изменений в `mock.module` требует проверки внутренних тестовых фреймворков системы. Обновление криптографии и зависимостей (OpenSSL 4.0) несет риски нестабильности сборки и работы приложений, если они жестко привязаны к специфичным версиям библиотек. ### 3. Security/CVE Во входных данных **нет явных идентификаторов CVE** или прямых упоминаний исправлений уязвимостей (security fixes). Присутствует флаг `security_keywords_detected_by_script: True`, однако текст релиз-нот и список коммитов не содержат конкретных названий уязвимостей или номеров CVE. Упоминания относятся к функциональным улучшениям (добавление алгоритмов TurboSHAKE/KangarooTwelve, обновление корневых сертификатов NSS), а не к патчам известных дыр. ### 4. ABI/API риск **Высокий риск**, требующий ручного анализа. - **API Breaking Changes**: Удаление модуля `domain` и изменение сигнатуры опций `MockModuleOptions` могут сломать код, использующий эти интерфейсы напрямую. - **ABI Changes**: Коммит `02980b8c8f` указывает на изменение внутреннего поля `context_frame` в `AsyncWrap`, что является прямым изменением ABI. Коммит `02980b8c8f` также упоминает конвертацию полей, что часто требует пересборки нативных модулей. - **OpenSSL 4.0**: Поддержка компиляции/линковки с OpenSSL 4.0 может изменить структуру данных или поведение криптографических функций, влияя на совместимость с существующими нативными расширениями. ### 5. Риск для RPM-сборки - **BuildRequires**: Возможно потребуется обновление `openssl-devel` до версии 4.0 или выше, если текущая сборка дистрибутива использует старую версию OpenSSL. - **%check**: Тесты, использующие `mock.module` или модуль `domain`, могут начать падать из-за изменений в их интерфейсах. - **Патчи**: Существующие патчи, применяющие хуки на уровне `domain` или специфичные настройки `mock.module`, могут перестать работать корректно. ### 6. Проверки мейнтейнера - [ ] Проверить наличие в системе кодов, использующих `require('domain')` или `domain.createDomain()`. - [ ] Протестировать внутренние модули, использующие `mock.module` (проверить миграцию через `codemod`). - [ ] Проверить совместимость текущего `openssl-devel` в репозитории с требованием OpenSSL 4.0 (коммит `02980b8c8f`). - [ ] Запустить `%check` секцию сборки с флагом строгости, чтобы выявить падения тестов из-за изменений в `AsyncLocalStorage` или `mock.module`. - [ ] Проверить нативные расширения дистрибутива на предмет использования удаленных или измененных API. ### 7. Рекомендация **blocked manual review** ### 8. Основание рекомендации Мажорное обновление (24.x -> 25.x) с подтвержденными изменениями ABI (внутренние структуры `AsyncWrap`) и критическими изменениями публичного API (удаление `domain`, рефакторинг `mock.module`) не может быть применено автоматически. Необходима ручная верификация совместимости с нативными расширениями и внутренними компонентами ОС перед разрешением обновления. ## Upstream release notes / description ### Notable Changes #### Test runner module mocking improvements `MockModuleOptions.defaultExport` and `MockModuleOptions.namedExports` have been consolidated into a single option `MockModuleOptions.exports` to align with user expectations and other test runners. A `default` property on `MockModuleOptions.exports` represents the default export, and own enumerable properties are treated as named exports. An automated migration is available to update user code: <https://github.com/nodejs/userland-migrations/tree/main/recipes/mock-module-exports> ```bash npx codemod @nodejs/mock-module-exports ``` Contributed by sangwook in [#61727](https://github.com/nodejs/node/pull/61727). #### Other notable changes * \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async\_hooks**: add using scopes to `AsyncLocalStorage` (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674) * \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add `--max-heap-size` option (tannal) [#58708](https://github.com/nodejs/node/pull/58708) * \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add `TurboSHAKE` and `KangarooTwelve` Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183) * \[[`f85b9d9fa8`](https://github.com/nodejs/node/commit/f85b9d9fa8)] - **(SEMVER-MINOR)** **repl**: add customizable error handling (Anna Henningsen) [#62188](https://github.com/nodejs/node/pull/62188) * \[[`67b854d407`](https://github.com/nodejs/node/commit/67b854d407)] - **(SEMVER-MINOR)** **repl**: remove dependency on `node:domain` (Matteo Collina) [#61227](https://github.com/nodejs/node/pull/61227) * \[[`966b700623`](https://github.com/nodejs/node/commit/966b700623)] - **(SEMVER-MINOR)** **sea**: support code cache for ESM entrypoint in SEA (Joyee Cheung) [#62158](https://github.com/nodejs/node/pull/62158) * \[[`e1f0d2a014`](https://github.com/nodejs/node/commit/e1f0d2a014)] - **(SEMVER-MINOR)** **stream**: add stream/iter Implementation (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) ### Commits * \[[`312476cb84`](https://github.com/nodejs/node/commit/312476cb84)] - **(SEMVER-MINOR)** **async\_hooks**: add using scopes to AsyncLocalStorage (Stephen Belanger) [#61674](https://github.com/nodejs/node/pull/61674) * \[[`bfff8cb2ab`](https://github.com/nodejs/node/commit/bfff8cb2ab)] - **(SEMVER-MINOR)** **benchmark**: add benchmarks for experimental stream/iter (James M Snell) [#62066](https://github.com/nodejs/node/pull/62066) * \[[`c721d68502`](https://github.com/nodejs/node/commit/c721d68502)] - **benchmark**: fix destructuring in dgram/single-buffer (Ali Hassan) [#62084](https://github.com/nodejs/node/pull/62084) * \[[`e2f03c8e92`](https://github.com/nodejs/node/commit/e2f03c8e92)] - **buffer**: improve performance of multiple Buffer operations (Ali Hassan) [#61871](https://github.com/nodejs/node/pull/61871) * \[[`2fcd07f1ba`](https://github.com/nodejs/node/commit/2fcd07f1ba)] - **build**: support empty libname flags in `configure.py` (Antoine du Hamel) [#62477](https://github.com/nodejs/node/pull/62477) * \[[`b800c57fce`](https://github.com/nodejs/node/commit/b800c57fce)] - **build**: fix timezone-update path references (Chengzhong Wu) [#62280](https://github.com/nodejs/node/pull/62280) * \[[`7dc5a1e9b4`](https://github.com/nodejs/node/commit/7dc5a1e9b4)] - **build**: skip dockit on IBMi (SRAVANI GUNDEPALLI) [#62189](https://github.com/nodejs/node/pull/62189) * \[[`f0eea0f905`](https://github.com/nodejs/node/commit/f0eea0f905)] - **build**: fix --node-builtin-modules-path (Filip Skokan) [#62115](https://github.com/nodejs/node/pull/62115) * \[[`62d2cd473b`](https://github.com/nodejs/node/commit/62d2cd473b)] - **(SEMVER-MINOR)** **cli**: add --max-heap-size option (tannal) [#58708](https://github.com/nodejs/node/pull/58708) * \[[`ac4b485698`](https://github.com/nodejs/node/commit/ac4b485698)] - **crypto**: update root certificates to NSS 3.121 (Node.js GitHub Bot) [#62485](https://github.com/nodejs/node/pull/62485) * \[[`d0ebf0e44b`](https://github.com/nodejs/node/commit/d0ebf0e44b)] - **(SEMVER-MINOR)** **crypto**: add TurboSHAKE and KangarooTwelve Web Cryptography algorithms (Filip Skokan) [#62183](https://github.com/nodejs/node/pull/62183) * \[[`3009980d9d`](https://github.com/nodejs/node/commit/3009980d9d)] - **crypto**: add crypto::GetSSLCtx API for addon access to OpenSSL contexts (Tim Perry) [#62254](https://github.com/nodejs/node/pull/62254) * \[[`f5725ca81d`](https://github.com/nodejs/node/commit/f5725ca81d)] - **crypto**: reject ML-KEM/ML-DSA PKCS#8 import without seed in SubtleCrypto (Filip Skokan) [#62218](https://github.com/nodejs/node/pull/62218) * \[[`f69ed4bc3f`](https://github.com/nodejs/node/commit/f69ed4bc3f)] - **crypto**: rename CShakeParams and KmacParams length to outputLength (Filip Skokan) [#61875](https://github.com/nodejs/node/pull/61875) * \[[`4d96e53570`](https://github.com/nodejs/node/commit/4d96e53570)] - **crypto**: refactor WebCrypto AEAD algorithms auth tag handling (Filip Skokan) [#62169](https://github.com/nodejs/node/pull/62169) * \[[`93d77719e8`](https://github.com/nodejs/node/commit/93d77719e8)] - **crypto**: read algorithm name property only once in normalizeAlgorithm (Filip Skokan) [#62170](https://github.com/nodejs/node/pull/62170) * \[[`3d2e23a981`](https://github.com/nodejs/node/commit/3d2e23a981)] - **deps**: update ada to 3.4.4 (Node.js GitHub Bot) [#62414](https://github.com/nodejs/node/pull/62414) * \[[`176d6d2205`](https://github.com/nodejs/node/commit/176d6d2205)] - **deps**: update timezone to 2026a (Node.js GitHub Bot) [#62164](https://github.com/nodejs/node/pull/62164) * \[[`95c7fc67ba`](https://github.com/nodejs/node/commit/95c7fc67ba)] - **deps**: update googletest to 2461743991f9aa53e9a3625eafcbacd81a3c74cd (Node.js GitHub Bot) [#62484](https://github.com/nodejs/node/p ...[truncated 16634 chars] ## NiceOS maintainer checklist - [ ] Confirm that the detected version is a stable upstream release. - [ ] Check upstream changelog for security fixes, ABI/API changes and build-system changes. - [ ] Check ABI/API compatibility and reverse dependencies. - [ ] Download source into NiceOS lookaside storage. - [ ] Update `Version` and related fields in `SPECS/*.spec` only if policy allows it. - [ ] Regenerate `SOURCES/sources.lock.json`, manifests, metadata and SBOM. - [ ] Build SRPM/RPM in a clean NiceOS buildroot. - [ ] Run package smoke tests. - [ ] Link PR/build logs and close this issue after update or triage. ## Bot metadata - Tool: `niceos_upstream_monitor.py 1.4` - Generated at: `2026-04-28T23:37:17Z`
Sign in to join this conversation.
No description provided.