Package Manager resolve complaining of "Unsatisfiable requirements" due to "no known versions"

I frequently get the following error with packages that I’m developing. I usually manage to resolve it but without any understanding or repeatability. How do I tell julia about versions for a package? Am I supposed to tag it in git or some such? I also didn’t see anything about this in the package manager documentation.

Resolving package versions…
ERROR: Unsatisfiable requirements detected for package Models [d5623a7a]:
Models [d5623a7a] log:
├─Models [d5623a7a] has no known versions!
└─restricted to versions * by HMMs [81d28146] — no versions left
└─HMMs [81d28146] log:
├─possible versions are: 0.0.0 or uninstalled
└─HMMs [81d28146] is fixed to version 0.0.0

2 Likes

Models is an unregistered package that is a dependency of some other package, right? Right now, you need to add that package first, before you add HMM.

9 Likes

Thank you! That worked perfectly and explains it.

By the way, could we add a discourse category for the package manager?

2 Likes

Has anything changed here? For unregistered packages that depend on other unregistered packages, do they need to be added manually in order?

The work to track is https://github.com/JuliaLang/Pkg.jl/pull/1628 which aims to significantly improve this.

4 Likes

I am getting the same error in my case Xnumber is a dependency of SHbundle and both of them are unregistered.

ERROR: Unsatisfiable requirements detected for package Xnumber [fdc6275c]:
 Xnumber [fdc6275c] log:
 ├─Xnumber [fdc6275c] has no known versions!
 └─restricted to versions * by SHbundle [685399a2] — no versions left
   └─SHbundle [685399a2] log:
     ├─possible versions are: 0.1.0 or uninstalled
     └─SHbundle [685399a2] is fixed to version 0.1.0

Also I have added Xnumber to SHbundle but when i run the following command in gitlab-ci i get the above error.

- |
      julia --project=docs -e '
        using Pkg
        Pkg.Registry.update()
        Pkg.develop(PackageSpec(path=pwd()))
        Pkg.instantiate()
        using Documenter: doctest
        using SHbundle
        doctest(SHbundle)
        include("docs/make.jl")'

I don’t know how much the first answer is relevant to my case as could not understand the solution.

Solution
This link contains the solution to above comment