Genie.jl ERROR: Unsatisfiable requirements detected for package WebSockets

question

#1

Good morning @essenciary,
I am new to programming and Julia and am very interested in Genie.jl. I followed the instructions on the website but got the following error:
“ERROR: Unsatisfiable requirements detected for package WebSockets”

I tried a few things without any success. Can you help me please?


#2

@Rohan Sure - what were you trying to do, more exactly?

Also, can you please provide the output of julia> versioninfo() and pkg> st?

If you want to learn a bit about Genie, please use the README:

Many things have changed recently and other sources have not been updated yet.

Let me know how it goes.


#3

I tried adding WebSockets, adding HTTP again and tried updating everything, but I guess I am doing it wrong :wink:

julia> versioninfo()
Julia Version 1.0.1
Commit 0d713926f8 (2018-09-29 19:05 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)
Environment:
  JULIA_EDITOR = "C:\Users\username\AppData\Local\JuliaPro\app-1.29.0\atom.exe" -a
  JULIA_NUM_THREADS = 4
  JULIA_PKG_SERVER = https://pkg.juliacomputing.com/
  JULIA_PKG_TOKEN_PATH = C:\Users\username\.julia\token.toml
(JuliaPro_v1.0.1.1) pkg> st
    Status `C:\Users\username\AppData\Local\JuliaPro\pkgs-1.0.1.1\environments\JuliaPro_v1.0.1.1\Project.toml`
  [c52e3926] Atom v0.7.6
  [6e4b80f9] BenchmarkTools v0.4.1
  [336ed68f] CSV v0.4.1
  [aaaa29a8] Clustering v0.12.1
  [a93c6f00] DataFrames v0.14.1
  [7806a523] DecisionTree v0.8.1
  [c41d0e25] Flax v0.0.0 [`C:\Users\username\.julia\dev\Flax`]
  [f7f18e0c] GLFW v2.2.0
  [28b8d3ca] GR v0.34.1
  [4c0ca9eb] Gtk v0.16.4
  [682c06a0] JSON v0.19.0
  [e5e0dc1b] Juno v0.5.3
  [ee78f7c6] Makie v0.9.0
  [9b87118b] PackageCompiler v0.5.0
  [91a5bcdd] Plots v0.20.2
  [3646fa90] ScikitLearn v0.5.0
  [340e8cb6] SearchLight v0.1.0 [`C:\Users\username\.julia\dev\SearchLight`]
  [60ddc479] StatPlots v0.8.1
  [a2db99b7] TextAnalysis v0.5.0
  [cd3eb016] HTTP
  [de0858da] Printf

Thanks for your reply!


#4

Ok, yes, you don’t need to do that. Julia/Pkg is much smarter now when it comes to managing dependencies. You can just go ahead and remove everything Genie related which you added – then please follow the README.

Basically pkg> add https://github.com/essenciary/Genie.jl is all it takes – plus the same for SearchLight if you want the ORM (it’s optional really). But like I said, it’s all in the README, with a lot more details.

Lmk how it goes.


#5

Cool, will try that tonight. I did follow the README but I guess I must have done something wrong. I only tried the other stuff after the README did not work. I will remove every thing and try again.

Thanks for your patience!


#6

It looks like it requires HTTP which requires Julia 0.7.0
I ran into a similer problem installing Escher.
You can probably add the package if you downgrade to Julia 0.7.0

For Linux you can look in ~/.julia/registries/General/H/HTTP/Compat.toml to see the dependency,
I don’t know where it is in windows or mac.

There are probably more issues like this with 1.0, I’m guessing most will be fixed sooner than later.


#7

@essenciary, I removed everything Genie.jl related and followed the README but got the same error.

(JuliaPro_v1.0.1.1) pkg> add https://github.com/essenciary/Genie.jl
   Cloning git-repo `https://github.com/essenciary/Genie.jl`
  Updating git-repo `https://github.com/essenciary/Genie.jl`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package WebSockets [104b5d7c]:
 WebSockets [104b5d7c] log:
 ├─possible versions are: [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3] or uninstalled
 ├─restricted to versions * by Genie [c43c736e], leaving only versions [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3]
 │ └─Genie [c43c736e] log:
 │   ├─possible versions are: 0.1.0 or uninstalled
 │   └─Genie [c43c736e] is fixed to version 0.1.0
 ├─restricted by julia compatibility requirements to versions: 1.0.0-1.0.3 or uninstalled, leaving only versions: 1.0.0-1.0.3
 └─restricted by compatibility requirements with HTTP [cd3eb016] to versions: [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0] or uninstalled — no versions left
   └─HTTP [cd3eb016] log:
     ├─possible versions are: 0.7.0 or uninstalled
     └─restricted to versions * by Genie [c43c736e], leaving only versions 0.7.0
       └─Genie [c43c736e] log: see above

