RustAudio / rodio

Rust audio playback library
Apache License 2.0
1.66k stars 214 forks source link

CI: add release tag on release #587

Open romainpi opened 3 days ago

romainpi commented 3 days ago

Hello there,

Firstly I would like to thank the creator, maintainers and contributors of this project. This project is very useful and it was very interesting to read the source code.

I've been working on a small personal project that uses this crate and have made a series of patches/hack that add some specialized features for some specific use case my project required a few months back.

I was in the process of rebasing those patches against the latest release of the crate and have realised that the code on the master branch isn't the code for the latest published crate on crates.io. I have been able to awkwardly pinpoint the 0.18.1 release to the #ee73f6 commit by checking the source code on the docs.rs webpage for the project.

Could it be possible to ask if you could create and push git tags for the next Rodio releases? That would be very useful for me and probably for other coders using/perusing this project. Currently it's not clear if the master branch is stable (simply due to the fact it contains commits that aren't in the published crate), in any case I'm looking forward to the 0.19 release with TrackPosition! :)

Thank you in advance and all the best to all of you!

dvdsk commented 3 days ago

and have made a series of patches/hack that add some specialized features

Sounds intriguing!

I was in the process of rebasing those patches against the latest release of the crate and have realised that the code on the master branch isn't the code for the latest published crate on crates.io

Correct, when new features are added I tend to let a few weeks pass before releasing a new version in the hope that any issues are caught. The current master branch is pretty much stable, no one works on it only finished bugfixes/features land on it.

Could it be possible to ask if you could create and push git tags for the next Rodio releases?

Agreed that should be added to CI. At the moment when the version is incremented in the Cargo.toml CI triggers a release to crates.io.

in any case I'm looking forward to the 0.19 release with TrackPosition

Should be up on crates.io now.

Thank you in advance and all the best to all of you!

Thank you for your kind words :)

dvdsk commented 3 days ago

I kinda dislike Github actions, if anyone wants to give this a go let me know here.

romainpi commented 3 days ago

Sounds intriguing!

Haha yeah I sold it hard, but basically it's just so I can enable a vu-meter, the patch exposes the output signal from a mixer for visualization purposes. It's pretty crude but if you want I can do a PR for it!

At the moment when the version is incremented in the Cargo.toml CI triggers a release to crates.io.

I didn't think to look at it, it was right under my nose!

I kinda dislike Github actions, if anyone wants to give this a go let me know here.

Yea doing it this on the CI side is a great idea. I'm willing to have a go at it. I could probably have it create tags for all the published versions since the beginning of the project.

dvdsk commented 2 days ago

exposes the output signal from a mixer for visualization purposes

(I know almost nothing about volume but...) would a Source layer be able to do this? It could expose volume similarly to how Trackposition is implemented. You would not need to patch rodio for that (only to add it to the Sink).

It's pretty crude but if you want I can do a PR for it!

It sounds like a good feature to have in rodio. Though it might take a while to get it implemented nicely. If you have the time for that lets do a PR. A draft PR is perfectly fine, we can discuss in the PR how it could be improved/better implemented.

Yea doing it this on the CI side is a great idea. I'm willing to have a go at it.

please do :)

est31 commented 2 days ago

FTR, lib.rs has a list of git hashes corresponding to each release: https://lib.rs/crates/rodio/versions (click the "git" link).

I'm a bit sad that this isn't exposed in neither crates.io or cargo, as it is present in the .crate file.