Unsatisfiable requirements detected for package ImageCore

This started when I realized my ImageDraw was stuck on v0.1.0. So I tried adding its #master but was told ImageCore was holding it back, so I removed ImageDraw, tried to update ImageCore to #master, but got this:

(v1.1) pkg> add ImageCore#master
  Updating git-repo `https://github.com/JuliaImages/ImageCore.jl.git`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package ImageCore [a09fc81d]:
 ImageCore [a09fc81d] log:
 ├─possible versions are: 0.8.3 or uninstalled
 ├─ImageCore [a09fc81d] is fixed to version 0.8.3
 └─found to have no compatible versions left with GLMakie [e9467ef8] 
   └─GLMakie [e9467ef8] log:
     ├─possible versions are: 0.0.1-0.0.5 or uninstalled
     └─restricted to versions 0.0.5-* by Makie [ee78f7c6], leaving only versions 0.0.5
       └─Makie [ee78f7c6] log:
         ├─possible versions are: 0.9.3 or uninstalled
         └─Makie [ee78f7c6] is fixed to version 0.9.3

Any insight…?

I’ll just add that I can add the latest ImageDraw (v0.2.1) in a separate environment:

(tmp) pkg> add ImageDraw
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed FixedPointNumbers ─ v0.6.1
  Updating `~/tmp/Project.toml`
  [4381153b] + ImageDraw v0.2.1

You might need to manually loosen bounds in your ~/.julia/registries/General/. If you come up with a combination that works and all tests pass, please submit as a PR to GitHub - JuliaRegistries/General: The official registry of general Julia packages.

TL;DR: look at the Compat.toml files in the registry for all packages mentioned.

There are several issues here.

A compatibility range of “0-0.7” for ImageCore was automatically assigned to Makie and GLMakie by the registrator, since they do not specify any range in their respective Project.toml files. I think that covered the available versions at the time of registration, so it makes sense. Meanwhile ImageCore and friends have moved on; so if you have Makie, you can’t update ImageCore.

It would be nice if the Makie developers would verify the true compatibility range and perhaps update their Project.toml files (or acknowledge an issue to make their packages compatible w/ ImageCore v0.8 etc.).

There is also the known issue that Pkg will not currently (offer to) downgrade a currently required package in order to allow addition of a new package. So if you have up-to-date ImageCore, you can’t add Makie.

The more serious problem is that crucial details are often missing from the error message produced by the Pkg resolver. AFAICT one has to dig through the registry files to figure out what is going on.

Super useful, thank you!!!

OK, so while there are no limits set in the [compat] section in either of Makie/GLMakie’s Project.toml files, I can see some limits in my ~/.julia/registries/General/M/Makie/Compat.toml file…

Removing Makie and other related packages solved my ImageDraw problem, so I guess it was indeed Makie.

Passing all tests locally for Makie and Images is always a bit tricky (in my experience), which I guess, is in of itself a bit problematic. So I’m a little reluctant to go look for some specific set of compatibility-settings. I’ll manage like this share my experiences on slack#makie.