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

Potential package compatibility issue (Rasters.jl, GeoMakie.jl) #774

Closed
nicholasbalasus opened this issue Oct 2, 2024 · 8 comments · Fixed by #777
Closed

Potential package compatibility issue (Rasters.jl, GeoMakie.jl) #774

nicholasbalasus opened this issue Oct 2, 2024 · 8 comments · Fixed by #777

Comments

@nicholasbalasus
Copy link

Starting with Julia version 1.10.5, I make a new environment and add Rasters and then GeoMakie. Notably, when I add GeoMakie, I get an next to Rasters.

Precompiling project...
  ✗ Rasters → RastersMakieExt
  1 dependency successfully precompiled in 30 seconds. 259 already precompiled.

Then, in the REPL, I run using Rasters and then using GeoMakie which gives a long error.

julia> using Rasters

julia> using GeoMakie
Precompiling RastersMakieExt
        Info Given RastersMakieExt was explicitly requested, output will be shown live 
ERROR: LoadError: ArgumentError: invalid type for argument t in method definition for convert_arguments at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
Stacktrace:
 [1] top-level scope
   @ ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
 [2] include(mod::Module, _path::String)
   @ Base ./Base.jl:495
 [3] include(x::String)
   @ RastersMakieExt ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:1
 [4] top-level scope
   @ ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:12
 [5] include
   @ ./Base.jl:495 [inlined]
 [6] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [7] top-level scope
   @ stdin:3
in expression starting at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
in expression starting at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:1
in expression starting at stdin:3
  ✗ Rasters → RastersMakieExt
  0 dependencies successfully precompiled in 13 seconds. 239 already precompiled.
[ Info: Precompiling RastersMakieExt [dcb859c5-a41b-597c-97ab-c4a11b2128cf]
ERROR: LoadError: ArgumentError: invalid type for argument t in method definition for convert_arguments at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
Stacktrace:
 [1] top-level scope
   @ ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
 [2] include(mod::Module, _path::String)
   @ Base ./Base.jl:495
 [3] include(x::String)
   @ RastersMakieExt ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:1
 [4] top-level scope
   @ ~/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:12
 [5] include
   @ ./Base.jl:495 [inlined]
 [6] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
   @ Base ./loading.jl:2222
 [7] top-level scope
   @ stdin:3
in expression starting at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/plotrecipes.jl:308
in expression starting at /n/home06/nbalasus/.julia/packages/Rasters/0kAkQ/ext/RastersMakieExt/RastersMakieExt.jl:1
in expression starting at stdin:3
┌ Error: Error during loading of extension RastersMakieExt of Rasters, use `Base.retry_load_extensions()` to retry.
│   exception =
│    1-element ExceptionStack:
│    Failed to precompile RastersMakieExt [dcb859c5-a41b-597c-97ab-c4a11b2128cf] to "/n/home06/nbalasus/.julia/compiled/v1.10/RastersMakieExt/jl_mtKrfN".
│    Stacktrace:
│      [1] error(s::String)
│        @ Base ./error.jl:35
│      [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
│        @ Base ./loading.jl:2468
│      [3] compilecache
│        @ ./loading.jl:2340 [inlined]
│      [4] (::Base.var"#968#969"{Base.PkgId})()
│        @ Base ./loading.jl:1974
│      [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
│      [6] #mkpidlock#6
│        @ ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
│      [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
│        @ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
│      [8] #invokelatest#2
│        @ ./essentials.jl:894 [inlined]
│      [9] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
│        @ Base ./loading.jl:2983
│     [11] maybe_cachefile_lock
│        @ ./loading.jl:2980 [inlined]
│     [12] _require(pkg::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1970
│     [13] __require_prelocked(uuidkey::Base.PkgId, env::Nothing)
│        @ Base ./loading.jl:1812
│     [14] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [15] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [16] _require_prelocked
│        @ ./loading.jl:1803 [inlined]
│     [17] _require_prelocked
│        @ ./loading.jl:1802 [inlined]
│     [18] run_extension_callbacks(extid::Base.ExtensionId)
│        @ Base ./loading.jl:1295
│     [19] run_extension_callbacks(pkgid::Base.PkgId)
│        @ Base ./loading.jl:1330
│     [20] run_package_callbacks(modkey::Base.PkgId)
│        @ Base ./loading.jl:1164
│     [21] _tryrequire_from_serialized(modkey::Base.PkgId, path::String, ocachepath::String, sourcepath::String, depmods::Vector{Any})
│        @ Base ./loading.jl:1487
│     [22] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
│        @ Base ./loading.jl:1574
│     [23] _require(pkg::Base.PkgId, env::String)
│        @ Base ./loading.jl:1938
│     [24] __require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1812
│     [25] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [26] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [27] _require_prelocked(uuidkey::Base.PkgId, env::String)
│        @ Base ./loading.jl:1803
│     [28] macro expansion
│        @ ./loading.jl:1790 [inlined]
│     [29] macro expansion
│        @ ./lock.jl:267 [inlined]
│     [30] __require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1753
│     [31] #invoke_in_world#3
│        @ ./essentials.jl:926 [inlined]
│     [32] invoke_in_world
│        @ ./essentials.jl:923 [inlined]
│     [33] require(into::Module, mod::Symbol)
│        @ Base ./loading.jl:1746
│     [34] eval
│        @ ./boot.jl:385 [inlined]
│     [35] eval_user_input(ast::Any, backend::REPL.REPLBackend, mod::Module)
│        @ REPL ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:150
│     [36] repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
│        @ REPL ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
│     [37] start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
│        @ REPL ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
│     [38] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
│        @ REPL ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
│     [39] run_repl(repl::REPL.AbstractREPL, consumer::Any)
│        @ REPL ~/.julia/juliaup/julia-1.10.5+0.x64.linux.gnu/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
│     [40] (::Base.var"#1013#1015"{Bool, Bool, Bool})(REPL::Module)
│        @ Base ./client.jl:432
│     [41] #invokelatest#2
│        @ ./essentials.jl:892 [inlined]
│     [42] invokelatest
│        @ ./essentials.jl:889 [inlined]
│     [43] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
│        @ Base ./client.jl:416
│     [44] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:333
│     [45] _start()
│        @ Base ./client.jl:552
└ @ Base loading.jl:1301
@rafaqz
Copy link
Owner

rafaqz commented Oct 2, 2024

That usually means you have to restart your session

@nicholasbalasus
Copy link
Author

Thanks – if I rerun using GeoMakie, the error does not reappear and the code runs as expected. However, the error persists with every fresh session which isn't ideal. I can close for now.

@rafaqz rafaqz reopened this Oct 2, 2024
@rafaqz
Copy link
Owner

rafaqz commented Oct 2, 2024

That's actually a problem, can you post the package versions?

@asinghvi17

@asinghvi17
Copy link
Contributor

Yeah, I wonder if it's something we solved already in DD or on Rasters main

@asinghvi17
Copy link
Contributor

Probably is - maybe we should just do a breaking release of Rasters now, since on released versions plotting is pretty broken? Then another with the cf stuff

@nicholasbalasus
Copy link
Author

GeoMakie - 0.7.4
Rasters - 0.11.8

@asinghvi17
Copy link
Contributor

Oh this is MakieOrg/Makie.jl#4423

@nicholasbalasus
Copy link
Author

Thank you both!

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

Successfully merging a pull request may close this issue.

3 participants