ERROR: LoadError: UndefVarError: `StatelessTableTransform` not defined

I’m trying to use GeoStats.jl, but I keep hitting this error. Any tips?

julia> using GeoStatsBase
[ Info: Precompiling GeoStatsBase [323cb8eb-fbf6-51c0-afd0-f8fba70507b2]
WARNING: could not import TableTransforms.StatelessTableTransform into GeoStatsBase
ERROR: LoadError: UndefVarError: `StatelessTableTransform` not defined
Stacktrace:
  [1] top-level scope
    @ ~/.julia/packages/GeoStatsBase/PHZ3H/src/transforms/potrace.jl:5
  [2] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
  [3] include(x::String)
    @ GeoStatsBase ~/.julia/packages/GeoStatsBase/PHZ3H/src/GeoStatsBase.jl:5
  [4] top-level scope
    @ ~/.julia/packages/GeoStatsBase/PHZ3H/src/transforms.jl:15
  [5] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
  [6] include(x::String)
    @ GeoStatsBase ~/.julia/packages/GeoStatsBase/PHZ3H/src/GeoStatsBase.jl:5
  [7] top-level scope
    @ ~/.julia/packages/GeoStatsBase/PHZ3H/src/GeoStatsBase.jl:62
  [8] include
    @ ./Base.jl:457 [inlined]
  [9] 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:2049
 [10] top-level scope
    @ stdin:3
in expression starting at /Users/cgreene/.julia/packages/GeoStatsBase/PHZ3H/src/transforms/potrace.jl:5
in expression starting at /Users/cgreene/.julia/packages/GeoStatsBase/PHZ3H/src/transforms.jl:15
in expression starting at /Users/cgreene/.julia/packages/GeoStatsBase/PHZ3H/src/GeoStatsBase.jl:5
in expression starting at stdin:3
ERROR: Failed to precompile GeoStatsBase [323cb8eb-fbf6-51c0-afd0-f8fba70507b2] to "/Users/cgreene/.julia/compiled/v1.9/GeoStatsBase/jl_SXilaL".
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:2294
  [3] compilecache
    @ ./loading.jl:2167 [inlined]
  [4] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1805
  [5] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1660
  [6] macro expansion
    @ ./loading.jl:1648 [inlined]
  [7] macro expansion
    @ ./lock.jl:267 [inlined]
  [8] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1611
  [9] eval
    @ ./boot.jl:370 [inlined]
 [10] eval
    @ ./Base.jl:68 [inlined]
 [11] repleval(m::Module, code::Expr, #unused#::String)
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.60.2/scripts/packages/VSCodeServer/src/repl.jl:229
 [12] (::VSCodeServer.var"#110#112"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.60.2/scripts/packages/VSCodeServer/src/repl.jl:192
 [13] with_logstate(f::Function, logstate::Any)
    @ Base.CoreLogging ./logging.jl:514
 [14] with_logger
    @ ./logging.jl:626 [inlined]
 [15] (::VSCodeServer.var"#109#111"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.60.2/scripts/packages/VSCodeServer/src/repl.jl:193
 [16] #invokelatest#2
    @ ./essentials.jl:819 [inlined]
 [17] invokelatest(::Any)
    @ Base ./essentials.jl:816
 [18] macro expansion
    @ ~/.vscode/extensions/julialang.language-julia-1.60.2/scripts/packages/VSCodeServer/src/eval.jl:34 [inlined]
 [19] (::VSCodeServer.var"#62#63")()
    @ VSCodeServer ./task.jl:514

Check what versions of packages are being loaded ]st -m, and see if any are held back.

I’m willing to bet a nickel that there’s a dependency causing an old version of TableTransforms to be loaded.

1 Like

Yes, we are trying to release features often, but sometimes that leads to version issues given that some of the modules in our stack are v1.y.z and others are v0.y.z.

Also, the GeoStatsBase.jl package is not intended for end-users, are you sure you need it instead of other more high-level package?

We try to control the precise versions of the modules in the stack at the GeoStats.jl package itself, which reexports all modules into coherent versions.