Pkg.jl
Pkg.jl copied to clipboard
Suggest how to resolve conflict
pkg> add [email protected]
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Observables [510215fc]:
Observables [510215fc] log:
├─possible versions are: 0.2.0-0.5.1 or uninstalled
├─restricted by compatibility requirements with GLMakie [e9467ef8] to versions: [0.2.0-0.4.0, 0.5.1]
│ └─GLMakie [e9467ef8] log:
│ ├─possible versions are: 0.0.1-0.6.13 or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions 0.0.1-0.6.13
│ ├─restricted by compatibility requirements with Colors [5ae59095] to versions: 0.0.18-0.6.13 or uninstalled, leaving only versions: 0.0.18-0.6.13
│ │ └─Colors [5ae59095] log:
│ │ ├─possible versions are: 0.9.0-0.12.8 or uninstalled
│ │ ├─restricted to versions * by an explicit requirement, leaving only versions 0.9.0-0.12.8
│ │ ├─restricted by compatibility requirements with AlgebraOfGraphics [cbdf2221] to versions: 0.12.0-0.12.8
│ │ │ └─AlgebraOfGraphics [cbdf2221] log:
│ │ │ ├─possible versions are: 0.1.0-0.6.11 or uninstalled
│ │ │ └─restricted to versions 0.6.11 by an explicit requirement, leaving only versions 0.6.11
│ │ └─restricted by compatibility requirements with Reexport [189a3867] to versions: 0.12.6-0.12.8 or uninstalled, leaving only versions: 0.12.6-0.12.8
│ │ └─Reexport [189a3867] log:
│ │ ├─possible versions are: 0.2.0-1.2.2 or uninstalled
│ │ ├─restricted to versions [0.2, 1] by PrettyTables [08abe8d2], leaving only versions 0.2.0-1.2.2
│ │ │ └─PrettyTables [08abe8d2] log:
│ │ │ ├─possible versions are: 1.3.1 or uninstalled
│ │ │ └─PrettyTables [08abe8d2] is fixed to version 1.3.1
│ │ └─restricted by compatibility requirements with SampleChainsDynamicHMC [6d9fd711] to versions: 1.0.0-1.2.2
│ │ └─SampleChainsDynamicHMC [6d9fd711] log:
│ │ ├─possible versions are: 0.1.0-0.3.5 or uninstalled
│ │ └─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.3.5
│ └─restricted by compatibility requirements with Makie [ee78f7c6] to versions: [0.0.2-0.2.9, 0.6.6-0.6.13] or uninstalled, leaving only versions: [0.0.18-0.2.9, 0.6.6-0.6.13]
│ └─Makie [ee78f7c6] log:
│ ├─possible versions are: 0.9.0-0.17.13 or uninstalled
│ └─restricted by compatibility requirements with AlgebraOfGraphics [cbdf2221] to versions: 0.17.6-0.17.13
│ └─AlgebraOfGraphics [cbdf2221] log: see above
├─restricted by compatibility requirements with TableView [40c74d1a] to versions: 0.2.0-0.4.0
│ └─TableView [40c74d1a] log:
│ ├─possible versions are: 0.1.0-0.7.1 or uninstalled
│ ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.7.1
│ └─restricted by compatibility requirements with FloatingTableView [197bc772] to versions: 0.6.0-0.7.1
│ └─FloatingTableView [197bc772] log:
│ ├─possible versions are: 0.1.0-0.2.0 or uninstalled
│ └─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.2.0
└─restricted by compatibility requirements with Makie [ee78f7c6] to versions: 0.5.1 — no versions left
└─Makie [ee78f7c6] log: see above
I want to install a package but it gives me a mass of information which I find hard to process (sometimes it's much larger than this). I usually look through it for some packages I recognize and try randomly removing them to see if that helps. I usually have to guess a number of times.
Is there a simple rule for what I should do?
It would be helpful if the resolver could suggest some commands using heuristics for what I can remove in order to get the package I want. Some heuristics might be: a package is not recently used, hasn't been upgraded lately, is behind the upstream version (I'm not sure which of these are possible/make sense).
For example it might say:
Suggestions (any of these should allow installing [email protected]):
rm GLMakie, Observables # least recently used
rm AbstractPlotting # most behind
It's pretty hard to give advice like that. But even though the log might look intimidating, it is usually not too bad to find the root cause, for example here we have:
Observables [510215fc] log:
├─possible versions are: 0.2.0-0.5.1 or uninstalled
├─restricted by compatibility requirements with TableView [40c74d1a] to versions: 0.2.0-0.4.0
└─restricted by compatibility requirements with Makie [ee78f7c6] to versions: 0.5.1 — no versions left
which is clear because the intersection between 0.2.0-0.4.0 and 0.5.1 is empty.
Part of the issue is that the log is quite verbose, so it's not easy to scan the relationships quickly. I've tried editing out parts that do not seem strictly necessary to me and end up with this, which to me seems much easier to read.
ERROR: Unsatisfiable requirements detected for package Observables:
Observables
├─has possible versions: 0.2.0-0.5.1
├─GLMakie requires: [0.2.0-0.4.0, 0.5.1]
│ ├─has possible versions: 0.0.1-0.6.13
│ ├─Colors requires: 0.0.18-0.6.13, leaving: 0.0.18-0.6.13
│ │ ├─has possible versions: 0.9.0-0.12.8
│ │ ├─AlgebraOfGraphics requires: 0.12.0-0.12.8
│ │ │ ├─has possible versions: 0.1.0-0.6.11
│ │ │ └─restricted to versions 0.6.11 explicitly, leaving: 0.6.11
│ │ └─Reexport requires: 0.12.6-0.12.8, leaving: 0.12.6-0.12.8
│ │ ├─has possible versions: 0.2.0-1.2.2
│ │ ├─restricted to versions [0.2, 1] by PrettyTables, leaving: 0.2.0-1.2.2
│ │ │ ├─has possible versions: 1.3.1
│ │ │ └─PrettyTables is fixed to version 1.3.1
│ │ └─SampleChainsDynamicHMC requires: 1.0.0-1.2.2
│ │ └─has possible versions: 0.1.0-0.3.5
│ └─Makie requires: [0.0.2-0.2.9, 0.6.6-0.6.13], leaving: [0.0.18-0.2.9, 0.6.6-0.6.13]
│ ├─has possible versions: 0.9.0-0.17.13
│ └─AlgebraOfGraphics requires: 0.17.6-0.17.13
│ └─see above
├─TableView requires: 0.2.0-0.4.0
│ ├─has possible versions: 0.1.0-0.7.1
│ └─FloatingTableView requires: 0.6.0-0.7.1
│ └─has possible versions: 0.1.0-0.2.0
└─Makie requires: 0.5.1 — no versions left
└─see above
AlgebraOfGraphics [cbdf2221], Colors [5ae59095], FloatingTableView [197bc772],
GLMakie [e9467ef8], Makie [ee78f7c6], Observables [510215fc], PrettyTables [08abe8d2],
Reexport [189a3867], SampleChainsDynamicHMC [6d9fd711], TableView [40c74d1a]
It seems like some lines mentioning restrictions are missing the leaving ... part, but that's from the original so either that's on purpose or a bug. I would find it more consistent if every line noting a restriction mentioned the remaining possible versions, so it filters downwards.