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

**URL:** <https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678>\
**Category:** Juno\
**Tags:** question\
**Created:** [February 15, 2020, 11:15am UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678 "2020-02-15T11:15:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![tencnivel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tencnivel/32/8662_2.png) [@tencnivel](https://discourse.julialang.org/u/tencnivel)\
**Post date:** [February 15, 2020, 11:15am UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/1 "2020-02-15T11:15:26Z")

</div>

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

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

```

I get

```julia
[...]
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?

---

<div class="post-metadata">

**Author:** ![Sukera](https://avatars.discourse-cdn.com/v4/letter/s/ce7236/32.png) [@Sukera](https://discourse.julialang.org/u/Sukera)\
**Post date:** [February 15, 2020, 11:22am UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/2 "2020-02-15T11:22:02Z")

</div>

> [@Pkg can't load packages present in Manifest.toml?](https://discourse.julialang.org/t/pkg-cant-load-packages-present-in-manifest-toml/13636/4):
>
> You can only have one version of a given package at a time. You can, however, have different packages with the same name in the overall dependency graph. It is intentional that you must explicitly declare your dependencies at the top level. These are connected facts since the top-level Colors could be totally unrelated to an indirect Colors dependency.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [February 15, 2020, 5:21pm UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/3 "2020-02-15T17:21:38Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 15, 2020, 5:24pm UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/4 "2020-02-15T17:24:45Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tencnivel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tencnivel/32/8662_2.png) [@tencnivel](https://discourse.julialang.org/u/tencnivel)\
**Post date:** [February 17, 2020, 7:25am UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/5 "2020-02-17T07:25:11Z")

</div>

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 ☹

---

<div class="post-metadata">

**Author:** ![tencnivel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tencnivel/32/8662_2.png) [@tencnivel](https://discourse.julialang.org/u/tencnivel)\
**Post date:** [February 17, 2020, 8:05am UTC](https://discourse.julialang.org/t/diamond-dependencies-problem-between-atom-dependencies-and-my-projects-dependencies/34678/6 "2020-02-17T08:05:56Z")

</div>

From this post :

> [@Autocompletion & tab complete no longer work after Atom Package update](https://discourse.julialang.org/t/autocompletion-tab-complete-no-longer-work-after-atom-package-update/18344):
>
> Today Atom told me there where updates available to 3 packages, Julia\_client, ink, and one other. I promply updated and after the restart Autocompletion is no longer working. If I hit tab where I previously got completion I now get spaces. Working on OSX.

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
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](https://github.com/JunoLab/Juno.jl/issues/480)

After updating to Atom@0.12.2, Juno works as expected 🙂
