From 72b0f0ee02f6766f8e59c1724700da6647c6b51f Mon Sep 17 00:00:00 2001 From: Achill Gilgenast Date: Mon, 5 Jan 2026 07:19:39 +0100 Subject: [PATCH 1/6] Add support for ppc64 & loong64 musl linux (#5997) --- .github/workflows/build-and-tests.yml | 6 ++++++ native.js | 4 ++-- npm/linux-loong64-musl/README.md | 3 +++ npm/linux-loong64-musl/package.json | 25 +++++++++++++++++++++++++ npm/linux-ppc64-musl/README.md | 3 +++ npm/linux-ppc64-musl/package.json | 25 +++++++++++++++++++++++++ package.json | 2 ++ 7 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 npm/linux-loong64-musl/README.md create mode 100644 npm/linux-loong64-musl/package.json create mode 100644 npm/linux-ppc64-musl/README.md create mode 100644 npm/linux-ppc64-musl/package.json diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index d0d5fcb8b..3f700c601 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -162,6 +162,9 @@ jobs: sudo apt-get update sudo apt-get install gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu -y cross: napi + - host: ubuntu-latest + target: powerpc64le-unknown-linux-musl + cross: zig - host: ubuntu-latest target: s390x-unknown-linux-gnu env: @@ -185,6 +188,9 @@ jobs: --slave /usr/bin/loongarch64-linux-gnu-gcov loongarch64-linux-gnu-gcov /usr/bin/loongarch64-linux-gnu-gcov-13 sudo update-alternatives \ --install /usr/bin/loongarch64-linux-gnu-cpp loongarch64-linux-gnu-cpp /usr/bin/loongarch64-linux-gnu-cpp-13 100 + - host: ubuntu-latest + target: loongarch64-unknown-linux-musl + cross: zig - host: ubuntu-latest target: aarch64-unknown-linux-ohos diff --git a/native.js b/native.js index c5a65c3ed..23456de2d 100644 --- a/native.js +++ b/native.js @@ -34,8 +34,8 @@ const bindingsByPlatformAndArch = { linux: { arm: { base: 'linux-arm-gnueabihf', musl: 'linux-arm-musleabihf' }, arm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' }, - loong64: { base: 'linux-loong64-gnu', musl: null }, - ppc64: { base: 'linux-ppc64-gnu', musl: null }, + loong64: { base: 'linux-loong64-gnu', musl: 'linux-loong64-musl' }, + ppc64: { base: 'linux-ppc64-gnu', musl: 'linux-ppc64-musl' }, riscv64: { base: 'linux-riscv64-gnu', musl: 'linux-riscv64-musl' }, s390x: { base: 'linux-s390x-gnu', musl: null }, x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' } diff --git a/npm/linux-loong64-musl/README.md b/npm/linux-loong64-musl/README.md new file mode 100644 index 000000000..471875c26 --- /dev/null +++ b/npm/linux-loong64-musl/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-loong64-musl` + +This is the **loongarch64-unknown-linux-musl** binary for `rollup` diff --git a/npm/linux-loong64-musl/package.json b/npm/linux-loong64-musl/package.json new file mode 100644 index 000000000..e5ad45c8f --- /dev/null +++ b/npm/linux-loong64-musl/package.json @@ -0,0 +1,25 @@ +{ + "name": "@rollup/rollup-linux-loong64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "loong64" + ], + "files": [ + "rollup.linux-loong64-musl.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/rollup/rollup.git" + }, + "libc": [ + "musl" + ], + "main": "./rollup.linux-loong64-musl.node" +} diff --git a/npm/linux-ppc64-musl/README.md b/npm/linux-ppc64-musl/README.md new file mode 100644 index 000000000..dbfcfd1c1 --- /dev/null +++ b/npm/linux-ppc64-musl/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-linux-ppc64-musl` + +This is the **powerpc64le-unknown-linux-musl** binary for `rollup` diff --git a/npm/linux-ppc64-musl/package.json b/npm/linux-ppc64-musl/package.json new file mode 100644 index 000000000..ce6cf5add --- /dev/null +++ b/npm/linux-ppc64-musl/package.json @@ -0,0 +1,25 @@ +{ + "name": "@rollup/rollup-linux-ppc64-musl", + "version": "0.0.0", + "os": [ + "linux" + ], + "cpu": [ + "ppc64" + ], + "files": [ + "rollup.linux-ppc64-musl.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/rollup/rollup.git" + }, + "libc": [ + "musl" + ], + "main": "./rollup.linux-ppc64-musl.node" +} diff --git a/package.json b/package.json index 67bbda327..ba784cedb 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,11 @@ "armv7-unknown-linux-musleabihf", "i686-pc-windows-msvc", "loongarch64-unknown-linux-gnu", + "loongarch64-unknown-linux-musl", "riscv64gc-unknown-linux-gnu", "riscv64gc-unknown-linux-musl", "powerpc64le-unknown-linux-gnu", + "powerpc64le-unknown-linux-musl", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-gnu", From 55014f3acf089c8092842a4db1020865465528b0 Mon Sep 17 00:00:00 2001 From: edshot99 Date: Mon, 5 Jan 2026 01:18:28 -0600 Subject: [PATCH 2/6] OpenBSD support (#6224) * OpenBSD support * OpenBSD support touch up - replace missing matrix settings with hardcodes - make test job depend on build-openbsd - added missing triplet to package.json * Fix directory name * Remove OS version from artifact name This should help NAPI-RS to properly identify the artifact --------- Co-authored-by: Lukas Taegert-Atkinson Co-authored-by: Lukas Taegert-Atkinson --- .github/workflows/build-and-tests.yml | 60 +++++++++++++++++++++++++++ native.js | 3 ++ npm/openbsd-x64/README.md | 3 ++ npm/openbsd-x64/package.json | 22 ++++++++++ package.json | 1 + 5 files changed, 89 insertions(+) create mode 100644 npm/openbsd-x64/README.md create mode 100644 npm/openbsd-x64/package.json diff --git a/.github/workflows/build-and-tests.yml b/.github/workflows/build-and-tests.yml index 3f700c601..a56ba997e 100644 --- a/.github/workflows/build-and-tests.yml +++ b/.github/workflows/build-and-tests.yml @@ -310,6 +310,65 @@ jobs: if-no-files-found: error if: ${{ !matrix.settings.is-wasm-build }} + build-openbsd: + name: Build x86_64-unknown-openbsd + runs-on: ubuntu-latest + strategy: + matrix: + os: + - name: openbsd + architecture: x86-64 + version: '7.8' + + steps: + - name: Checkout Commit + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + + - name: Restore Cargo cache + uses: actions/cache/restore@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + .cargo-cache + rust/target/ + key: x86_64-unknown-openbsd-cargo-ubuntu-latest-${{ hashFiles('rust/Cargo.lock') }} + restore-keys: x86_64-unknown-openbsd-cargo-ubuntu-latest + + - name: Install and Cache Node Dependencies + uses: ./.github/actions/install-and-cache-node-deps + + - name: Build (OpenBSD) + uses: cross-platform-actions/action@v0.32.0 + with: + operating_system: ${{ matrix.os.name }} + architecture: ${{ matrix.os.architecture }} + version: ${{ matrix.os.version }} + run: | + sudo pkg_add rust node cmake + sed -i 's^rustflags.*^^g' rust/bindings_napi/.cargo/config.toml + npm run build:napi + + - name: Save Cargo cache + if: github.ref == 'refs/heads/master' + uses: actions/cache/save@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + .cargo-cache + rust/target/ + key: x86_64-unknown-openbsd-cargo-ubuntu-latest-${{ hashFiles('rust/Cargo.lock') }} + + - name: Upload napi artifact + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 + with: + name: bindings-x86_64-unknown-openbsd + path: ${{ env.APP_NAME }}.*.node + if-no-files-found: error + # smoke test for some architectures that do not receive the full test suite smoke-test: permissions: @@ -400,6 +459,7 @@ jobs: name: Test${{ matrix.additionalName || '' }} Node ${{ matrix.node }} (${{ matrix.settings.target }}) needs: - build + - build-openbsd strategy: fail-fast: false matrix: diff --git a/native.js b/native.js index 23456de2d..dc70f335f 100644 --- a/native.js +++ b/native.js @@ -40,6 +40,9 @@ const bindingsByPlatformAndArch = { s390x: { base: 'linux-s390x-gnu', musl: null }, x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' } }, + openbsd: { + x64: { base: 'openbsd7.8-x64' } + }, openharmony: { arm64: { base: 'openharmony-arm64' } }, diff --git a/npm/openbsd-x64/README.md b/npm/openbsd-x64/README.md new file mode 100644 index 000000000..6bc5a234b --- /dev/null +++ b/npm/openbsd-x64/README.md @@ -0,0 +1,3 @@ +# `@rollup/rollup-openbsd7.8-x64` + +This is the **amd64-unknown-openbsd7.8** binary for `rollup` diff --git a/npm/openbsd-x64/package.json b/npm/openbsd-x64/package.json new file mode 100644 index 000000000..c8bab5991 --- /dev/null +++ b/npm/openbsd-x64/package.json @@ -0,0 +1,22 @@ +{ + "name": "@rollup/rollup-openbsd7.8-x64", + "version": "0.0.0", + "os": [ + "openbsd" + ], + "cpu": [ + "x64" + ], + "files": [ + "rollup.openbsd-x64.node" + ], + "description": "Native bindings for Rollup", + "author": "Lukas Taegert-Atkinson", + "homepage": "https://rollupjs.org/", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/rollup/rollup.git" + }, + "main": "./rollup.openbsd-x64.node" +} diff --git a/package.json b/package.json index ba784cedb..7a0350706 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", + "x86_64-unknown-openbsd", "aarch64-unknown-linux-ohos" ] }, From 570b7ee21ce3ca143bdfad918fcb31b1792d308f Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Mon, 5 Jan 2026 08:46:51 +0100 Subject: [PATCH 3/6] 4.55.0 --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ browser/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c8606ab7..ed8911f03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # rollup changelog +## 4.55.0 + +_2026-01-05_ + +### Features + +- Natively support ppc64 Linux Musl targets (#5997) +- Natively support loong64 Linux Musl targets (#5997) +- Natively support OpenBSD targets (#6224) + +### Bug Fixes + +- Prevent some cycles when using top-level-await (#6221) +- Warn when generating cycling manual chunks (#6225) + +### Pull Requests + +- [#5997](https://github.com/rollup/rollup/pull/5997): Add support for ppc64 & loong64 musl linux (@fossdd) +- [#6218](https://github.com/rollup/rollup/pull/6218): fix(deps): update swc monorepo (major) (@renovate[bot], @lukastaegert) +- [#6219](https://github.com/rollup/rollup/pull/6219): fix(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#6220](https://github.com/rollup/rollup/pull/6220): chore(deps): lock file maintenance (@renovate[bot]) +- [#6221](https://github.com/rollup/rollup/pull/6221): Handle TLA dynamic import cycles in chunkAssignment (@TrickyPi) +- [#6222](https://github.com/rollup/rollup/pull/6222): Apply to adjust the description of the command-line parameter 'rollup… (@image-gif, @lukastaegert) +- [#6223](https://github.com/rollup/rollup/pull/6223): Deduplicate CLI help file (@lukastaegert) +- [#6224](https://github.com/rollup/rollup/pull/6224): OpenBSD support (@edshot99, @lukastaegert) +- [#6225](https://github.com/rollup/rollup/pull/6225): Throw a warning for circular chunks (@TrickyPi) +- [#6226](https://github.com/rollup/rollup/pull/6226): fix(deps): update swc monorepo (major) (@renovate[bot]) +- [#6227](https://github.com/rollup/rollup/pull/6227): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#6228](https://github.com/rollup/rollup/pull/6228): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) +- [#6229](https://github.com/rollup/rollup/pull/6229): chore(deps): lock file maintenance minor/patch updates (@renovate[bot]) + ## 4.54.0 _2025-12-20_ diff --git a/browser/package.json b/browser/package.json index a4761b1e1..27336519c 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.54.0", + "version": "4.55.0", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/package-lock.json b/package-lock.json index 7b8306a44..c396769ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.54.0", + "version": "4.55.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.54.0", + "version": "4.55.0", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" diff --git a/package.json b/package.json index 7a0350706..0538b0edc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.54.0", + "version": "4.55.0", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", From 72f650da774832a535b8b9359af541ceaa44352a Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Mon, 5 Jan 2026 11:03:20 +0100 Subject: [PATCH 4/6] Fix OpenBSD artifacts and ensure OIDC is working (#6231) * Fix artifact names for openbsd * Fix test for pre-release versions * 4.55.1-0 --- browser/package.json | 2 +- native.js | 2 +- npm/openbsd-x64/README.md | 4 ++-- npm/openbsd-x64/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- test/cli/samples/help/_config.js | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/browser/package.json b/browser/package.json index 27336519c..03b77a968 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.55.0", + "version": "4.55.1-0", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/native.js b/native.js index dc70f335f..e49848245 100644 --- a/native.js +++ b/native.js @@ -41,7 +41,7 @@ const bindingsByPlatformAndArch = { x64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' } }, openbsd: { - x64: { base: 'openbsd7.8-x64' } + x64: { base: 'openbsd-x64' } }, openharmony: { arm64: { base: 'openharmony-arm64' } diff --git a/npm/openbsd-x64/README.md b/npm/openbsd-x64/README.md index 6bc5a234b..8f599d029 100644 --- a/npm/openbsd-x64/README.md +++ b/npm/openbsd-x64/README.md @@ -1,3 +1,3 @@ -# `@rollup/rollup-openbsd7.8-x64` +# `@rollup/rollup-openbsd-x64` -This is the **amd64-unknown-openbsd7.8** binary for `rollup` +This is the **x86_64-unknown-openbsd** binary for `rollup` diff --git a/npm/openbsd-x64/package.json b/npm/openbsd-x64/package.json index c8bab5991..deb0d40ae 100644 --- a/npm/openbsd-x64/package.json +++ b/npm/openbsd-x64/package.json @@ -1,5 +1,5 @@ { - "name": "@rollup/rollup-openbsd7.8-x64", + "name": "@rollup/rollup-openbsd-x64", "version": "0.0.0", "os": [ "openbsd" diff --git a/package-lock.json b/package-lock.json index c396769ae..197db99e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.55.0", + "version": "4.55.1-0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.55.0", + "version": "4.55.1-0", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" diff --git a/package.json b/package.json index 0538b0edc..34388e03b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.55.0", + "version": "4.55.1-0", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", diff --git a/test/cli/samples/help/_config.js b/test/cli/samples/help/_config.js index b6f16a441..db030e248 100644 --- a/test/cli/samples/help/_config.js +++ b/test/cli/samples/help/_config.js @@ -7,7 +7,7 @@ module.exports = defineTest({ spawnArgs: ['--help'], result(stdout) { const [firstLine, ...restLines] = stdout.trim().split('\n'); - assert.match(firstLine, /^rollup version \d+\.\d+\.\d+$/); + assert.match(firstLine, /^rollup version \d+\.\d+\.\d+(-\d+)?$/); const expected = readFileSync(join(__dirname, '_expected'), 'utf8'); assert.equal([...restLines].join('\n'), expected.trim()); } From 299cc46f3059a72b1e37b80c688a6d88c6c5f3fd Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Mon, 5 Jan 2026 11:06:21 +0100 Subject: [PATCH 5/6] 4.55.1 --- CHANGELOG.md | 12 ++++++++++++ browser/package.json | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed8911f03..2c133ceed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # rollup changelog +## 4.55.1 + +_2026-01-05_ + +### Bug Fixes + +- Fix artifact reference for OpenBSD (#6231) + +### Pull Requests + +- [#6231](https://github.com/rollup/rollup/pull/6231): Fix OpenBSD artifacts and ensure OIDC is working (@lukastaegert) + ## 4.55.0 _2026-01-05_ diff --git a/browser/package.json b/browser/package.json index 03b77a968..e3c5f3c69 100644 --- a/browser/package.json +++ b/browser/package.json @@ -1,6 +1,6 @@ { "name": "@rollup/browser", - "version": "4.55.1-0", + "version": "4.55.1", "description": "Next-generation ES module bundler browser build", "main": "dist/rollup.browser.js", "module": "dist/es/rollup.browser.js", diff --git a/package-lock.json b/package-lock.json index 197db99e1..e60f63c75 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rollup", - "version": "4.55.1-0", + "version": "4.55.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rollup", - "version": "4.55.1-0", + "version": "4.55.1", "license": "MIT", "dependencies": { "@types/estree": "1.0.8" diff --git a/package.json b/package.json index 34388e03b..5181c70c9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rollup", - "version": "4.55.1-0", + "version": "4.55.1", "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/es/rollup.js", From 29055680819c670da6d2c3329dfd0355eb5f5fac Mon Sep 17 00:00:00 2001 From: waynzh Date: Wed, 7 Jan 2026 11:43:47 +0800 Subject: [PATCH 6/6] chore: remove test --- test/cli/samples/help/_config.js | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 test/cli/samples/help/_config.js diff --git a/test/cli/samples/help/_config.js b/test/cli/samples/help/_config.js deleted file mode 100644 index db030e248..000000000 --- a/test/cli/samples/help/_config.js +++ /dev/null @@ -1,14 +0,0 @@ -const { readFileSync } = require('node:fs'); -const { join } = require('node:path'); -const assert = require('node:assert'); - -module.exports = defineTest({ - description: 'displays the help text', - spawnArgs: ['--help'], - result(stdout) { - const [firstLine, ...restLines] = stdout.trim().split('\n'); - assert.match(firstLine, /^rollup version \d+\.\d+\.\d+(-\d+)?$/); - const expected = readFileSync(join(__dirname, '_expected'), 'utf8'); - assert.equal([...restLines].join('\n'), expected.trim()); - } -});