Skip to content

Release 0.9.0

Latest
Compare
Choose a tag to compare
@RustyNova016 RustyNova016 released this 15 Jan 14:24
0e7b21a

Hello everyone! I'm the new maintainer of this crate. Over the past year I have been maintaining a fork of the crate over at musicbrainz_rs_nova, and unlike dotenvy, this fork has been merged back into the original!
I'm also working on two other musicbrainz crates based on this one (Alistral and musicbrainz_db_lite), so I will keep working on it for a long time.

So, after 2 years, here's update 0.9.0! (Continuing from the version numbers of musicbrainz_rs_nova)

Changelog

Models

  • Added pagination to search
  • All the structs are able to be serialized back into the original api response.
    • You can restore the behaviour with the legacy_serialize feature, however it will be removed in the future
    • It may not be the exact same values, as there might still have some missing fields that are hard to notice. If there's one missing, please make an issue!
  • Lots of missing fields have been added.
  • Fixed browse and fetch requests's includes. If there's still some missing, please make a issue.

Client

  • Added MusicbrainzClient. This is a client that holds all the configurations for the requests. It allows setting:
    • The URL of the musicbrainz server
    • The cover art archive url
    • The user agent
    • The number of max retries
    • The reqwest client
    • The ratelimiter
  • A new ratelimiter has been introduced, allowing 1requests per seconds, with bursts of 5 requests by default. Requires the rate_limit feature

Fixes:

  • Cover art errors are propagated upstream
  • "Not found" errors are properly set into an error struct instead of failing to deserialise

Crate:

  • Brought the MSRV up to 1.71.1 due to dependencies changing the MSRV in minor versions.
  • Changed edition to 2021 as the MSRV is higher than the last 2018 edition.

How to update from 0.5.0

This version is a direct continuation of the musicbrainz_rs_nova crate. If you are using musicbrainz_rs 0.5.0, you can temporarily use versions from musicbrainz_rs_nova to incrementally update.

You can use this to load musicbrainz_rs_nova as musicbrainz_rs:

# Incremental migration of musicbrainz_rs through musicbrainz_rs_nova
musicbrainz_rs = { version = "0.6.0", package = "musicbrainz_rs_nova" }

How to update from musicbrainz_rs_nova 0.8.0

You can easily alias the crate like so:

musicbrainz_rs_nova = { version = "0.9.0", package = "musicbrainz_rs" }