Skip to content

Conversation

@omus
Copy link
Contributor

@omus omus commented Jun 14, 2024

Follow up to: #8892 (comment)

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

One alternative I could see is to translate the pandoc-crossref version and include all of the 4th digit in the patch version:

  • v0.3.17.1a -> v0.3.1710
  • v0.3.16.0e -> v0.3.1604

I don't think the registry tests will like this though as the version number is non-incrementing. There may be a special case for JLLs though.

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

Hold off on merging this until we settle on a convention

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

@palday
Copy link
Contributor

palday commented Jun 14, 2024

Looking at the version history of pandoc-crossref, it looks like it uses zerover with the schema 0.major.minor.patch[build] where build is a letter. So we could promote everything one level and and combine patch and build into a single entity: major.minor.julia_patch where julia_patch = patch * 100 + sequence_number(build).

Here are a few examples:

  • 0.3.17.0 -> 3.17.0
  • 0.3.17.0f -> 3.17.006 = 3.17.6
  • 0.3.17.1 -> 3.17.100
  • 0.3.17.1a -> 3.17.101

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

Do we have evidence that pandoc-crossref is using 0ver? From this comment it seems like the package may be using Haskell PvP

I also found this Haskell release of pandoc-crossref which seems to drop the letter from the version: https://hackage.haskell.org/package/pandoc-crossref

@palday
Copy link
Contributor

palday commented Jun 14, 2024

The letter is the build -- no real source change, it just reflects which version of pandoc it was compiled against, which is why for haskell sources it doesn't show up.

I think Haskell PvP is perhaps the better description. Haskell PvP is a lot like SemVer, but one key difference is that it has MAJOR.MAJOR.MINOR.PATCH versioning. It looks pandoc-crossref has locked the first MAJOR to 0, which is the core detail that I was assuming.

@palday
Copy link
Contributor

palday commented Jun 14, 2024

To full incorporate the two MAJORs in PvP, the SemVer major version could be MAJOR[1]*100 + MAJOR[2] so that even if pandoc-cross ref increments the first major, the scheme still works.

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

Some examples of the current JLL version created from the pandoc-crossref version:

julia> pandoc_crossref_jll_version("0.3.17.0")
v"3.17.0"

julia> pandoc_crossref_jll_version("0.3.17.0f")
v"3.17.6"

julia> pandoc_crossref_jll_version("0.3.17.1")
v"3.17.10"

julia> pandoc_crossref_jll_version("0.3.17.1a")
v"3.17.11"

julia> pandoc_crossref_jll_version("0.3.16.0")
v"3.16.0"

julia> pandoc_crossref_jll_version("0.3.16.0a")
v"3.16.1"

julia> pandoc_crossref_jll_version("1.3.4.5")
v"103.4.50"

@omus
Copy link
Contributor Author

omus commented Jun 14, 2024

Updated examples:

julia> pandoc_crossref_jll_version("0.3.17.0")
v"3.17.0"

julia> pandoc_crossref_jll_version("0.3.17.0f")
v"3.17.6"

julia> pandoc_crossref_jll_version("0.3.17.1")
v"3.17.100"

julia> pandoc_crossref_jll_version("0.3.17.1a")
v"3.17.101"

julia> pandoc_crossref_jll_version("0.3.16.0")
v"3.16.0"

julia> pandoc_crossref_jll_version("0.3.16.0a")
v"3.16.1"

julia> pandoc_crossref_jll_version("1.3.4.5")
v"103.4.500"

@giordano giordano merged commit ed95a77 into master Jun 14, 2024
@giordano giordano deleted the cv/pandoc_crossref-0.3.18 branch June 14, 2024 18:42
amontoison pushed a commit that referenced this pull request Jun 22, 2024
* [pandoc_crossref] Compat change requires version bump

* Dynamically create JLL version

* Support build letters beyond `i`
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.

4 participants