Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix generating pre-release deb/rpm versions when using '.' #700

Merged
merged 1 commit into from
May 24, 2022

Conversation

thaJeztah
Copy link
Member

The script assumed that pre-release suffixes used the format -tp<number>,
-beta<number> or -rc<number>, however, it's more common (and standard
practice in SemVer) to delimit the alpha/beta/rc with a ., which allows
SemVer comparing to first sort by pre-release version (alpha, beta, rc),
then by the numeric suffix.

Altogether, we should consider removing this code; using tp as a pre-release
before alpha / beta is non-standard (pre-releases are named alpha, beta,
rc, so that they can be sorted alphabetically. Using tp violates that assumption,
and adds the complexity of having to add a numeric prefix to make it sort again.
Also see https://www.debian.org/doc/debian-policy/ch-controlfields.html#epochs-should-be-used-sparingly

Before:

./rpm/gen-rpm-ver . 22.06.0-beta0
22.06.0 1.0.beta0 6e7db7f 22.06.0-beta0

./rpm/gen-rpm-ver . 22.06.0-beta.0
22.06.0.beta.0 3 6e7db7f 22.06.0-beta.0

./deb/gen-deb-ver . 22.06.0-beta0
22.06.0~1.0.beta0 22.06.0-beta0

./deb/gen-deb-ver . 22.06.0-beta.0
22.06.0~beta.0~3 22.06.0-beta.0

After:

./rpm/gen-rpm-ver . 22.06.0-beta0
22.06.0 1.0.beta0 3091da7 22.06.0-beta0

./rpm/gen-rpm-ver . 22.06.0-beta.0
22.06.0 1.0.beta.0 3091da7 22.06.0-beta.0

./deb/gen-deb-ver . 22.06.0-beta0
22.06.0~1.0.beta0 22.06.0-beta0

./deb/gen-deb-ver . 22.06.0-beta.0
22.06.0~1.0.beta.0 22.06.0-beta.0

The script assumed that pre-release suffixes used the format `-tp<number>`,
`-beta<number>` or `-rc<number>`, however, it's more common (and standard
practice in SemVer) to delimit the `alpha/beta/rc` with a `.`, which allows
SemVer comparing to first sort by pre-release version (`alpha`, `beta`, `rc`),
then by the numeric suffix.

Altogether, we should consider removing this code; using `tp` as a pre-release
*before* `alpha` / `beta` is non-standard (pre-releases are named `alpha`, `beta`,
`rc`, so that they can be sorted alphabetically. Using `tp` violates that assumption,
and adds the complexity of having to add a numeric prefix to make it sort again.
Also see https://www.debian.org/doc/debian-policy/ch-controlfields.html#epochs-should-be-used-sparingly

Before:

    ./rpm/gen-rpm-ver . 22.06.0-beta0
    22.06.0 1.0.beta0 6e7db7f 22.06.0-beta0

    ./rpm/gen-rpm-ver . 22.06.0-beta.0
    22.06.0.beta.0 3 6e7db7f 22.06.0-beta.0

    ./deb/gen-deb-ver . 22.06.0-beta0
    22.06.0~1.0.beta0 22.06.0-beta0

    ./deb/gen-deb-ver . 22.06.0-beta.0
    22.06.0~beta.0~3 22.06.0-beta.0

After:

    ./rpm/gen-rpm-ver . 22.06.0-beta0
    22.06.0 1.0.beta0 3091da7 22.06.0-beta0

    ./rpm/gen-rpm-ver . 22.06.0-beta.0
    22.06.0 1.0.beta.0 3091da7 22.06.0-beta.0

    ./deb/gen-deb-ver . 22.06.0-beta0
    22.06.0~1.0.beta0 22.06.0-beta0

    ./deb/gen-deb-ver . 22.06.0-beta.0
    22.06.0~1.0.beta.0 22.06.0-beta.0

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@thaJeztah thaJeztah merged commit ab19b1c into docker:master May 24, 2022
@thaJeztah thaJeztah deleted the gen_version_fix branch May 24, 2022 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants