Upstream update available: esbuild 0.27.2 → 0.28.0 #2

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

Upstream update available: esbuild 0.27.20.28.0

Package

  • Package: esbuild
  • RPM name: esbuild
  • Branch: niceos-5.2
  • Current EVR: 0.27.2-1
  • Update class: minor
  • Compare method: python_rpm
  • Update policy: leaf
  • Risk tags: github-upstream

Upstream

Signals

  • Security-relevant keywords detected: False
  • Policy blocked: False
  • Policy reason: -
  • Labels: ai-summary, bot, needs-build, needs-triage, priority/medium, update/minor, upstream-update, upstream/github

NiceSOFT AI preliminary analysis

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

Обновление включает поддержку нового стандарта ES модулей (with { type: 'text' }), внедрение проверки целостности при скачивании бинарников через npm и смену версии компилятора Go с 1.25.7 на 1.26.1. Изменение Go-компилятора затрагивает внутреннюю работу сборщика (новый GC, формат линкера), что потенциально влияет на поведение сгенерированных бинарников.

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

medium.
Хотя обновление помечено как minor, замена Go-компилятора на версию 1.26.1 с новым сборщиком мусора и измененным форматом линкера создает риск несовместимости с существующими бинарными артефактами или специфичными кейсами использования, которые могут проявиться только после пересборки. Внедрение integrity checks является улучшением безопасности, но изменение логики установки (fallback path) требует тестирования.

3. Security/CVE

Во входных данных отсутствуют явные упоминания CVE или прямые указания на уязвимости. Упоминание "integrity checks" относится к защите от подмены файлов при установке, а не к исправлению конкретной уязвимости в коде. Признаков security-critical обновления в тексте нет.

4. ABI/API риск

Нужен ручной ABI/API анализ.
Смена Go-компилятора на 1.26.1 с новым garbage collector и изменениями в формате линкера теоретически может изменить поведение программы в граничных случаях (edge cases), даже если функциональность API не изменилась явно. Для библиотеки esbuild это означает необходимость проверки корректности работы сгенерированных бинарников в различных сценариях.

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

Вероятны изменения в процессе сборки из-за зависимости от новой версии Go (1.26.1). Необходимо проверить:

  • Актуальность BuildRequires: go (версия может быть жестко задана или требовать обновления).
  • Корректность работы %check и тестовых сценариев с новым компилятором.
  • Возможность успешной сборки платформенно-специфичных бинарников с учетом изменений в инструментах линковки Go.

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

  • Проверить наличие BuildRequires для Go 1.26+ или возможность гибкой настройки версии.
  • Запустить локальную сборку пакета (rpmbuild -ba) и убедиться в отсутствии ошибок линковки.
  • Провести функциональные тесты: сравнить вывод esbuild на текущей и новой версии на наборе реальных проектов.
  • Проверить работу механизма установки бинарников (если применимо к сценарию использования в дистрибутиве) или убедиться, что RPM-пакет содержит статические бинарники без зависимости от скрипта npm.
  • Отследить влияние нового GC на потребление памяти в нагрузочных тестах.

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

blocked manual review

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

Наличие смены мажорной версии компилятора (Go 1.25 -> 1.26) с известными изменениями в алгоритме сборки мусора и формате бинарных файлов требует ручного анализа влияния на стабильность сгенерированных артефактов перед автоматическим обновлением. Автоматическое применение рискованно из-за потенциальных скрытых изменений поведения (ABI/API implications).

