Compare commits

...

8 Commits

Author SHA1 Message Date
Lovell Fuller
ee437832e2 Release v0.34.4 2025-09-17 13:57:10 +01:00
Lovell Fuller
529901177b CI/Docs: Deno v2 support 2025-09-17 13:56:49 +01:00
Lovell Fuller
4710092b2a Prerelease v0.34.4-rc.4 2025-09-17 12:53:47 +01:00
Lovell Fuller
ed1ac43e55 CI: Upgrade packaging test dependencies 2025-09-17 12:11:06 +01:00
Lovell Fuller
dfcbceee4b Upgrade sharp-libvips to v1.2.3 2025-09-17 12:10:36 +01:00
Lovell Fuller
35d3f56c67 Ensure TIFF subifd and OpenSlide level are respected
Fixes regression introduced in 852c7f8
2025-09-16 08:44:08 +01:00
Lovell Fuller
9f4bace03b Prerelease v0.34.4-rc.3 2025-09-15 11:18:53 +01:00
Lovell Fuller
b507831a11 CI: Remove dry-run flag
This was temporary whilst setting up auto-publish
2025-09-15 11:18:00 +01:00
21 changed files with 70 additions and 65 deletions

View File

@@ -330,7 +330,7 @@ jobs:
bodyFile: release-notes.md bodyFile: release-notes.md
- name: Publish platform-specific npm packages - name: Publish platform-specific npm packages
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')
run: cd npm && npm publish --workspaces --tag=${{ contains(github.ref, '-rc') && 'next' || 'latest' }} --dry-run run: cd npm && npm publish --workspaces --tag=${{ contains(github.ref, '-rc') && 'next' || 'latest' }}
- name: Publish sharp npm package - name: Publish sharp npm package
if: startsWith(github.ref, 'refs/tags/v') if: startsWith(github.ref, 'refs/tags/v')
run: npm publish --tag=${{ contains(github.ref, '-rc') && 'next' || 'latest' }} --dry-run run: npm publish --tag=${{ contains(github.ref, '-rc') && 'next' || 'latest' }}

View File

@@ -96,7 +96,7 @@ jobs:
steps: steps:
- name: Install Node.js - name: Install Node.js
if: ${{ matrix.runtime == 'node' }} if: ${{ matrix.runtime == 'node' }}
uses: actions/setup-node@v4 uses: actions/setup-node@v5
with: with:
node-version: 20 node-version: 20
- name: Install pnpm - name: Install pnpm
@@ -106,9 +106,9 @@ jobs:
version: 8 version: 8
- name: Install Deno - name: Install Deno
if: ${{ matrix.runtime == 'deno' }} if: ${{ matrix.runtime == 'deno' }}
uses: denoland/setup-deno@v1 uses: denoland/setup-deno@v2
with: with:
deno-version: v1.x deno-version: v2.x
- name: Install Bun - name: Install Bun
if: ${{ matrix.runtime == 'bun' }} if: ${{ matrix.runtime == 'bun' }}
uses: oven-sh/setup-bun@v2 uses: oven-sh/setup-bun@v2
@@ -117,7 +117,7 @@ jobs:
- name: Version - name: Version
id: version id: version
uses: actions/github-script@v7 uses: actions/github-script@v8
with: with:
script: | script: |
core.setOutput('semver', context.ref.replace('refs/tags/v','')) core.setOutput('semver', context.ref.replace('refs/tags/v',''))
@@ -185,7 +185,9 @@ jobs:
- name: Run with Deno - name: Run with Deno
if: ${{ matrix.runtime == 'deno' }} if: ${{ matrix.runtime == 'deno' }}
run: deno run --allow-read --allow-ffi release.mjs run: |
deno install
deno run --allow-env --allow-ffi --allow-read --allow-sys release.mjs
- name: Run with Bun - name: Run with Bun
if: ${{ matrix.runtime == 'bun' }} if: ${{ matrix.runtime == 'bun' }}

View File

@@ -1,10 +1,12 @@
--- ---
title: v0.34.4 - TBD title: v0.34.4 - 17th September 2025
slug: changelog/v0.34.4 slug: changelog/v0.34.4
--- ---
* Upgrade to libvips v8.17.2 for upstream bug fixes. * Upgrade to libvips v8.17.2 for upstream bug fixes.
* Ensure TIFF `subifd` and OpenSlide `level` input options are respected (regression in 0.34.3).
* Ensure `autoOrient` occurs before non-90 angle rotation. * Ensure `autoOrient` occurs before non-90 angle rotation.
[#4425](https://github.com/lovell/sharp/issues/4425) [#4425](https://github.com/lovell/sharp/issues/4425)

View File

@@ -20,7 +20,7 @@ npm install sharp
pnpm add sharp pnpm add sharp
``` ```
When using `pnpm`, you may need to add `sharp` to When using `pnpm`, add `sharp` to
[ignoredBuiltDependencies](https://pnpm.io/settings#ignoredbuiltdependencies) [ignoredBuiltDependencies](https://pnpm.io/settings#ignoredbuiltdependencies)
to silence warnings. to silence warnings.
@@ -33,7 +33,8 @@ bun add sharp
``` ```
```sh frame="none" ```sh frame="none"
deno run --allow-ffi ... deno add --quiet npm:sharp
deno run --allow-env --allow-ffi --allow-read --allow-sys ...
``` ```
## Prerequisites ## Prerequisites

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-darwin-arm64", "name": "@img/sharp-darwin-arm64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with macOS 64-bit ARM", "description": "Prebuilt sharp for use with macOS 64-bit ARM",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-arm64": "1.2.2" "@img/sharp-libvips-darwin-arm64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-darwin-x64", "name": "@img/sharp-darwin-x64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with macOS x64", "description": "Prebuilt sharp for use with macOS x64",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-darwin-x64": "1.2.2" "@img/sharp-libvips-darwin-x64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linux-arm", "name": "@img/sharp-linux-arm",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (glibc) ARM (32-bit)", "description": "Prebuilt sharp for use with Linux (glibc) ARM (32-bit)",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm": "1.2.2" "@img/sharp-libvips-linux-arm": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linux-arm64", "name": "@img/sharp-linux-arm64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (glibc) 64-bit ARM", "description": "Prebuilt sharp for use with Linux (glibc) 64-bit ARM",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-arm64": "1.2.2" "@img/sharp-libvips-linux-arm64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linux-ppc64", "name": "@img/sharp-linux-ppc64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (glibc) ppc64", "description": "Prebuilt sharp for use with Linux (glibc) ppc64",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-ppc64": "1.2.2" "@img/sharp-libvips-linux-ppc64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linux-s390x", "name": "@img/sharp-linux-s390x",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (glibc) s390x", "description": "Prebuilt sharp for use with Linux (glibc) s390x",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-s390x": "1.2.2" "@img/sharp-libvips-linux-s390x": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linux-x64", "name": "@img/sharp-linux-x64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (glibc) x64", "description": "Prebuilt sharp for use with Linux (glibc) x64",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linux-x64": "1.2.2" "@img/sharp-libvips-linux-x64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linuxmusl-arm64", "name": "@img/sharp-linuxmusl-arm64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (musl) 64-bit ARM", "description": "Prebuilt sharp for use with Linux (musl) 64-bit ARM",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-arm64": "1.2.2" "@img/sharp-libvips-linuxmusl-arm64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-linuxmusl-x64", "name": "@img/sharp-linuxmusl-x64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Linux (musl) x64", "description": "Prebuilt sharp for use with Linux (musl) x64",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
@@ -15,7 +15,7 @@
}, },
"preferUnplugged": true, "preferUnplugged": true,
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-libvips-linuxmusl-x64": "1.2.2" "@img/sharp-libvips-linuxmusl-x64": "1.2.3"
}, },
"files": [ "files": [
"lib" "lib"

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp", "name": "@img/sharp",
"version": "0.34.4-rc.2", "version": "0.34.4",
"private": "true", "private": "true",
"workspaces": [ "workspaces": [
"darwin-arm64", "darwin-arm64",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-wasm32", "name": "@img/sharp-wasm32",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with wasm32", "description": "Prebuilt sharp for use with wasm32",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-win32-arm64", "name": "@img/sharp-win32-arm64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Windows 64-bit ARM", "description": "Prebuilt sharp for use with Windows 64-bit ARM",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-win32-ia32", "name": "@img/sharp-win32-ia32",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Windows x86 (32-bit)", "description": "Prebuilt sharp for use with Windows x86 (32-bit)",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@img/sharp-win32-x64", "name": "@img/sharp-win32-x64",
"version": "0.34.4-rc.2", "version": "0.34.4",
"description": "Prebuilt sharp for use with Windows x64", "description": "Prebuilt sharp for use with Windows x64",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",

View File

@@ -1,7 +1,7 @@
{ {
"name": "sharp", "name": "sharp",
"description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images", "description": "High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images",
"version": "0.34.4-rc.2", "version": "0.34.4",
"author": "Lovell Fuller <npm@lovell.info>", "author": "Lovell Fuller <npm@lovell.info>",
"homepage": "https://sharp.pixelplumbing.com", "homepage": "https://sharp.pixelplumbing.com",
"contributors": [ "contributors": [
@@ -142,36 +142,36 @@
"semver": "^7.7.2" "semver": "^7.7.2"
}, },
"optionalDependencies": { "optionalDependencies": {
"@img/sharp-darwin-arm64": "0.34.4-rc.2", "@img/sharp-darwin-arm64": "0.34.4",
"@img/sharp-darwin-x64": "0.34.4-rc.2", "@img/sharp-darwin-x64": "0.34.4",
"@img/sharp-libvips-darwin-arm64": "1.2.2", "@img/sharp-libvips-darwin-arm64": "1.2.3",
"@img/sharp-libvips-darwin-x64": "1.2.2", "@img/sharp-libvips-darwin-x64": "1.2.3",
"@img/sharp-libvips-linux-arm": "1.2.2", "@img/sharp-libvips-linux-arm": "1.2.3",
"@img/sharp-libvips-linux-arm64": "1.2.2", "@img/sharp-libvips-linux-arm64": "1.2.3",
"@img/sharp-libvips-linux-ppc64": "1.2.2", "@img/sharp-libvips-linux-ppc64": "1.2.3",
"@img/sharp-libvips-linux-s390x": "1.2.2", "@img/sharp-libvips-linux-s390x": "1.2.3",
"@img/sharp-libvips-linux-x64": "1.2.2", "@img/sharp-libvips-linux-x64": "1.2.3",
"@img/sharp-libvips-linuxmusl-arm64": "1.2.2", "@img/sharp-libvips-linuxmusl-arm64": "1.2.3",
"@img/sharp-libvips-linuxmusl-x64": "1.2.2", "@img/sharp-libvips-linuxmusl-x64": "1.2.3",
"@img/sharp-linux-arm": "0.34.4-rc.2", "@img/sharp-linux-arm": "0.34.4",
"@img/sharp-linux-arm64": "0.34.4-rc.2", "@img/sharp-linux-arm64": "0.34.4",
"@img/sharp-linux-ppc64": "0.34.4-rc.2", "@img/sharp-linux-ppc64": "0.34.4",
"@img/sharp-linux-s390x": "0.34.4-rc.2", "@img/sharp-linux-s390x": "0.34.4",
"@img/sharp-linux-x64": "0.34.4-rc.2", "@img/sharp-linux-x64": "0.34.4",
"@img/sharp-linuxmusl-arm64": "0.34.4-rc.2", "@img/sharp-linuxmusl-arm64": "0.34.4",
"@img/sharp-linuxmusl-x64": "0.34.4-rc.2", "@img/sharp-linuxmusl-x64": "0.34.4",
"@img/sharp-wasm32": "0.34.4-rc.2", "@img/sharp-wasm32": "0.34.4",
"@img/sharp-win32-arm64": "0.34.4-rc.2", "@img/sharp-win32-arm64": "0.34.4",
"@img/sharp-win32-ia32": "0.34.4-rc.2", "@img/sharp-win32-ia32": "0.34.4",
"@img/sharp-win32-x64": "0.34.4-rc.2" "@img/sharp-win32-x64": "0.34.4"
}, },
"devDependencies": { "devDependencies": {
"@emnapi/runtime": "^1.5.0", "@emnapi/runtime": "^1.5.0",
"@img/sharp-libvips-dev": "1.2.2", "@img/sharp-libvips-dev": "1.2.3",
"@img/sharp-libvips-dev-wasm32": "1.2.2", "@img/sharp-libvips-dev-wasm32": "1.2.3",
"@img/sharp-libvips-win32-arm64": "1.2.2", "@img/sharp-libvips-win32-arm64": "1.2.3",
"@img/sharp-libvips-win32-ia32": "1.2.2", "@img/sharp-libvips-win32-ia32": "1.2.3",
"@img/sharp-libvips-win32-x64": "1.2.2", "@img/sharp-libvips-win32-x64": "1.2.3",
"@types/node": "*", "@types/node": "*",
"cc": "^3.0.1", "cc": "^3.0.1",
"emnapi": "^1.5.0", "emnapi": "^1.5.0",
@@ -185,7 +185,7 @@
"node-gyp": "^11.4.2", "node-gyp": "^11.4.2",
"nyc": "^17.1.0", "nyc": "^17.1.0",
"semistandard": "^17.0.0", "semistandard": "^17.0.0",
"tar-fs": "^3.1.0", "tar-fs": "^3.1.1",
"tsd": "^0.33.0" "tsd": "^0.33.0"
}, },
"license": "Apache-2.0", "license": "Apache-2.0",

View File

@@ -421,14 +421,14 @@ namespace sharp {
->set("high_bitdepth", descriptor->svgHighBitdepth); ->set("high_bitdepth", descriptor->svgHighBitdepth);
break; break;
case ImageType::TIFF: case ImageType::TIFF:
option->set("tiffSubifd", descriptor->tiffSubifd); option->set("subifd", descriptor->tiffSubifd);
break; break;
case ImageType::PDF: case ImageType::PDF:
option->set("dpi", descriptor->density) option->set("dpi", descriptor->density)
->set("background", descriptor->pdfBackground); ->set("background", descriptor->pdfBackground);
break; break;
case ImageType::OPENSLIDE: case ImageType::OPENSLIDE:
option->set("openSlideLevel", descriptor->openSlideLevel); option->set("level", descriptor->openSlideLevel);
break; break;
case ImageType::JP2: case ImageType::JP2:
option->set("oneshot", descriptor->jp2Oneshot); option->set("oneshot", descriptor->jp2Oneshot);

View File

@@ -179,7 +179,7 @@ describe('libvips binaries', function () {
process.env.npm_config_arch = 's390x'; process.env.npm_config_arch = 's390x';
process.env.npm_config_libc = ''; process.env.npm_config_libc = '';
const locatorHash = libvips.yarnLocator(); const locatorHash = libvips.yarnLocator();
assert.strictEqual(locatorHash, '9773928ef2'); assert.strictEqual(locatorHash, '7c141893d6');
delete process.env.npm_config_platform; delete process.env.npm_config_platform;
delete process.env.npm_config_arch; delete process.env.npm_config_arch;
delete process.env.npm_config_libc; delete process.env.npm_config_libc;