Sorry for the stupid question @lkadgrjh, but do I have to wait for the HTTP.jl package to be compatible with 1.0 before trying again?

Thanks for your replies guys! Appreciate!


#8

Seems your registry is out of date (and is not updating). Could you try delete .julia/registries/General and try again.


#9

Sorry, I analyzed that wrong.
The problem is not HTTP, it has an entry: julia = “0.7-1.1”.
I think that means 1.0.2 is good because it is in the range.

It says Genie needs WebSockets
And WebSockets needs HTTP [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0]
But Genie is restricting HTTP to version 0.7.0

HTTP 0.7.0 is not in the range of [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0]

I’m new to this and am probably missing something,
but I don’t see how this would work with any version of Julia.


#10

@Rohan Can you please show the output of pkg> st again?

Also, can you try setting this up, as instructed in its README:


#11

@essenciary, I uninstalled JuliaPro and Julia and reinstalled it. Then run pkg"add https://github.com/essenciary/Genie.jl" as per README. I got:

julia> pkg"add https://github.com/essenciary/Genie.jl"
  Updating git-repo `https://github.com/essenciary/Genie.jl`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package WebSockets [104b5d7c]:
 WebSockets [104b5d7c] log:
 ├─possible versions are: [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3] or uninstalled
 ├─restricted to versions * by Genie [c43c736e], leaving only versions [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0, 1.0.0-1.0.3]
 │ └─Genie [c43c736e] log:
 │   ├─possible versions are: 0.1.0 or uninstalled
 │   └─Genie [c43c736e] is fixed to version 0.1.0
 ├─restricted by julia compatibility requirements to versions: 1.0.0-1.0.3 or uninstalled, leaving only versions: 1.0.0-1.0.3
 └─restricted by compatibility requirements with HTTP [cd3eb016] to versions: [0.0.1-0.0.6, 0.1.0-0.1.2, 0.2.0-0.2.3, 0.3.0, 0.4.0, 0.5.0] or uninstalled — no versions left
   └─HTTP [cd3eb016] log:
     ├─possible versions are: 0.7.0 or uninstalled
     └─restricted to versions * by Genie [c43c736e], leaving only versions 0.7.0
       └─Genie [c43c736e] log: see above
Stacktrace:
 [1] #propagate_constraints!#61(::Bool, ::Function, ::Pkg.GraphType.Graph, ::Set{Int64}) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\GraphType.jl:1005
 [2] propagate_constraints! at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\GraphType.jl:946 [inlined]
 [3] #simplify_graph!#121(::Bool, ::Function, ::Pkg.GraphType.Graph, ::Set{Int64}) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\GraphType.jl:1460
 [4] simplify_graph! at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\GraphType.jl:1460 [inlined]
 [5] macro expansion at .\logging.jl:319 [inlined]
 [6] resolve_versions!(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}, ::Nothing) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\Operations.jl:343
 [7] resolve_versions! at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\Operations.jl:306 [inlined]
 [8] #add_or_develop#60(::Array{Base.UUID,1}, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\Operations.jl:1205
 [9] #add_or_develop at .\none:0 [inlined]
 [10] #add_or_develop#13(::Symbol, ::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at C:\Users\julia\AppData\Local\Julia-1.0.1\shaare\julia\stdlib\v1.0\Pkg\src\API.jl:64
 [11] (::getfield(Pkg.API, Symbol("#kw##add_or_develop")))(::NamedTuple{(:mode,),Tuple{Symbol}}, ::typeof(Pkg.API.add_or_develop), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at .\none:0
 [12] do_add!(::Dict{Symbol,Any}, ::Array{Pkg.Types.PackageSpec,1}, ::Dict{Symbol,Any}) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\REPLMode.jl:708
 [13] #invokelatest#1(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Any, ::Any, ::Vararg{Any,N} where N) at .\essentials.jl:697
 [14] invokelatest(::Any, ::Any, ::Vararg{Any,N} where N) at .\essentials.jl:696
 [15] do_cmd!(::Pkg.REPLMode.PkgCommand, ::Pkg.REPLMode.MiniREPL) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\REPLMode.jl:602
 [16] #do_cmd#33(::Bool, ::Function, ::Pkg.REPLMode.MiniREPL, ::String) at C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\REPLMode.jl:576
 [17] (::getfield(Pkg.REPLMode, Symbol("#kw##do_cmd")))(::NamedTuple{(:do_rethrow,),Tuple{Bool}}, ::typeof(Pkg.REPLMode.do_cmd), ::Pkg.REPLMode.MiniREPL, ::String) at .\none:0
 [18] top-level scope at none:0

@kristoffer.carlsson, sorry for the stupid question, but how do I do that? (I saw there were some issues with dirty registries (Registry dirty), but can’t find Registries under C:/Users/username/.julia. Only dev, logs and token.toml.

Hehe, thanx @lkadgrjh, I am also very new to this, I appreciate everybody’s input.

The pkg> st with fresh JuliaPro:

(JuliaPro_v1.0.1.1) pkg> st
    Status `C:\JuliaPro-1.0.1.1\pkgs-1.0.1.1\environments\JuliaPro_v1.0.1.1\Project.toml`
  [c52e3926] Atom v0.7.6
  [336ed68f] CSV v0.4.1
  [a93c6f00] DataFrames v0.14.1
  [7806a523] DecisionTree v0.8.1
  [682c06a0] JSON v0.19.0
  [e5e0dc1b] Juno v0.5.3

#12

I have no idea what leads to conflicts, it’s the first time I see this.

Per my above comment, can you please try setting up the example genie app, as described in its readme:

This will create a separate package environment for the app alone.


#13

@Rohan
I used the instructions essenciary recomended & it worked.

dad@dads tmp git clone https://github.com/essenciary/Genie-Searchlight-example-app.git
dad@dads tmp julia102

julia> ]

(v1.0) pkg> activate .

(tmp) pkg> instantiate
Updating registry at ~/.julia/registries/General
Updating git-repo https://github.com/JuliaRegistries/General.git
Resolving package versions…

I’m don’t know how cloaning, activating & instantiating differs from adding, but I’ve got something new to study :slight_smile:


#14

@kristoffer.carlsson has complete knowledge of how these things work. But basically activate . and instantiate created a new Pkg environment, local to this app, like a clean slate separate from the packages you previously added in the global environment (v1.0).


#15

@Rohan, I missed a crucial step when I cloned Genie, you need to change directory to the directory created by git clone.

After getting it to work properly with the clone I blew away everything in my .julia directory & tried it with an add. That worked also.

The fact that you can’t find a .julia/registries/General directory is strange.
When I blow away everything under .julia, the first time I do an add. that directory is created and populated. I’m thinking you might have another .julia directory somewhere but I don’t know enough about windows to be much help. I’ve been using Linux since 2005.


#16

@lkadgrjh, Last night I also tried the instructions @essenciary recommended and it also worked! But it feels like a hollow victory, because now I can’t add any packages. I tried adding 4 or 5 more new packages and all gave errors. So I still have the dirty directory thing. I don’t have a Genie.jl problem, but rather a package manager that stopped working problem (it worked the last month)?? My .julia only has dev and logs in. @lkadgrjh, do you use JuliaPro and Juno? I even got hold of another laptop yesterday, installed JuliaPro and the same thing happen when I added packages.


#17

Sorry about that, @kristoffer.carlsson is the best person to ask about these. Maybe open an issue with Pkg on Github?


#18

I think so too, since this is not a Genie.jl problem. @essenciary, @lkadgrjh, thanks for all your help! I have learned a lot. Now I have to google how to open an issue :slight_smile:


#19

@Rohan I did a manual install, on linux it’s really easy

  1. download Generic Linux Binaries for x86 (julia-1.0.2-linux-x86_64.tar.gz)
  2. uncompress it, that created the directory julia-1.0.2
  3. put a symbolic link to julia-1.0.2/bin/julia in my local bin
  4. the first time i ran it, it made a .julia directory in my user directory and populated it
  5. the first time I added a package it populated .julia/registries/General