Hello, everyone I start this thread to discussion if it possible to release package seperately, especially for some new language implemeantions like rust which is still at pre 1.0 stage.
I understand this doesn't align with the community's current practices, and I didn't thoroughly research whether this has been discussed before. But I really think there are many benefits for this: - Users can receive updates more quickly and regularly. They don't need to wait for the entire avro project to release. - Rust implementers no longer need to cherry-pick commits, significantly reducing their workload. The release process could be as simple as tag at main branch, vote and let CI to do publish. - Given the current low activity of Avro Rust, most releases for Avro are merely dependency updates. We can save some effort by aligning with avro-java's own release schedule. - The last point, which I believe is the most important, could attract more Avro Rust users to develop at upstream. The rust community has built avro[1], avro-rs[2], rsgen-avro[3], serde-avro-bytes[4], serde_avro_fast[5], avro-schema[6], struct-from-avro[7], serde-avro[8]. By combining our efforts, we can significantly accelerate improvements in Avro Rust. There are also some risks: - Implementing these changes requires extra effort from the community. - Avro Rust releases may be less frequent because it doesn't keep up with the main Avro repository. - Release rust seperately doesn't change the fact that PMC members still need to do the work. I believe most issues can be addressed: - I have implemented the whole rust release process for OpenDAL[9] and iceberg-rust[10]. I am also willing to help build the Rust release process for Avro. - That's possible, but I believe once we can get more developers involved in developing Avro Rust, we can release more frequently instead. - That's true, but verify rust release should be super simple with correct tools. My experience in this area can be helpful. What do you think? [1]: https://crates.io/crates/avro [2]: https://crates.io/crates/avro-rs [3]:https://crates.io/crates/rsgen-avro [4]: https://crates.io/crates/serde-avro-bytes [5]: https://crates.io/crates/serde_avro_fast [6]: https://crates.io/crates/avro-schema [7]: https://crates.io/crates/struct-from-avro [8]: https://crates.io/crates/serde-avro [9]: https://opendal.apache.org/community/release/ [10]: https://rust.iceberg.apache.org/release.html Xuanwo https://xuanwo.io/