fluencelabs / fluencelabs/aquavm
Pre-release naming convention
- Dominant language
- Rust
- Stars
- 154
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
The naming convention of this crate can be non obvious to user of SemVer 2.0. Indeed your use of pre-release tag will lead https://crates.io/crates/air-interpreter-wasm/versions order to differ than https://crates.io/crates/air-interpreter-wasm/versions?sort=semver in a way you may not expect. For example, I take only 0.24.0 pre-release:
precedence rule, what Cargo do to order them, from higher to lower:
0.24.0-update-readme.9
0.24.0-update-readme.8
0.24.0-update-readme.7
0.24.0-update-readme.6
0.24.0-update-readme.5
0.24.0-update-readme.4
0.24.0-update-readme.3
0.24.0-update-readme.2
0.24.0-update-readme.1
0.24.0-update-readme.0
0.24.0-update-faas-again.0
0.24.0-update-faas.1
0.24.0-update-faas.0
0.24.0-ttl-in-js.0
0.24.0-misc-add-developer-notes.1
0.24.0-misc-add-developer-notes.0
0.24.0-hotfix.0
0.24.0-feat-improve-scope-error-handling.0
0.24.0-feat-252-add-support-of-ttl.0
and date order more recent to more old
0.24.0-update-readme.9
0.24.0-update-readme.8
0.24.0-update-readme.7
0.24.0-update-readme.6
0.24.0-update-readme.5
0.24.0-update-readme.4
0.24.0-update-readme.3
0.24.0-update-readme.2
0.24.0-update-readme.1
0.24.0-update-readme.0
0.24.0-update-faas-again.0
0.24.0-hotfix.0
0.24.0-update-faas.1
0.24.0-update-faas.0
0.24.0-ttl-in-js.0
0.24.0-misc-add-developer-notes.1
0.24.0-misc-add-developer-notes.0
0.24.0-feat-improve-scope-error-handling.0
0.24.0-feat-252-add-support-of-ttl.0
As you can see their differ. You must be aware that most use case of pre-release will not work with your system. I would strongly advice you to not use descriptive identifier separator as first identifier of a pre-release: `0.24.0-update-readme.2` should be `0.24.0-rc.2.update_readme`, `0.24.0-update-faas.0` should be `0.24.0-rc.3.update_faas`, etc... notice that if you want your pre-release to be logically considerate breaking change you should do `0.24.0-hotfix.0` => `0.24.0-rc3.hotfix.0`. The first identifier of a pre-release tag is often considerate as PREMAJOR like.
Thus I would still recommand to reduce your usage of pre-release, I'm not sure "update-readme" make a lot of sense for a programming user of your crate. Most other Rust crate use `alpha.0`, `beta.0`, `beta.1` or `rc0.0`, `rc1.0` or `rc1.1` convention. And your version page in crates.io are already very long to load. You release a LOT of version. It's unexpected any user will be able to follow this.
Contributor guide
Research direction
Review the release and versioning workflow alongside the SemVer 2.0 and Cargo ordering examples in the issue. Define an agreed pre-release naming policy and verify that published versions sort as intended; the issue names no files or tests, so the relevant repository entry points must first be located.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- release
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100