All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning, except that – as is typical in the Rust community – the minimum supported Rust version may be increased without a major version increase.
Since version 1.9.1, the format of this changelog is based on Keep a Changelog.
12 December 2024
- Update thiserror requirement from 1.0 to 2.0 (#247)
30 August 2024
- Start using release-plz to manage releases
- Update EmbarkStudios/cargo-deny-action action to v2 (#236)
26 July 2024
- (MINOR) Add new API function
XmpFile::try_close
which will report any error encountered when closing a file (#232) - Fix docs to avoid inadvertent list syntax (#231)
09 July 2024
- Restore the
cargo:include
directive (#229)
07 July 2024
- Publish workflow can now run cleanly (#226)
- Update stefanzweifel/git-auto-commit-action action to v5 (#225)
- Update codecov/codecov-action action to v4 (#223)
- (MINOR) XmpMeta can now optionally format itself using Rust-style formatting (#193)
- Update actions/github-script action to v7 (#222)
- Update actions/checkout action to v4 (#219)
- Allow clean build process (#221)
- Update paulhatch/semantic-version action to v5.4.0 (#218)
- Add renovate.json (#206)
- Update for current cc crate (#216)
- Fix Clippy warnings for Rust 1.79 (#215)
- Update deny.toml for recent updates to cargo-deny (#204)
19 March 2024
- Allow build.rs to succeed if git is not present (#203)
23 February 2024
- Relax the requirement on
cc
crate to increase compatibility with other crates (#198) - Restore sem ver check
21 February 2024
- Temporarily disable semantic-version check because we can no longer build 1.7.0
- Prepare 1.7.1 release
- Prepare 1.7.1 release
- Emergency patch: cc 1.0.86 (just released) breaks xmp_toolkit_rs when used in downstream
cargo install
(#194) - [IGNORE] Fix reference to C++ XMP Toolkit to point to December 2023 (#192)
- Silence new C++ build warning on MacOS (#191)
- [IGNORE] Fix a typo in API documentation (#190)
15 January 2024
- (MINOR) Force minor release upgrade for MSRV and C++ Toolkit changes (#189)
- [fix] Use links and export includes (#187)
- [MINOR] Adopt 2023.12 version of C++ XMP Toolkit (#188)
14 November 2023
- (MINOR) Bump MSRV to 1.67 (#182)
16 October 2023
- Use new Mac ARM runner in CI builds (#180)
- (MINOR) Bump MSRV to 1.66.0 (#179)
- (MINOR) Update num_enum requirement from 0.6.0 to 0.7.0 (#178)
09 June 2023
- (MINOR) Bump MSRV to 1.64.0 (#176)
10 April 2023
- Fix #135:
XmpMeta::from_str_with_options
returns empty data model if noxmp_meta
wrapper exists (#174) - (MINOR) Update to Rust 2021 edition (#173)
- Update num_enum requirement from 0.5.7 to 0.6.0 (#169)
27 March 2023
- README update for
crt_static
crate feature (#167) - Added option for static crt using MT flag. (#166)
- Minor updates to documentation and doc links (#168)
18 March 2023
- (MINOR) Add crate feature to convert XmpDateTime to/from chrono DateTime (#165)
10 March 2023
- (MINOR) Add new
xmp_gps
module to help with Exif -> decimal conversions (#163) - Require fs_extra 1.3 or newer (#164)
07 March 2023
- Officially support aarch64 on Linux (#162)
- CI: actions-rs/toolchain is no longer maintained; replace with dtolnay/rust-toolchain (#161)
- Fix aarch64 compilation issues (#159)
09 February 2023
- Implement Send for XmpMeta (#158)
31 January 2023
- Add a note to README stating that only MSVC build chain is supported currently on Windows
- Don't call exit(1) if unable to initialize C++ XMP Toolkit (#156)
19 December 2022
06 November 2022
06 November 2022
- Add reference to API stabilization PR
- New README; propose 1.0 release candidate status
- Port XMP_CoreCoverage.cpp test suite (#108)
- Add
XmpDateTime::convert_to_local_time
andXmpDateTime::convert_to_utc
(#149) - Add
XmpDateTime::set_local_time_zone
(#148) - Add
XmpMeta::compose_field_selector
(#147) - Add
XmpMeta::compose_lang_selector
(#146)
04 November 2022
- Add APIs to allow iteration over the XMP data model (#141)
03 November 2022
- Fix misplaced reference to WXMPIterator.cpp (#139)
- If property value is empty string, pass it to C++ toolkit as NULL (#138)
- Replace
XmpMeta::from_str_requiring_xmp_meta
withXmpMeta::from_str_with_options
(#137) - Add
XmpMeta::from_str_requiring_xmp_meta
(#136)
01 November 2022
- Add
XmpMeta::set_localized_text
(#133) - Add
XmpMeta::delee_qualifier
(#132) - Add
XmpMeta::delete_struct_field
(#131) - Add
XmpMeta::delete_array_item
(#130) - Add
XmpMeta::contains_qualifier
(#129) - Add
XmpMeta::qualifier
(#128) - Allow
XmpMeta::array_item
to acceptXmpMeta::LAST_ITEM
(#127) - Add
XmpMeta::array_item
(#126) - Add
XmpMeta::delete_property
(#125) - Add
XmpMeta::set_qualifier
(#124) - Add
XmpMeta::compose_qualifier_path
(#123) - Add
XmpMeta::array_len
(#122) - Add
XmpMeta::set_array_item
(#121) - Implement
Display
forXmpMeta
(#120) - Add
XmpMeta::compose_array_item_path
(#119) - Add
XmpMeta::set_struct_field
(#118) - Add
XmpMeta::append_array_item
(#117) - Add
XmpMeta::namespace_prefix
andXmpMeta::namespace_uri
accessors (#116)
24 October 2022
- Implement
Clone
forXmpMeta
(#114) - Implement
Default
forXmpMeta
(#113) - Add
XmpMeta::name
andXmpMeta::set_name
accessors (#112) - Impl
Debug
forXmpMeta
(#111) - Fix crash if
XmpMeta::debug_dump_namespaces
was the first call into XMP Toolkit (#110) - Add
XmpMeta::debug_dump_namespaces()
(#109)
23 October 2022
- Add example (port of MyReadXMP app) (#82)
- Add
XmpMeta::struct_field
(#107) - Add
XmpMeta::contains_struct_field
(#106) - Add
XmpMeta::compose_struct_field_path
(#105) - Fix memory leaks when returning strings from C++ to Rust (#104)
- Implement
Display
forXmpDateTime
(#103) - Add
XmpMeta::localized_text
accessor (#99) - Refactor
XmpMeta
documentation for property accessors (#98) - (MINOR) Rename
XmpMeta::does_property_exist
toXmpMeta::contains_property
(#97) - (MINOR) Rename
XmpMeta.array_property
to.property_array
(#96) - Add typed property setters (#95)
- Add typed property getters (#94)
- Remove
Eq
trait bound onXmpValue<T>
(#93)
20 October 2022
- (MINOR)
XmpMeta::set_property
can now passXmpValue
options (#88) - Add options for setting flags on
XmpValue
(#87) - (MINOR) Rework
XmpDateTime
as a non-opaque type (#86) - (MINOR) Refactor how property values are returned from accessor functions (#81)
- Add new API
XmpIter::array_property
(#78) - Add new API function
XmpMeta::from_str
(#77) - (MINOR) Bump MSRV to 1.56 (#75)
20 July 2022
- Remove restriction on Unicode license; allows unicode-ident version to float (#73)
17 July 2022
- Deny panic in production code (#70)
- Introduce new error type
XmpErrorType::NulInRustString
(#68) - Fix unicode-ident to 1.0.1 until review of additional license (#69)
14 July 2022
- Fix broken documentation build (#67)
12 July 2022
- (MINOR) Pass XMP errors from C++ to Rust (#60)
- Refactor test code so it can be excluded from code coverage (#66)
- Require code coverage to upload on all supported platforms (#63)
- (MINOR) Hide access to FFI functions (#61)
07 July 2022
- Fixed build failures on ARM Linux platforms (#57)
- Silence C++ compiler warnings on Mac (#55)
- Rework
OpenFileOptions
as an opaque type (#54) - (MINOR) New module for XMP namespace constants (#53)
- Require API docs for all public API surfaces (#51)
- (MINOR) Bump MSRV to 1.54 (#52)
- Improve docs for
XmpMeta
(#50) - Improve docs for
XmpFile
(#49) - Configure dependabot to watch dependencies brought in via git submodules (#48)
- Add
impl std::error::Error
forXmpFileError
(#47)
22 June 2022
- Add convenience function for reading XMP from a file (#46)
- Update XMP Toolkit to June 2022 release (#42)
- Update libexpat to v2.4.8 (#41)
18 June 2022
- Fix publish workflow to include git submodules
17 June 2022
- Use cargo publish --no-verify because repo contents must be modified during build
17 June 2022
- Improve build infrastructure (#44)
28 April 2022
- Fix a subtle bug in converting to modern function prototypes.
28 April 2022
- Update zlib to v1.2.12. (#38)
- Add Rust 1.60.0 to CI build matrix.
- Remove Rust 1.59.0 from CI build matrix.
08 March 2022
- Update XMP Toolkit to February 2022 release. (#35)
- Update libexpat to v2.4.6. (#36)
- Add Rust 1.59.0 to CI build matrix.
- Remove Rust 1.58.0 from CI build matrix.
28 January 2022
- Implement
Display
trait inXmpFileError
enum. (#32) - Fix Clippy warning about
assert_eq!
with a bool value. (#33) - Add Rust 1.58.0 to CI build matrix. (#30)
- Remove Rust 1.56.0 from CI build matrix.
27 October 2021
- Add Rust 1.56.0 to CI build matrix. (#29)
- Remove Rust 1.53.0 from CI build matrix.
- Update XMP Toolkit submodule to October 2021 Release. (#28)
12 October 2021
- Update XMP Toolkit submodule to August 2021 Release.
- Bumped MSRV to 1.46.0 due to new dependency from bitflags crate.
- Add Rust 1.55.0 to CI build matrix.
- Remove Rust 1.53.0 from CI build matrix.
- Update version references in Cargo.toml.
23 June 2021
- Include libexpat via git submodule and update to version 2.4.1. (#18)
- Add Rust 1.53.0 to CI build matrix.
- Remove Rust 1.51.0 from CI build matrix.
29 March 2021
- Add Rust 1.51.0 to CI build matrix.
- Remove Rust 1.48.0 from CI build matrix.
25 November 2020
- Handle exceptions on OpenFile. (#13)
- Add Rust 1.48.0 to CI build matrix.
- Remove Rust 1.47.0 from CI build matrix.
12 October 2020
- Add support for building on Windows.
- Add Rust 1.47.0 to CI build matrix.
- Remove Rust 1.46.0 from CI build matrix.
04 September 2020
- Add Mac OS builds to CI build matrix.
- Add Rust 1.46.0 to CI build matrix.
02 September 2020
- Improve API documentation.
01 September 2020
- Fix another build issue that occurs only within the docs.rs environment.
01 September 2020
- Fix build issue that occurs within the docs.rs environment.
01 September 2020
- Initial public release.
- Supports Rust 1.44.0 and higher.
- Includes the 24 July 2020 release of C++ XMP Toolkit SDK.