Skip to content

v0.2.12

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 04:10

v0.2.12

Status: published to npm as the 0.2.12 latest release, tagged as v0.2.12.

This release adds the narrow iOS metadata: 'preserve' MVP for JPEG source
to JPEG output. Other iOS format conversions keep the explicit
ERR_NOT_IMPLEMENTED preserve boundary.

Goals

  • Support iOS JPEG source to JPEG output with metadata: 'preserve'.
  • Keep resize, output.quality, and output.maxBytes JPEG output paths aligned with metadata preserve.
  • Report iOS metadataPolicies: ['preserve', 'safe', 'strip'] while documenting that preserve is JPEG-to-JPEG only.
  • Keep PNG/WebP/GIF/HEIC/HEIF/AVIF metadata preservation out of scope.
  • Align TypeScript/native error surface, README guidance, release notes, source-level expectations, Android verification doctor checks, and iOS host-app smoke validation.

Included

  • package.json version bump to 0.2.12.
  • iOS JPEG output now uses ImageIO CGImageDestination, allowing source JPEG metadata to be copied for JPEG source to JPEG output.
  • iOS metadata: 'preserve' rejects with ERR_NOT_IMPLEMENTED unless both input and output are JPEG.
  • iOS capability reporting now includes preserve, safe, and strip metadata policies.
  • iOS smoke fixtures include a JPEG TIFF Software metadata marker and read it back after preserve compression.
  • README status, iOS behavior guidance, metadata policy docs, iOS smoke description, and release dry-run guidance are updated for the 0.2.12 release.
  • Source-level tests and Android verification doctor expectations are updated for the iOS JPEG metadata preserve release.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.12 and GitHub Release v0.2.12.

Not Included

  • Android runtime behavior changes.
  • PNG, WebP, GIF, HEIC, HEIF, or AVIF metadata preserve on iOS.
  • AVIF output, animated AVIF preservation, HEIC/HEIF output, GIF animation preservation, animated WebP preservation, cancellation, or progress support.

Release Checklist

Before npm publish:

git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-run

After npm publish:

npm publish --tag latest
pnpm smoke:registry -- --version 0.2.12
git tag -a v0.2.12 -m "v0.2.12"
git push origin v0.2.12

Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release commit. After npm publish, the registry smoke must confirm the real 0.2.12 tarball README no longer includes stale candidate package-page status snippets.