Skip to content

Release 0.21.0 #721

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Release 0.21.0 #721

wants to merge 9 commits into from

Conversation

dvdsk
Copy link
Collaborator

@dvdsk dvdsk commented Mar 27, 2025

Chores:

  • check upgrade guide
  • write announcement
  • put release date in CHANGELOG
  • update examples link in README

@PetrGlad
Copy link
Collaborator

There are may API changes. 0.30 maybe?

// Who does not like bike-shedding?

@dvdsk
Copy link
Collaborator Author

dvdsk commented Mar 28, 2025

There are may API changes. 0.30 maybe?

luckily we do not need to make that decision, semver (https://semver.org) has done it for us :)

I do like the idea of a 1.0.0 eventually. We can probably do that after:

  • solving the span silliness
  • replacing Sink with something that handles crossfade gracefully

@PetrGlad
Copy link
Collaborator

PetrGlad commented Mar 29, 2025

As you mentioned already thousands of projects depend on it and it is sad fact of live that people generally do not read documentation, including semantic versioning guides. No problem picking next minor version, of course.

@dvdsk
Copy link
Collaborator Author

dvdsk commented Mar 29, 2025

I'll place an announcement on reddit and the rust user forum noting its a breaking release and explicitly mention the upgrade guide and documentation.

maybe that will help

@dvdsk
Copy link
Collaborator Author

dvdsk commented Mar 31, 2025

Ready for review and then release. I would prefer to release either next monday or before friday this week. Since during the weekend I can not handle any fallout/questions.

@roderickvd
Copy link
Collaborator

On a business trip now, could offer a few nitpicks but would have to do it on mobile (biggest one: gapless is only with Symphonia, and already was in 0.20 - biggest fix here is the availability of total_duration).

Come to think of, there are also some function return type changes in the Source trait that users who implement that need to know about.

Overarching question: the way I perceive the upgrade guide, it's indeed to migrate and fix compilation issues. I'm wondering if we should shed a little more light on some internals; the f32 pipeline and why we moved away from the generics?

@dvdsk
Copy link
Collaborator Author

dvdsk commented Apr 1, 2025

another thing, bincode has the migration guide in the docs, seems like a good idea to me.

@dvdsk
Copy link
Collaborator Author

dvdsk commented Apr 1, 2025

blocked by #724

Copy link
Collaborator

@roderickvd roderickvd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions.

@dvdsk
Copy link
Collaborator Author

dvdsk commented Apr 4, 2025

Some suggestions.

thank you very much, I'll get on that some day next week. Next time full free to edit the code/docs on the branch directly. Then I'll just look at the diff and bring up any contentious change.

@roderickvd
Copy link
Collaborator

blocked by #730

@dvdsk
Copy link
Collaborator Author

dvdsk commented May 12, 2025

rebased on main

@dvdsk dvdsk mentioned this pull request May 22, 2025
@dvdsk dvdsk force-pushed the 0.21 branch 3 times, most recently from 6d9b6c9 to d58968b Compare June 4, 2025 21:35
@dvdsk
Copy link
Collaborator Author

dvdsk commented Jun 4, 2025

rebased on master

@dvdsk dvdsk force-pushed the 0.21 branch 3 times, most recently from ac0b1b8 to 946cce2 Compare June 4, 2025 22:28
@dvdsk dvdsk marked this pull request as ready for review June 4, 2025 22:30
@dvdsk
Copy link
Collaborator Author

dvdsk commented Jun 4, 2025

we should be good to release now :)

@dvdsk dvdsk requested review from roderickvd and PetrGlad June 4, 2025 22:30
other contributors helping out. Thanks to you all this release:

- Makes the API easier to use:
- Its now impossible to accidentally drop the `Outputstream`.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unfortunately this is not true, I must have misremembered... (at least a quick check with the music_flac example shows it to be false)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay got a solution for this, see #746 and #747 and let me know which you prefer.

@@ -40,6 +42,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Breaking: `ReadSeekSource::new()` now takes `Settings`.
- Breaking: Sources now use `f32` samples. To convert to and from other types of samples use
functions from `dasp_sample` crate. For example `DaspSample::from_sample(sample)`.
- Breaking: `symphonia::SeekError` has a new variant `AccurateSeekNotSupported`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may also want to add:

Breaking: `symphonia::SeekError` has a new variant `RandomAccessNotSupported`. This error usually means that you are trying to seek backward without `is_seekable` or `byte_len` set: use `Decoder::try_from` or `DecoderBuilder` for that.

@@ -51,7 +56,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
correctly.
- Removed unwrap() calls in MP3, WAV, FLAC and Vorbis format detection for better error handling.
- `LoopedDecoder::size_hint` now correctly indicates an infinite stream.
- Symphonia decoder `total_duration` for Vorbis now return the correct value (#696).
- Symphonia decoder `total_duration` no longer returns None when it could
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: want to use None and Some (with backticks?)

- Adds new functionality:
- Amplify using decibals or perceptually.
- Add a distortion effect.
- You can use rodio without `cpal` to generate `wav` files!
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want to highlight the decoder builder as well?

Copy link
Collaborator

@roderickvd roderickvd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good that we took some time to vet this release.

@madsmtm
Copy link
Contributor

madsmtm commented Jun 10, 2025

Mind if I suggest you include #754 in this release as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants