Diamond dependencies problem between Atom dependencies and my project's dependencies

Hello,

I want to use StringDistances v0.6.2 in my project that I am working on in the Juno IDE.

The package Atom v0.11.3 has a dependency to DocSeeker v0.3.1 (version set in the compat bloc) which itself has a dependency to StringDistances v0.4.0. (version set in the compat bloc).

From Atom, if I run the following

using Pkg
Pkg.activate(".")
Pkg.status()

I get

[...]
StringDistances v0.6.2
[...]

That is atctually not the case, julia is using StringDistances v0.4.0 (I can see that because I am missing some functions that are new in v0.6.2 and also when displaying the documentation)

NOTES:

  • I am using julia 1.2
  • If I run my project outside of Atom I don’t have the problem anymore

Is there a way to prevent the Atom package from interfering with the project ?
Is it a bug that Pkg.status() does not reflect the version of the package that is actually used?

2 Likes

That doesn’t seem relevant since in this case it is the same StringDistances package at two different versions that is in question.

1 Like

Yeah, that’s an unfortonate side effect of how Juno loads its dependencies. The next release (which should be out in a few hours) will fix the immediate issue (by allowing StringDistances@0.6).

The release after that will hopefully fix the issue once and for all by vendoring all dependencies.

4 Likes

I upgraded to the latest version of the julia-client for Atom using Atom package manager.
I can now use StringDistances@0.6 but auto completion does not work anymore :frowning_face:

From this post :

I hit Shit-Ctrl-I and I get

Please upgrade Atom.jl to at least version 0.12.0 with e.g. using Pkg; Pkg.update()

I had to remove the current version of DocSeeker that was preventing me from updating to the desired version of Atom

julia> Pkg.add(Pkg.PackageSpec(;name="Atom", version="0.12.0"))
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package DocSeeker [33d173f1]:
 DocSeeker [33d173f1] log:
 ├─possible versions are: 0.3.2 or uninstalled
 ├─DocSeeker [33d173f1] is fixed to version 0.3.2
 └─found to have no compatible versions left with Atom [c52e3926] 
   └─Atom [c52e3926] log:
     ├─possible versions are: [0.8.0-0.8.8, 0.9.0-0.9.1, 0.10.0-0.10.2, 0.11.0-0.11.3, 0.12.0-0.12.2] or uninstalled
     └─restricted to versions 0.12.0 by an explicit requirement, leaving only versions 0.12.0

     
(v1.2) pkg> rm DocSeeker

Pkg.add(Pkg.PackageSpec(;name="Atom", version="0.12.0"))

But Atom@0.12.0 has this issue Atom precompilation fails after Juno v0.8.0 update [BUG] · Issue #480 · JunoLab/Juno.jl · GitHub

After updating to Atom@0.12.2, Juno works as expected :slightly_smiling_face: