Comments (4)
I do actually think there is something to this suggestion. But it's a tricky one to do in practice because it's not a hard rule. The suggestion, as it stands, would mean applying pre-1.0
to the libc
crate for example. What message would that be meant to convey? libc
is as mature as it gets, but it is also pre-1.0. And it's not pre-1.0 because that's specifically what folks want or because it needs more iteration, it's pre-1.0 because putting out a semver incompatible release is hard to do without causing waves in the ecosystem. I'm not sure what to do about that, because at least in some cases, applying a pre-1.0
label isn't going to achieve the intended effect (of either pushing folks toward 1.0 or of communicating stability).
moved past the "anything MAY change at any time"-phase.
Note that this isn't really true in the Cargo ecosystem. That's because Cargo layers additional semantics on 0.x.y
versions that aren't explicitly specified in the semver spec. The spec says "anything goes," but that's not actually what happens in the Rust ecosystem because Cargo treats any increment in the leftmost non-zero digit as semver incompatible. So that means if you do 0.1.2 -> 0.2.0
, then Cargo will treat 0.2.0
the same way it would treat a 2.0.0
in a 1.2.0 -> 2.0.0
transition. This is the single thing that makes pre-1.0 versions tolerable: you still get many of the benefits semver. (The only real downside is that you only have two version components instead of three.)
from blessed-rs.
I don't think pre-1.0 version numbers are a useful metric in evaluating crate maturity/stability, so I don't think this is a good idea.
from blessed-rs.
I don't think pre-1.0 version numbers are a useful metric in evaluating crate maturity/stability, so I don't think this is a good idea.
Why do think it's not a useful metric? AFAIK, cargo follows semver, and major version 0 indicates that the public API is not stable. I think the Rust ecosystem as a whole would benefit from seeing more maintainers stabilizing their APIs, like the http
mainainers recently did. blessed.rs could ever so slightly contribute to that by pointing out the benefit of choosing packages that have moved past the "anything MAY change at any time"-phase.
edited to fix typos.
from blessed-rs.
I also agree that some indicator of stability/maturity would be useful (noting that they're not necessarily the same thing), and also some indication of maintenance status (how actively is the library being maintained). I also agree that version numbers are not a good measure of this. If they were then arguably a separate blessed.rs wouldn't be required.
I think what would probably make sense here is to come up with a custom rating scale (not necessarily numeric) where each rating category has a clear description of it's meaning (so we can have "this is new and experimental", "this is mature and actively maintained", "this is abandoned", "this is mature and in maintenance mode", etc). I think it's potentially a lot of work to rate every crate on the crates list. But I do think this would valuable.
from blessed-rs.
Related Issues (20)
- Add some arena crates HOT 1
- once_cell has been merged into std and stabilized HOT 1
- add parser library HOT 2
- Add Fyrox game engine
- bpaf description seems a bit odd HOT 15
- Is there any dns crate(both server/client) to be added? HOT 3
- Add various encoding crates HOT 6
- Consider adding inquire HOT 1
- Revisit recommended text colouring crate HOT 10
- Add rouille as a "see also" web framework HOT 2
- Add cargo-zigbuild crate
- Add `faer` to `math-scientific` HOT 1
- Add `heapless` to `Common > General > Stack-allocated arrays` (and other data structures) HOT 1
- Add `arboard` to "Clipboard" HOT 1
- a new orm HOT 2
- Add zerocopy to Safe type casts HOT 1
- Page information is outdated and sometimes misleading HOT 6
- Mocking in Rust
- Add scopeguard HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blessed-rs.