Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency exiftool-vendored to v29 #14220

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 19, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
exiftool-vendored (source) ^28.3.1 -> ^29.0.0 age adoption passing confidence

Release Notes

photostructure/exiftool-vendored.js (exiftool-vendored)

v29.1.0

Compare Source

  • 🌱 Upgraded ExifTool to version 13.17. Note that this release includes seventeen ExifTool version bumps (from November 2024 through January 2025--Phil Harvey has been busy!). Although I haven't seen any breaking changes in the Tags generation or test suite with the new versions, please do your own validation.

  • ✨ Thanks to Mert for adding forceWrite to binary tag extraction.

  • ✨ ExifTool's Geolocation feature seems to work around some obscure GPS encoding issues where the decimal sign gets ignored. This project now leverages that "corrected" GPS location by adopting the hemisphere signs, which seems to fix this issue.

  • 🐞 Removed OffsetTime from the list of Timezone offset tags we infer tz from. Thanks for the heads-up, Carsten Otto!

  • 📦 Updated to the latest eslint, which required rewriting the config, and delinting the new nits

  • 📦 Deleted most of the prettier config to accept their defaults. This created a huge no-op commit but now it's over.

v29.0.0

Compare Source

  • 💔/🐞/📦 ExifTool sometimes returns boolean values for some tags, like SemanticStylePreset, but uses "Yes" or "No" values for other tags, like GPSValid (TIL!). If the tag name ends in Valid and is truthy (1, true, "Yes") or falsy (0, false, "No"), we'll convert it to a boolean for you. Note that this is arguably a breaking API change, but it should be what you were already expecting (so is it a bug fix?). See the diff to the Tags interface in this version to verify what types have changed.

  • 📦 Reduced streamFlushMillis to 10. This reduced elapsed time for the full test suite by 2.5x on macOS and 3x on Windows, and drops the upper latency bound substantially. Note that this is at the risk of buffered stream collisions between tasks. The (extensive) test suite on Github Actions (whose virtual machines are notoriously slower than molasses) still runs solidly, but if you see internal errors, please open a Github issue and increase your streamFlushMillis.

  • 💔 TypeScript now emits ES2022, which requires Node.js 18.

GPS improvements
  • 🐞/📦 GPS Latitude and GPS Longitude values are now parsed from DMS notation, which seems to avoid some incorrectly signed values in some file formats (especially for some problematic XMP exports, like from Apple Photos). Numeric GPSLatitude and GPSLongitude are still accepted: to avoid the new coordinates parsing code, restore GPSLatitude and GPSLongitude to the ExifToolOptions.numericTags array.

  • 🐞/📦 If ExifToolOptions.geolocation is enabled, and GeolocationPosition exists, and we got numeric GPS coordinates, we will assume the hemisphere from GeolocationPosition, as that tag seems to correct for more conditions than GPS*Ref values.

  • 🐞/📦 If the encoded GPS location is invalid, all GPS* and Geolocation* metadata will be omitted from ExifTool.readTags(). Prior versions let some values (like GPSCoordinates) from invalid values slip by. A location is invalid if latitude and longitude are 0, out of bounds, either are unspecified.

  • 🐞/📦 Reading and writing GPS latitude and GPS longitude values is surprisingly tricky, and could fail for some file formats due to inconsistent handling of negative values. Now, within ExifTool.writeTags(), we will automatically set GPSLatitudeRef and GPSLongitudeRef if lat/lon are provided but references are unspecified. More tests were added to verify this workaround. On reads, GPSLatitudeRef and GPSLongitudeRef will be backfilled to be correct. Note that they only return "N" | "S" | "E" | "W" now, rather than possibly being the full cardinal direction name.

  • 🐞 If ignoreZeroZeroLatLon and geolocation were true, (0,0) location timezones could still be inferred in prior versions.

  • 📦 GPS coordinates are now round to 6 decimal places (≈11cm precision). This exceeds consumer GPS accuracy while simplifying test assertions and reducing noise in comparisons. Previously storing full float precision added complexity without practical benefit.


Configuration

📅 Schedule: Branch creation - "on tuesday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added changelog:skip dependencies Pull requests that update a dependency file labels Nov 19, 2024
@renovate renovate bot requested a review from danieldietzler as a code owner November 19, 2024 01:19
@renovate renovate bot force-pushed the renovate/major-exiftool branch 2 times, most recently from 67e32c2 to 679978e Compare December 18, 2024 18:16
@renovate renovate bot force-pushed the renovate/major-exiftool branch from 679978e to a897044 Compare January 11, 2025 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog:skip dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants