jonlil / pioneer-pro-dj-linux

Hopefully one day this application will be able to send files to a rekordbox compatible DJ player.
GNU General Public License v3.0
30 stars 11 forks source link

Update id3 requirement from 0.5.0 to 1.0.1 #123

Closed dependabot[bot] closed 2 years ago

dependabot[bot] commented 2 years ago

Updates the requirements on id3 to permit the latest version.

Changelog

Sourced from id3's changelog.

Version 1.0.1

  • Fix missing description field and incorrect text encoding in SYLT content.

Version 1.0

This is the first stable release of rust-id3! This release adds a few new features but mainly focusses on forward compatibility to allow for easier maintenance in the future.

Breaking changes

The functions for writing and reading tags in WAV/AIFF containers have been renamed:

  • Tag::read_from_aiff_reader(reader: impl io::Read + io::Seek) -> Tag::read_from_aiff(reader: impl io::Read + io::Seek)
  • Tag::read_from_aiff(path: impl AsRef<Path>) -> Tag::read_from_aiff_path(path: impl AsRef<Path>)
  • Tag::read_from_wav_reader(reader: impl io::Read + io::Seek) -> Tag::read_from_wav(reader: impl io::Read + io::Seek)
  • Tag::read_from_wav(path: impl AsRef<Path>) -> Tag::read_from_wav_path(path: impl AsRef<Path>)
  • Tag::write_to_aiff(&self, path: impl AsRef<Path>, version: Version) -> Tag::write_to_aiff_path(&self, path: impl AsRef<Path>, version: Version)
  • Tag::write_to_wav(&self, path: impl AsRef<Path>, version: Version) -> Tag::write_to_wav_path(&self, path: impl AsRef<Path>, version: Version)

The implementation for PartialEq, Eq and Hash has changed for Frame and Content. The new implementations are implemented by Rust's derive macro.

For errors:

  • The implementation for Error::description has been removed as it has been deprecated.
  • Merge ErrorKind::UnsupportedVersion into UnsupportedFeature
  • The description field changed from a &'static str to String to permit more useful messages

The variant names of the TimestampFormat now adhere to Rust naming conventions.

The majority of the Tag functions for mutating and retrieving frames have been moved to the new TagLike trait. This trait is implemented for Tag and Chapter, making it possible to use these functions for both types. As is required by Rust's trait rules, you must now use id3::TagLike to use the functions in this trait.

Compatibility note regarding custom frame decoders

It is a common use case to write custom frame content decoders by matching on the Unknown content type. However, implementing support for such frames in rust-id3 was always a breaking change. This was due to 2 reasons:

  • Content gains a new variant which breaks exhaustive match expressions
  • Frames that previously decoded to Unknown now decode to the new content type, which breaks custom decoders that expect it to be Unknown

To ensure that new frames can be added in the future without breaking compatibility, Content has been marked as non_exhaustive and a new Content::to_unknown function has been added. This function returns the Unknown variant if present or encodes an ad-hoc copy. This way, custom decoders will not silently break.

... (truncated)

Commits
  • 900e51f Version 1.0.1
  • 58b6d05 Fix SYLT (#77)
  • 17d07a2 Version 1.0
  • 7c6852f Limit Cargo.toml to 5 keywords
  • 62a0267 Add changelog for v1.0
  • efdd885 List MLLT support in readme features
  • 0ea0a7f Implement support for MPEG location lookup (MLLT) frames
  • d762f83 Set Rust edition to 2021
  • fb795c8 Add support for Popularimeter (POPM) frames
  • bde03d4 Module v1 can just be a single rust file instead of a dir
  • Additional commits viewable in compare view


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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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)
dependabot[bot] commented 2 years ago

Superseded by #124.