Upstream release notes / description

  • Add support for with { type: 'text' } imports (#4435)

    The import text proposal has reached stage 3 in the TC39 process, which means that it's recommended for implementation. It has also already been implemented by Deno and Bun. So with this release, esbuild also adds support for it. This behaves exactly the same as esbuild's existing text loader. Here's an example:

    import string from './example.txt' with { type: 'text' }
    console.log(string)
    
  • Add integrity checks to fallback download path (#4343)

    Installing esbuild via npm is somewhat complicated with several different edge cases (see esbuild's documentation for details). If the regular installation of esbuild's platform-specific package fails, esbuild's install script attempts to download the platform-specific package itself (first with the npm command, and then with a HTTP request to registry.npmjs.org as a last resort).

    This last resort path previously didn't have any integrity checks. With this release, esbuild will now verify that the hash of the downloaded binary matches the expected hash for the current release. This means the hashes for all of esbuild's platform-specific binary packages will now be embedded in the top-level esbuild package. Hopefully this should work without any problems. But just in case, this change is being done as a breaking change release.

  • Update the Go compiler from 1.25.7 to 1.26.1

    This upgrade should not affect anything. However, there have been some significant internal changes to the Go compiler, so esbuild could potentially behave differently in certain edge cases:

    • It now uses the new garbage collector that comes with Go 1.26.
    • The Go compiler is now more aggressive with allocating memory on the stack.
    • The executable format that the Go linker uses has undergone several changes.
    • The WebAssembly build now unconditionally makes use of the sign extension and non-trapping floating-point to integer conversion instructions.

    You can read the Go 1.26 release notes for more information.

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-27T22:08:42Z
<!-- niceos-upstream-monitor:fingerprint=upstream-update:esbuild:0.28.0 --> <!-- niceos-upstream-monitor:package=esbuild --> <!-- niceos-upstream-monitor:current=0.27.2 --> <!-- niceos-upstream-monitor:latest=0.28.0 --> # Upstream update available: `esbuild` `0.27.2` → `0.28.0` ## Package - Package: `esbuild` - RPM name: `esbuild` - Branch: `niceos-5.2` - Current EVR: `0.27.2-1` - Update class: `minor` - Compare method: `python_rpm` - Update policy: `leaf` - Risk tags: `github-upstream` ## Upstream - Upstream type: `github` - Upstream project: `evanw/esbuild` - Upstream URL: https://github.com/evanw/esbuild - Detected version: `0.28.0` - Tag/release: `v0.28.0` - Source: `github_release_latest` - Published: `2026-04-02T20:38:53Z` - Release URL: https://github.com/evanw/esbuild/releases/tag/v0.28.0 - Source URL: https://api.github.com/repos/evanw/esbuild/tarball/v0.28.0 - Pre-release: `False` ## Signals - Security-relevant keywords detected: `False` - Policy blocked: `False` - Policy reason: `-` - Labels: `ai-summary, bot, needs-build, needs-triage, priority/medium, update/minor, upstream-update, upstream/github` ## NiceSOFT AI preliminary analysis ### 1. Краткий вывод Обновление включает поддержку нового стандарта ES модулей (`with { type: 'text' }`), внедрение проверки целостности при скачивании бинарников через npm и смену версии компилятора Go с 1.25.7 на 1.26.1. Изменение Go-компилятора затрагивает внутреннюю работу сборщика (новый GC, формат линкера), что потенциально влияет на поведение сгенерированных бинарников. ### 2. Риск для НАЙС.ОС **medium**. Хотя обновление помечено как `minor`, замена Go-компилятора на версию 1.26.1 с новым сборщиком мусора и измененным форматом линкера создает риск несовместимости с существующими бинарными артефактами или специфичными кейсами использования, которые могут проявиться только после пересборки. Внедрение integrity checks является улучшением безопасности, но изменение логики установки (fallback path) требует тестирования. ### 3. Security/CVE Во входных данных отсутствуют явные упоминания CVE или прямые указания на уязвимости. Упоминание "integrity checks" относится к защите от подмены файлов при установке, а не к исправлению конкретной уязвимости в коде. Признаков security-critical обновления в тексте нет. ### 4. ABI/API риск **Нужен ручной ABI/API анализ.** Смена Go-компилятора на 1.26.1 с новым garbage collector и изменениями в формате линкера теоретически может изменить поведение программы в граничных случаях (edge cases), даже если функциональность API не изменилась явно. Для библиотеки `esbuild` это означает необходимость проверки корректности работы сгенерированных бинарников в различных сценариях. ### 5. Риск для RPM-сборки Вероятны изменения в процессе сборки из-за зависимости от новой версии Go (1.26.1). Необходимо проверить: - Актуальность `BuildRequires: go` (версия может быть жестко задана или требовать обновления). - Корректность работы `%check` и тестовых сценариев с новым компилятором. - Возможность успешной сборки платформенно-специфичных бинарников с учетом изменений в инструментах линковки Go. ### 6. Проверки мейнтейнера - [ ] Проверить наличие `BuildRequires` для Go 1.26+ или возможность гибкой настройки версии. - [ ] Запустить локальную сборку пакета (`rpmbuild -ba`) и убедиться в отсутствии ошибок линковки. - [ ] Провести функциональные тесты: сравнить вывод `esbuild` на текущей и новой версии на наборе реальных проектов. - [ ] Проверить работу механизма установки бинарников (если применимо к сценарию использования в дистрибутиве) или убедиться, что RPM-пакет содержит статические бинарники без зависимости от скрипта npm. - [ ] Отследить влияние нового GC на потребление памяти в нагрузочных тестах. ### 7. Рекомендация **blocked manual review** ### 8. Основание рекомендации Наличие смены мажорной версии компилятора (Go 1.25 -> 1.26) с известными изменениями в алгоритме сборки мусора и формате бинарных файлов требует ручного анализа влияния на стабильность сгенерированных артефактов перед автоматическим обновлением. Автоматическое применение рискованно из-за потенциальных скрытых изменений поведения (ABI/API implications). ## Upstream release notes / description * Add support for `with { type: 'text' }` imports ([#4435](https://github.com/evanw/esbuild/issues/4435)) The [import text](https://github.com/tc39/proposal-import-text) proposal has reached stage 3 in the TC39 process, which means that it's recommended for implementation. It has also already been implemented by [Deno](https://docs.deno.com/examples/importing_text/) and [Bun](https://bun.com/docs/guides/runtime/import-html). So with this release, esbuild also adds support for it. This behaves exactly the same as esbuild's existing [`text` loader](https://esbuild.github.io/content-types/#text). Here's an example: ```js import string from './example.txt' with { type: 'text' } console.log(string) ``` * Add integrity checks to fallback download path ([#4343](https://github.com/evanw/esbuild/issues/4343)) Installing esbuild via npm is somewhat complicated with several different edge cases (see [esbuild's documentation](https://esbuild.github.io/getting-started/#additional-npm-flags) for details). If the regular installation of esbuild's platform-specific package fails, esbuild's install script attempts to download the platform-specific package itself (first with the `npm` command, and then with a HTTP request to `registry.npmjs.org` as a last resort). This last resort path previously didn't have any integrity checks. With this release, esbuild will now verify that the hash of the downloaded binary matches the expected hash for the current release. This means the hashes for all of esbuild's platform-specific binary packages will now be embedded in the top-level `esbuild` package. Hopefully this should work without any problems. But just in case, this change is being done as a breaking change release. * Update the Go compiler from 1.25.7 to 1.26.1 This upgrade should not affect anything. However, there have been some significant internal changes to the Go compiler, so esbuild could potentially behave differently in certain edge cases: - It now uses the [new garbage collector](https://go.dev/doc/go1.26#new-garbage-collector) that comes with Go 1.26. - The Go compiler is now more aggressive with allocating memory on the stack. - The executable format that the Go linker uses has undergone several changes. - The WebAssembly build now unconditionally makes use of the sign extension and non-trapping floating-point to integer conversion instructions. You can read the [Go 1.26 release notes](https://go.dev/doc/go1.26) for more information. ## 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-27T22:08:42Z`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rpms/esbuild#2
No description provided.