Setting correctly package dependencies


I’m starting the developpement of a package, and i have errors in the CI that i dont get on my machine, without me understanding how to fix them.

Look at the log there. Seems like some package ‘Artifacts’ has contradictory dependencies on the version, and hence none left to install, but i dont get why.

Could someone dig into the .toml files of the repo and eventually tell me what is happening ? Or just point me to the right documentation for this kind of thing :slight_smile:

Those error are appearing on the nightly build of Julia. Have you tried that in your machine?

Probably not related, but you probably can set the Julia dependency to “1.5” for the moment, not “1.5.2”, which is likely too strict.

No im’ not on the nightly builds on my machine. The github actions I setted up through PkgTemplates.jl work with nightly builds of julia ? In that case, all i have to do is wait, right ?

Btw, Is there a way to have more github action on “stable” AND “nightly” ?

I’ll switch the dependency to julia for 1.5 instead of 1.5.2.

Edit: Indeed, github actions names says ‘nightly’… i should have catch that.

Actually I don’t know why your CI run does not run with the stable release of Julia as well. It may be because of that Julia dependency. My package CIs always run on both.

Concerning the nightly build error, I had one experience with that and, at some point, I checked what was going on to see if that was something I had to solve or, perhaps, inform some other package developer. In my case, it was “my fault”, and the error would persist when the nightly build becomes stable.

Could you point me to your package, so i can look at the github actions files and find how to setup runs for both nightly and stable ?

Thanks, now i have actions on both 1.5 and nightly.

So if it still bugs on 1.5, which we will know in a few minuts, how should i proceed to fix this kind of dependency bugs ?

Apparently they are passing in the Julia stable. You might do nothing and wait, or test the Julia nightly on your machine to localize the problem better and, perhaps, do something about it (as warning the developers of some package).

But, for example, you package will fail with that dependency on Julia 1.5 when the new stable version comes out, if someone tries to install it from Julia 1.6, and that might be the case of some package you depend upon. (Thus, it might be worth seeing if your package runs fine in Julia 1.0, if so, you can simplify your requirement to “1”, and you will be safe from your side until Julia 2).

So if i understood you correctly, it might be worth to run my CI on julia 1 instead of 1.5 (which for the moment is 1.5, but will soon be 1.6) ?

No, I think it will run on 1.5.3 anyway if you put Jula = "1" as a requirement (you can test if you need 1.5 or greater in your machine, installing Julia 1.0 locally).

There may be some CI command to chose the Julia version (I don’t know). With the default CI file it seems that it will either run on the latest stable if that is compatible with your requirement, or will only run on the nightly build.