Skip to content

Bug in Registrator.jl: New package PR (for SimSpread.jl) contained two versions, one of which is not installable (and might not have ever been installable) #146758

@DilumAluthge

Description

@DilumAluthge

I believe that I've identified a bug in Registrator.jl that is now causing problems when trying to change a package URL. The purpose of opening this issue is three-fold:

  1. Figure out how to help the package author in this specific situation.
  2. Diagnose and fix the bug in Registrator.jl.
  3. Add checks to AutoMerge to catch this kind of issue in the future.

The specific situation here concerns the SimSpread.jl package (located in the registry at S/SimSpread).

The SimSpread package was originally registered in October 2023; here is the new package PR: #94323

Look at the diff for #94323: https://github.com/JuliaRegistries/General/pull/94323/files

Specifically, look at the diff for S/SimSpread/Versions.toml file:

["1.0.2"]
git-tree-sha1 = "28da8c8721266b5dfba926a66f609b8fb9337940"
["1.0.3"]
git-tree-sha1 = "9f4d8e3032e4d14e7f08ea5e18760d0b7cbcac57"

Somehow, Registrator.jl put two versions (1.0.2 and 1.0.3) into #94323. This (to me) seems like a clear bug. A single PR should only register a single version; this should hold true whether the PR is a new package PR or a new version PR.

Currently AutoMerge is not set up to detect this kind of situation; AutoMerge assumes that Registrator.jl generates PRs in certain ways, with "one version per PR" being one of those assumptions. So on #94323, I'm guessing that AutoMerge only ran its checks on 1.0.3, and AFAICT (from the AutoMerge comment) those checks passed, and the PR was AutoMerged.

Unfortunately, 1.0.2 was never checked by AutoMerge. And, per the author (see #145696 (comment)), there is no commit in the repo that corresponds to 1.0.2.

The author is now transferring the repo to an org (#145696), and the Treecheck is failing, because the "new repo" doesn't contain the tree for 1.0.2.

Some questions:

  1. What do we do in the specific situation? Do we delete 1.0.2 from the registry? Historically, we never delete registered versions, except in very rare situations. However, this might be one of those very exceptional situations. It's not even clear to me if 1.0.2 has ever been installable.
  2. Where is the bug in Registrator.jl, and how do we fix it?
  3. What kind of checks can we add to AutoMerge to detect this kind of issue before merging?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions