Skip to content

SwiftMediaMetadata 2.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 19:45
· 18 commits to main since this release

Added

  • Deterministic parser property tests now exercise TIFF/Exif, ISOBMFF, XMP,
    C2PA/JUMBF, and video bitstreams with truncations, malformed lengths, seeded
    byte soup, and write-read-write stability checks. A reusable script supports
    longer reproducible local runs.
  • Release tooling now provides a single macOS preflight, a tag-driven GitHub
    release workflow, SHA-256 checksums, archive-content validation, and a
    step-by-step 2.0 release/Homebrew checklist.
  • ImageMetadata.WriteOptions.FileModificationDatePolicy controls filesystem
    modification dates independently of timestamps embedded in media metadata.
    Use .preserveExisting for in-place edits or .set(Date) when a new output
    should inherit a source file's date. Image, video, audio, XMP sidecar, and
    batch writes share the policy.
  • Mutating CLI commands accept -P / --preserve-file-modification-date.

Changed

  • Breaking: the Swift package, library product, importable module, source
    target, and test targets are renamed from SwiftExif to
    SwiftMediaMetadata. Clients must use the renamed GitHub repository, depend
    on the SwiftMediaMetadata product, and replace import SwiftExif with
    import SwiftMediaMetadata. The installed swift-exif CLI command is
    unchanged.
  • Image, video, audio, and XMP sidecar writes now use one internal filesystem
    transaction for atomic replacement, backups, temporary-file cleanup, and
    file attributes.
  • The 33,536-city offline geolocation database is now a versioned bundled
    resource instead of 54,000 lines of generated Swift literals. Reverse
    geocoding behavior is unchanged, while a measured clean library build is 79%
    faster and the geolocation debug object shrinks from 12.0 MB to 102 KB.