uutils / uutils/coreutils

Changing the versioning scheme

Open
#5,083 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wontfix
Dominant language
Rust
Stars
24.1k
Forks
2k
Avg merge
1d 5h
Merged PRs (30d)
365

Description

Our versioning scheme up to this point has been quite simple, we simply increment the patch number while keeping major and minor numbers at 0. At some point it will be appropriate to make a more significant bump.

For the proposals below, I'll use the letters X, Y and Z to be the major, minor and patch numbers. So a full version is X.Y.Z and we currently increment Z on each release.

We're fairly certain on one point: 1.0.0 should be tagged when we pass almost all GNU tests. It's probably not going to be 100%, but somewhere close to that. What the exact percentage will be, we'll have to decide later.

Also, we should be roughly following semver. According to semver though, 0.Y.Z is unstable and arbitrary. There are several things we could do until 1.0.0 (feel free to propose other schemes):

  • Keep incrementing Z
  • Let Y be the number of utils that pass all GNU tests and increment Z if there's no change in that number (proposed by @sylvestre)
  • Let Y be the percentage of passing GNU tests divided by 10 (so 0.3.0 passes 30% of tests) and increment Z otherwise.

The last two options have the advantage that they convey some information about the state of the project, though that meaning will also need to be explained. They are also a bit more complicated.

Once we hit 1.0.0, we will have to change the scheme regardless of what option we pick.

What are your opinions?

cc @sylvestre @cakebaker

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the proposed versioning schemes and the GNU test milestone described in the issue. This discussion needs a maintainer decision on the scheme, its transition to 1.0.0, and how the chosen meaning will be documented; no files or tests are identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.