Can't add JuliaDB

I try to add JuliaDB and get

(v0.7) pkg> add JuliaDB
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package NamedTuples [73a701b4]:
 NamedTuples [73a701b4] log:
 ├─possible versions are: [0.0.1-0.0.3, 0.1.0, 1.0.0, 2.0.0, 2.1.0, 3.0.0-3.0.3, 4.0.0-4.0.2] or uninstalled
 ├─restricted by compatibility requirements with JuliaDB [a93385a2] to versions: 4.0.0-4.0.2
 │ └─JuliaDB [a93385a2] log:
 │   ├─possible versions are: [0.1.0-0.1.5, 0.2.0-0.2.3, 0.3.0-0.3.7, 0.4.0-0.4.4, 0.5.0, 0.6.0, 0.7.0-0.7.2, 0.8.0-0.8.5] or uninstalled
 │   └─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.5, 0.2.0-0.2.3, 0.3.0-0.3.7, 0.4.0-0.4.4, 0.5.0, 0.6.0, 0.7.0-0.7.2, 0.8.0-0.8.5]
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

But I don’t have NamedTuples

(v0.7) pkg> rm NamedTuples
┌ Warning: `NamedTuples` not in project, ignoring
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v0.7/Pkg/src/Operations.jl:1127
[ Info: No changes

Can you try

pkg> remove --manifest NamedTuples


I thought that JuliaDB was not yet ready for 0.7/1.0.

1 Like

That’s entirely the wrong way to go if you want to get JuliaDB installed on Julia 0.7 or 1.0. Instead you should do

pkg> dev NamedTuples

and then adding JuliaDB will go through. Not that either package can be expected to work though, rather the opposite. But you are in a better position to fix NamedTuples yourself. :slight_smile:

More technically speaking, the latest version of JuliaDB, 0.8.5, has an upper bound on the compatibility with Julia itself, making it only installable on Julia 0.6. When you try to install it on 0.7, it will instead pick 0.8.4, which was released before the upper bound was introduced in the REQUIRE file. However, it depends on NamedTuples, which doesn’t work on 0.7 and also has received an upper bound. In the NamedTuples case, however, the upper bound was introduced in METADATA retroactively for all released versions, meaning no released version can be installed, and the attempt to install JuliaDB v0.8.4 failed because there was no way to satisfy the dependencies. This can be fooled by manually installing NamedTuples, either with develop NamedTuples or with add NamedTuples#master, both of which circumvent the Julia version requirements in METADATA. (And even more technically Pkg3 doesn’t look in METADATA but in a registry that mirrors METADATA, so the effect is the same.)

I’m not entirely convinced about the wisdom of retroactively upper-bounding all versions of NamedTuples without having a new version available that can be installed on Julia 0.7. It’s technically correct since it doesn’t work on 0.7 and very possibly never will, but the package manager doesn’t handle it gracefully enough at this time, as seen by this and quite a few other threads on discourse.

1 Like

Maybe this can improve the situation: End of life package more gracefully. by GunnarFarneback · Pull Request #79 · JuliaData/NamedTuples.jl · GitHub