Giter Site home page Giter Site logo

MSRV Policy & CI about rust-id3 HOT 4 CLOSED

pinkforest avatar pinkforest commented on July 30, 2024
MSRV Policy & CI

from rust-id3.

Comments (4)

polyfloyd avatar polyfloyd commented on July 30, 2024

Yes, this would be good to have. But what?

Does Rust itself have a guideline for how long to support older versions? What do other crates have? What Rust version is most commonly shipped by Linux distro's?

I often work with Go too, which officially support the latest and the previous stable version, which is about 1 year with Go's release schedule.

On thing that I am definitely will be factoring in is maintenance burden, as I prefer to keep this project alive and well but not spend too much time on it 😬

from rust-id3.

polyfloyd avatar polyfloyd commented on July 30, 2024

Related: https://internals.rust-lang.org/t/rust-msrv-policy-and-linux-distros/17074

from rust-id3.

pinkforest avatar pinkforest commented on July 30, 2024

With binaries it's less of an issue and mainly hangs on what ever the distros have yes.

But with libraries the problem becomes all the downstream consumers especially if 10 layers down the dependencies we are pretty conscious when we raise MSRV given every layer of dependency takes time to bump with more moving parts.

My motivation here was because my builds for audiotags broke as downstream library consumer + who ever was using audiotags as a library downstream here so I was hoping to have a standard(ish) library style policy and I think just setting initial MSRV to 1.65 would be safe bet reflecting what most ecosystem is now currently at that provides enough flexibility and what the current established practice in the ecosystem.

We can add MSRV test with -Z minimal-versions nightly Cargo.lock generate will test it in CI properly automatically e.g. what we use in curve25519-dalek -

I've already sent a PR for that #128 too as well as quick placeholder fix #129 to resolve the build errors downstream if you're amenable to this solution.

Crucial bit in the MSRV Policy would be to bump minor patch version when ever MSRV gets bumped so downstream knows the MSRV was bumped giving them informed choice to stay at lower version until they are ready to go over the MSRV bump.

As to maintenance burden the MSRV test in CI handles most of it so if there is at least no accidental MSRV bump so we know it when happens consciously and then signal minor patch version that can be bumped at downstream when needed.

See policy we use elsewhere e.g. curve25519-dalek MSRV policy: https://github.com/dalek-cryptography/curve25519-dalek/tree/main/curve25519-dalek#minimum-supported-rust-version

from rust-id3.

polyfloyd avatar polyfloyd commented on July 30, 2024

Alright, thank you for picking this up.

We have not really established a real policy, so I'll support v1.65 as long as it requires not too much effort. If there ever comes a sort of recommendation from the Rust org/community then id3 will probably follow that.

from rust-id3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.