Switching package registration systems soon

Currently, packages are registered against METADATA.jl and that is synced to General, which is how all Julia versions ≥ 0.7 get info about package versions. Newer Julia versions do not understand the old METADATA.jl format at all, they only look at and understand General. The reason that things are still registered that way is because:

  1. We did not have any tooling for registering packages against General when 1.0 was released but we still wanted it to work with the new system, not the old one.

  2. We did not want to break the existing registration process for users of older versions of Julia.

The way to handle both issues was to keep registering against METADATA.jl and replicate that information to the new registry format and use that for installing packages from newer Julia versions. Somewhere in a data center in Cambridge MA there’s a computer with a screen session under my account running the sync script that generates General from METADATA.jl.

What we are going to do now is turn of that sync script. That means that METADATA.jl and General will both continue to exist but they will become independent: registering something in METADATA.jl will not cause it to show up in General and vice versa.

Going forward:

  • We will only allow registering new versions of packages in METADATA.jl if the version supports at least one older version of Julia (≤ 0.6). In order to register such a version, you will have to use the old-school attobot / PkgDev workflow.

  • We will only allow registering new versions of packages in General if the version supports at least one newer version of Julia (≥ 1.0). In order to register such a version, you will have to use the new-school Registrator workflow.

  • You’ll note that there can be package versions that qualify in both categories—i.e. ones that support both an older ≤ 0.6 Julia version and a newer ≥ 1.0 Julia version. In such a case, you will have to register the package twice: once with the old attobot / PkgDev workflow and another time with the new Registrator workflow. Please register the same commit with the same version number in both. If you don’t, it’s not the end of the world since whatever’s in METADATA.jl will be forgotten in the sands of time relatively soon, but it just seems bad to register different things in different registries with the same name and version number.

15 Likes