Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GraphRecipes or PlotRecipes broken? #93

Closed
caseykneale opened this issue Feb 8, 2020 · 10 comments
Closed

GraphRecipes or PlotRecipes broken? #93

caseykneale opened this issue Feb 8, 2020 · 10 comments

Comments

@caseykneale
Copy link

I'm working on a package that relies heavily on GraphRecipes.

Unfortunately... when I try to use the examples I get the following:

MethodError: no method matching get!(::Plots.Attr, ::Symbol, ::Int64)
Closest candidates are:
  get!(!Matched::LibGit2.CachedCredentials, ::Any, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.3/LibGit2/src/types.jl:1276
  get!(!Matched::IdDict{K,V}, ::Any, ::Any) where {K, V} at abstractdict.jl:648
  get!(!Matched::Dict{K,V}, ::Any, ::Any) where {K, V} at dict.jl:420
  ...

Before updating my package yesterday this was not happening. Did I break my package manager or something?

@mkborregaard
Copy link
Member

Did you resolve this? It could be a Plots/RecipesBase version update thing

@mkborregaard
Copy link
Member

should be resolved by installing RecipesBase 0.8 - is anything holding that back?

@diegozea
Copy link
Collaborator

diegozea commented Feb 8, 2020

This PR blocked RecipesBase in 0.7 : #91

@caseykneale
Copy link
Author

I updated to RecipesBase 0.8 - not working for me still. Tried burning down my environment and still the same issue. Not sure how to debug it, because I don't know what changed yet in the new RecipesBase release.

@JackDevine
Copy link
Member

I locked RecipesBase to 0.7 because that was the only way that I could make the tagbot happy. I should either update or remove the bound on RecipesBase.

Right now I am unable to reproduce the problem, is anyone else able to reproduce the problem?

julia> versioninfo()
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
  JULIA_NUM_THREADS = 8

(v1.3) pkg> st GraphRecipes
    Status `~/.julia/environments/v1.3/Project.toml`
  [1520ce14] AbstractTrees v0.3.1
  [4d00f742] GeometryTypes v0.7.7
  [bd48cda9] GraphRecipes v0.5.0
  [a98d9a8b] Interpolations v0.12.8
  [093fc24a] LightGraphs v1.3.0
  [77ba4419] NaNMath v0.3.3
  [46757867] NetworkLayout v0.2.0
  [995b91a9] PlotUtils v0.6.2
  [3cdcf5f2] RecipesBase v0.7.0

@caseykneale
Copy link
Author

caseykneale commented Feb 9, 2020

julia> versioninfo()
Julia Version 1.3.0
Commit 46ce4d7933 (2019-11-26 06:09 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD Ryzen 3 2200U with Radeon Vega Mobile Gfx
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, znver1)

(v1.3) pkg> st GraphRecipes
    Status `~/.julia/environments/v1.3/Project.toml`
  [bd48cda9] GraphRecipes v0.4.0
  [093fc24a] LightGraphs v1.3.0
  [3cdcf5f2] RecipesBase v0.8.0
  [10745b16] Statistics

Maybe this is a matter of Julia 1.30 and GraphRecipes 0.4.0 breaking with the new RecipesBase? I'll switch over to 1.3.1 to confirm.

@caseykneale
Copy link
Author

caseykneale commented Feb 9, 2020

@JackDevine @mkborregaard On 1.3.1 RecipesBase 0.8 still gets used by compat and it won't run the examples:

julia> versioninfo()
Julia Version 1.3.1
Commit 2d5741174c (2019-12-30 21:36 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD Ryzen 3 2200U with Radeon Vega Mobile Gfx
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, znver1)

(v1.3) pkg> st GraphRecipes
    Status `~/.julia/environments/v1.3/Project.toml`
  [bd48cda9] GraphRecipes v0.4.0
  [093fc24a] LightGraphs v1.3.0
  [3cdcf5f2] RecipesBase v0.8.0
  [10745b16] Statistics 

julia> using GraphRecipes, Plots


julia> g = [0 1 1;
            0 0 1;
            0 1 0]
3×3 Array{Int64,2}:
 0  1  1
 0  0  1
 0  1  0

julia> graphplot(g, names=1:3, curvature_scalar=0.1)

ERROR: MethodError: no method matching get!(::Plots.Attr, ::Symbol, ::Int64)
Closest candidates are:
  get!(::LibGit2.CachedCredentials, ::Any, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.3/LibGit2/src/types.jl:1276
  get!(::IdDict{K,V}, ::Any, ::Any) where {K, V} at abstractdict.jl:648
  get!(::Dict{K,V}, ::Any, ::Any) where {K, V} at dict.jl:420
  ...
Stacktrace:
 [1] apply_recipe(::Plots.Attr, ::Type{Val{:curves}}, ::Array{Float64,1}, ::Array{Float64,1}, ::Nothing) at /home/caseykneale/.julia/packages/RecipesBase/G4s6f/src/RecipesBase.jl:276
 [2] _process_seriesrecipe(::Plots.Plot{Plots.GRBackend}, ::Plots.Attr) at /home/caseykneale/.julia/packages/Plots/fGqyH/src/pipeline.jl:411
 [3] _plot!(::Plots.Plot{Plots.GRBackend}, ::Dict{Symbol,Any}, ::Tuple{GraphRecipes.GraphPlot}) at /home/caseykneale/.julia/packages/Plots/fGqyH/src/plot.jl:233
 [4] #plot#138(::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol},NamedTuple{(:names, :curvature_scalar),Tuple{UnitRange{Int64},Float64}}}, ::typeof(plot), ::GraphRecipes.GraphPlot) at /home/caseykneale/.julia/packages/Plots/fGqyH/src/plot.jl:57
 [5] (::GraphRecipes.var"#kw##graphplot")(::NamedTuple{(:names, :curvature_scalar),Tuple{UnitRange{Int64},Float64}}, ::typeof(graphplot), ::Array{Int64,2}) at ./none:0
 [6] top-level scope at REPL[8]:1

Is the issue that I cannot seem to update to GraphRecipes 0.5? I've tried, update, resolve, etc, no such luck.

@mkborregaard
Copy link
Member

what about using any other Plots recipe (without GraphRecipes)? What's your ]st in that environment? The thing is that the missing method was added to RecipesBase 0.8, so I believe it must somehow still be using 0.7

@caseykneale
Copy link
Author

I can use plot recipes fine (so it seems).

(v1.3) pkg> st
    Status `~/.julia/environments/v1.3/Project.toml`
  [1520ce14] AbstractTrees v0.3.1
  [c52e3926] Atom v0.11.3
  [6e4b80f9] BenchmarkTools v0.4.3
  [ad839575] Blink v0.12.1
  [5d785b6c] CImGui v1.74.2
  [336ed68f] CSV v0.5.23
  [ea656a56] CSyntax v0.3.0
  [159f3aea] Cairo v1.0.2
  [e2554f3b] Clp v0.7.0
  [34f1f09b] ClusterManagers v0.3.2
  [d58978e5] Dagger v0.8.0
  [a93c6f00] DataFrames v0.20.0
  [864edb3b] DataStructures v0.17.9
  [b4f34e82] Distances v0.8.2
  [31c24e10] Distributions v0.22.4
  [7a1cc6ca] FFTW v1.2.0
  [587475ba] Flux v0.10.1
  [f7f18e0c] GLFW v3.2.2
  [28b8d3ca] GR v0.46.0
  [c27321d9] Glob v1.2.0
  [bd48cda9] GraphRecipes v0.4.0
  [a2bd30eb] Graphics v1.0.1
  [4c0ca9eb] Gtk v1.1.2
  [cd3eb016] HTTP v0.8.8
  [7073ff75] IJulia v1.21.1
  [6218d12a] ImageMagick v1.1.2
  [86fae568] ImageView v0.10.6
  [c601a237] Interact v0.10.3
  [9da8a3cd] JLSO v1.3.0
  [682c06a0] JSON v0.21.0
  [a93385a2] JuliaDB v0.13.0
  [e5e0dc1b] Juno v0.7.2
  [a05a14c7] LibSerialPort v0.3.0
  [093fc24a] LightGraphs v1.3.0
  [2f5eb75a] LightGraphsFlows v0.3.1
  [ee78f7c6] Makie v0.9.5
  [eff96d63] Measurements v2.1.1
  [442fdcdd] Measures v0.3.1
  [626554b9] MetaGraphs v0.6.5
  [66fc600b] ModernGL v1.1.2
  [34eca195] MrPhelps v0.1.0 [`~/Desktop/Playground/MrPhelps`]
  [a975b10e] Mux v0.7.1
  [a15396b6] OnlineStats v1.0.3
  [8314cec4] PGFPlotsX v1.2.1
  [91a5bcdd] Plots v0.29.0
  [d330b81b] PyPlot v2.8.2
  [3cdcf5f2] RecipesBase v0.8.0
  [295af30f] Revise v2.5.0
  [5d0f9de7] SerialPorts v0.2.1
  [cf6e98f5] Sherlock v0.1.0 [`~/Desktop/Sherlock.jl`]
  [6303bc30] Signals v1.2.0
  [276daf66] SpecialFunctions v0.10.0
  [2913bbd2] StatsBase v0.32.0
  [f3b207a7] StatsPlots v0.12.0
  [5e47fb64] TestImages v1.0.1
  [8be20c90] TheUI v0.1.0 [`~/Desktop/JuliaInterop/TheUI/TheUI`]
  [9e3dc215] TimeSeries v0.16.0
  [fce5fe82] Turing v0.7.1
  [1986cc42] Unitful v1.0.0
  [ade2ca70] Dates 
  [8ba89e20] Distributed 
  [10745b16] Statistics 

and in that env I can happily run the following example:

using Plots; gr()
struct T end
@recipe f(::T) = rand(100,100)
surface(T())

@caseykneale
Copy link
Author

caseykneale commented Feb 9, 2020

I just tried burning down my package (new toml new everything)
I added: InteractiveUtils, Blink, Interact, Plots, GraphRecipes, and Recipes Base.
I hit resolve, and update and I saw this...

update
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
  Updating `~/Desktop/Sherlock.jl/Project.toml`
  [bd48cda9] ↓ GraphRecipes v0.5.0 ⇒ v0.4.0
  [91a5bcdd] ↑ Plots v0.28.4 ⇒ v0.29.0
  [3cdcf5f2] ↑ RecipesBase v0.7.0 ⇒ v0.8.0
  Updating `~/Desktop/Sherlock.jl/Manifest.toml`
  [1520ce14] - AbstractTrees v0.3.1
  [13072b0f] - AxisAlgorithms v1.0.0
  [53c48c17] ↑ FixedPointNumbers v0.6.1 ⇒ v0.7.1
  [28b8d3ca] ↑ GR v0.44.0 ⇒ v0.46.0
  [bd48cda9] ↓ GraphRecipes v0.5.0 ⇒ v0.4.0
  [a98d9a8b] - Interpolations v0.12.8
  [6fe1bfb0] - OffsetArrays v1.0.2
  [91a5bcdd] ↑ Plots v0.28.4 ⇒ v0.29.0
  [c84ed2f1] - Ratios v0.3.1
  [3cdcf5f2] ↑ RecipesBase v0.7.0 ⇒ v0.8.0
  [efce3f68] - WoodburyMatrices v0.5.0

Looks like something is forcing the incompatibility?
IE Graph Recipes goes Down to 0.4
RecipesBase goes up to 0.8?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants