Skip to content

Bump nom-exif from 2.7.0 to 3.4.1#719

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/nom-exif-3.4.1
Closed

Bump nom-exif from 2.7.0 to 3.4.1#719
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/nom-exif-3.4.1

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 13, 2026

Bumps nom-exif from 2.7.0 to 3.4.1.

Release notes

Sourced from nom-exif's releases.

v3.4.1

Fixed

  • GPS sub-IFD parsing for Sony A7C2 HIF (and any camera that emits GPSVersionID first)IfdIter::parse_tag_entry short-circuited on tag == 0 as a defensive guard against zero-padded malformed IFDs. But tag 0 is also the legitimate GPSVersionID — the spec-defined first entry of the GPS sub-IFD. Aborting iteration there caused the whole sub-IFD to be dropped, silently losing every GPS field. Now gated on !self.is_gps_subifd() so the defense survives in non-GPS contexts while GPSVersionID parses normally. Fixes #50.

Full changelog: CHANGELOG.md · crates.io: nom-exif 3.4.1

v3.4.0

Changed (BREAKING for serde feature)

  • Structured Serialize for EntryValue. The previous impl stringified everything via Display, which meant numeric arrays and Undefined byte blobs were truncated with ... after 8 / 9 elements — JSON consumers silently lost data, and rationals came out as opaque strings like "175/100 (1.7500)". The new shape:
    • Scalar numerics → JSON numbers.
    • Text / DateTime / NaiveDateTime → strings (formats unchanged).
    • URational / IRational{"numerator", "denominator"} objects (uses the existing Rational<T> Serialize derive).
    • URationalArray / IRationalArray → JSON arrays of those objects, never truncated.
    • Undefined(Vec<u8>) → continuous lowercase hex string (e.g. "30323230"), never truncated.
    • U8Array / U16Array / U32Array → JSON arrays of numbers.

Changed (BREAKING for Display / to_string)

  • Display no longer truncates arrays. The 8-element ellipsis cap on Undefined, U8Array, U16Array, U32Array, and the 3-element cap on URationalArray / IRationalArray are gone. to_string() now emits every element. Callers that need a length cap should impose it at their layer (rexiftool already does this).
  • EntryValue::Undefined rendering redesigned. When all bytes are printable ASCII (0x20..=0x7E), it now displays as a quoted string (e.g. ExifVersion"0220", GPSProcessingMethod"CELLID"). Otherwise it displays as a continuous lowercase hex string prefixed with 0x (e.g. ComponentsConfiguration0x01020300). The Undefined[0xNN, 0xNN, ...] wrapper is gone. U8Array / U16Array / U32Array keep their Name[...] form.

... (truncated)

Changelog

Sourced from nom-exif's changelog.

nom-exif v3.4.1 (2026-05-12)

Fixed

  • GPS sub-IFD parsing for Sony A7C2 HIF (and any camera that emits GPSVersionID first)IfdIter::parse_tag_entry short-circuited on tag == 0 as a defensive guard against zero-padded malformed IFDs. But tag 0 is also the legitimate GPSVersionID — the spec-defined first entry of the GPS sub-IFD. Aborting iteration there caused the whole sub-IFD to be dropped, silently losing every GPS field. Now gated on !self.is_gps_subifd() so the defense survives in non-GPS contexts while GPSVersionID parses normally. Fixes #50.

nom-exif v3.4.0 (2026-05-10)

Changed (BREAKING for serde feature)

  • Structured Serialize for EntryValue. The previous impl stringified everything via Display, which meant numeric arrays and Undefined byte blobs were truncated with ... after 8 / 9 elements — JSON consumers silently lost data, and rationals came out as opaque strings like "175/100 (1.7500)". The new shape:
    • Scalar numerics → JSON numbers.
    • Text / DateTime / NaiveDateTime → strings (formats unchanged).
    • URational / IRational{"numerator", "denominator"} objects (uses the existing Rational<T> Serialize derive).
    • URationalArray / IRationalArray → JSON arrays of those objects, never truncated.
    • Undefined(Vec<u8>) → continuous lowercase hex string (e.g. "30323230"), never truncated.
    • U8Array / U16Array / U32Array → JSON arrays of numbers.

Changed (BREAKING for Display / to_string)

  • Display no longer truncates arrays. The 8-element ellipsis cap on Undefined, U8Array, U16Array, U32Array, and the 3-element cap on URationalArray / IRationalArray are gone. to_string() now emits every element. Callers that need a length cap should impose it at their layer (rexiftool already does this).
  • EntryValue::Undefined rendering redesigned. When all bytes are printable ASCII (0x20..=0x7E), it now displays as a quoted string (e.g. ExifVersion"0220", GPSProcessingMethod"CELLID"). Otherwise it displays as a continuous lowercase hex string prefixed with 0x (e.g. ComponentsConfiguration0x01020300). The Undefined[0xNN, 0xNN, ...] wrapper is gone. U8Array / U16Array / U32Array keep their Name[...] form.

nom-exif v3.3.0 (2026-05-10)

Added

  • PNG support (#18)read_exif("foo.png") and friends now work

... (truncated)

Commits
  • 75163f9 release: nom-exif v3.4.1 (2026-05-12) — Sony A7C2 HIF GPS fix
  • 476f24f docs(travel): warn future maintainers about the tag==0 / GPSVersionID trap
  • 921ca3f fix(exif): parse GPS sub-IFD when GPSVersionID is its first entry
  • 20f2305 release: nom-exif v3.4.0 — structured serde + Display redesign
  • c34a826 release(rexiftool): v0.2.0 — output cleanup, IFD1 hidden by default
  • f3b0e3c rexiftool: cleaner human output — : separator, truncation, IFD1 hidden
  • 0fd122e rexiftool: unify print format across sections
  • 660e914 chore: remove AGENTS.md
  • 3980e64 ci: auto-create draft GitHub release on lib v* tag push
  • 9f30863 docs: tighten Supported File Types into two-line summary
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [nom-exif](https://github.com/mindeng/nom-exif) from 2.7.0 to 3.4.1.
- [Release notes](https://github.com/mindeng/nom-exif/releases)
- [Changelog](https://github.com/mindeng/nom-exif/blob/main/CHANGELOG.md)
- [Commits](mindeng/nom-exif@v2.7.0...v3.4.1)

---
updated-dependencies:
- dependency-name: nom-exif
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels May 13, 2026
@rokeller
Copy link
Copy Markdown
Owner

@dependabot ignore this minor version

@dependabot dependabot Bot closed this May 14, 2026
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 14, 2026

OK, I won't notify you about version 3.4.x again, unless you re-open this PR.

@dependabot dependabot Bot deleted the dependabot/cargo/nom-exif-3.4.1 branch May 14, 2026 13:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant