ANN: METADATA frozen for Julia 0.4

Julia’s METADATA package repository has been frozen for Julia 0.4. This means that new packages and tags cannot be registered if they list julia 0.4 in the requires file. The minimum allowed version of Julia for new registrations is 0.5.0.

Another consequence of going through this process is that allowing prereleases for the current release version (i.e. specifying julia 0.6- in requires) is no longer allowed for new registrations. Please use julia 0.6 instead.

In case you’re not entirely familiar with how Julia’s package version resolution works, I’ll note that previous package tags should not be changed; users who for whatever reason are still on Julia 0.4 will still be able to install packages, they just won’t get the newest versions.

If a package lists julia 0.4 (or even julia 0.3) in the REQUIRE file, should this be changed to julia 0.5, or should the line simply be removed?

REQUIRE files always need a julia <min> line. Before the package is registered, or if it’s already registered then before it’s tagged next, REQUIRE will need to be updated to at least julia 0.5 in order for it to be accepted into METADATA. Existing tags should not be altered.

Pkg.test() can succeed for a package that lacks such a line. Should this be considered a bug?

Also, this is inconsistent with the documentation, which says (emphasis mine):

You should have a REQUIRE file in your package repository, with a bare minimum directive of what Julia version you expect your users to be running for the package to work.

Of course, updating the line to say julia 0.5 in a package that is known to support julia 0.3 seems to contradict this recommendation. I’m fine with this for now, as long as it is planned to never freeze METADATA for versions 1.0 or higher.

Just curious, why not 0.6.1? What would be the rationale of writing a new package for 0.5.0 at this point for public use?

There are plenty of 0.5 users out there, and package authors might want to maintain and upgrade packages for those users. The freeze applies not just to new packages, but also tags of existing packages.

For 0.4, if there is need for any particular package, I’m sure exceptions can be granted. However, we know most packages do not work on 0.4 any more, and we do not want package authors to continue to use the old declarations simply out of inertia. That is the primary goal of this freeze.

1 Like