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

Version numbers containing a build number #437

Closed
plut opened this issue Oct 23, 2021 · 4 comments
Closed

Version numbers containing a build number #437

plut opened this issue Oct 23, 2021 · 4 comments

Comments

@plut
Copy link

plut commented Oct 23, 2021

Version numbers containing a build number (of the form v0.0.0+0) are always rejected by AutoMerge/guidelines.jl:

    if _has_prerelease_andor_build_data(new_version)
        return false,
        "Version number is not allowed to contain prerelease or build data",
        :invalid
    end

However, BinaryBuilder.jl does create version numbers including build numbers (example), and I see no explicit rule against such a format in the automatic merging guidelines (the rule really says nothing about build numbers).

Is the interdiction of build numbers on purpose? I would argue that allowing a build number bump is useful at least in the case of JLLs. Case in point, my JLL is a C++ -> C -> Julia double-wrapper. When I update the C code (e.g. exposing new functionality from the C++ library), I want to somehow bump the JLL package (so that pkg>up makes the new functionality available!), but there is also a tradition that the JLL version number should always track that of the original (in that case, C++) library — so, in that case, the only possible bump goes in the build number.

I also opened a matching issue in BinaryBuilder.jl since this happens on the interaction of those two packages.

@DilumAluthge
Copy link
Member

DilumAluthge commented Oct 23, 2021

This is intentional. For PRs made by the @jlbuild bot on behalf of Yggdrasil, we have a hardcoded exception to this rule. We only make this exception because Yggdrasil makes heavy use of build numbers.

Therefore, if you are using Yggdrasil, your JLL package is allowed to use build numbers and make build number bumps.

All other packages are expected to adhere to on the guidelines.

@DilumAluthge
Copy link
Member

We should add a note to the documentation
that version numbers are not permitted to include build numbers or be prerelease version numbers.

@plut
Copy link
Author

plut commented Oct 24, 2021

This looks like build numbers are forbidden except when they are useful. Should not the exemption be expanded to all JLL builds however, instead of restricting it to a particular (if important) source? Right now this makes it gratuitously hard to test a JLL before inclusion in Yggdrasil (which is what I'm trying to do here).

@giordano
Copy link
Member

Right now this makes it gratuitously hard to test a JLL before inclusion in Yggdrasil (which is what I'm trying to do here).

What does that mean? Why are you registering a JLL outside of Yggdrasil if you plan to move it to Yggdrasil?

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

No branches or pull requests

3 participants