evetion/GeoArrays.jl

Upstream changes break GeoArrays

veddox opened this issue · 1 comments

veddox commented

Problem description

GeoArrays no longer compiles due to breaking changes upstream (JuliaEarth/GeoStatsBase.jl#174).

The problem lies in the use of the internal library GeoStatsBase in interpolate.jl, which has recently been reorganised.

Workaround

Fixing TableTransforms.jl at 1.15.0 allows compilation again, but is obviously not a long-term solution.

Instead of using GeoStatsBase, the main library GeoStats.jl should be used.

Stacktrace

julia> using GeoArrays
[ Info: Precompiling GeoArrays [2fb1d81b-e6a0-5fc5-82e6-8e06903437ab]
WARNING: could not import TableTransforms.ColSpec into GeoStatsBase
WARNING: could not import TableTransforms.Col into GeoStatsBase
WARNING: could not import TableTransforms.colspec into GeoStatsBase
WARNING: could not import TableTransforms.choose into GeoStatsBase
ERROR: LoadError: UndefVarError: `ColSpec` not defined
Stacktrace:
  [1] top-level scope
    @ ~/.julia/packages/GeoStatsBase/hN0RT/src/transforms/detrend.jl:5
  [2] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
  [3] include(x::String)
    @ GeoStatsBase ~/.julia/packages/GeoStatsBase/hN0RT/src/GeoStatsBase.jl:5
  [4] top-level scope
    @ ~/.julia/packages/GeoStatsBase/hN0RT/src/transforms.jl:14
  [5] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
  [6] include(x::String)
    @ GeoStatsBase ~/.julia/packages/GeoStatsBase/hN0RT/src/GeoStatsBase.jl:5
  [7] top-level scope
    @ ~/.julia/packages/GeoStatsBase/hN0RT/src/GeoStatsBase.jl:56
  [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::String)
    @ Base ./loading.jl:2049
 [10] top-level scope
    @ stdin:3
in expression starting at ~/.julia/packages/GeoStatsBase/hN0RT/src/transforms/detrend.jl:5
in expression starting at ~/.julia/packages/GeoStatsBase/hN0RT/src/transforms.jl:14
in expression starting at ~/.julia/packages/GeoStatsBase/hN0RT/src/GeoStatsBase.jl:5
in expression starting at stdin:3
ERROR: LoadError: Failed to precompile GeoStatsBase [323cb8eb-fbf6-51c0-afd0-f8fba70507b2] to "~/.julia/compiled/v1.9/GeoStatsBase/jl_OK8pRv".
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:2300
  [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] include(mod::Module, _path::String)
    @ Base ./Base.jl:457
 [10] include(x::String)
    @ GeoArrays ~/.julia/packages/GeoArrays/Is81p/src/GeoArrays.jl:1
 [11] top-level scope
    @ ~/.julia/packages/GeoArrays/Is81p/src/GeoArrays.jl:17
 [12] include
    @ ./Base.jl:457 [inlined]
 [13] 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
 [14] top-level scope
    @ stdin:3
in expression starting at ~/.julia/packages/GeoArrays/Is81p/src/interpolate.jl:1
in expression starting at ~/.julia/packages/GeoArrays/Is81p/src/GeoArrays.jl:1
in expression starting at stdin:3
ERROR: Failed to precompile GeoArrays [2fb1d81b-e6a0-5fc5-82e6-8e06903437ab] to "~/.julia/compiled/v1.9/GeoArrays/jl_eJEmzF".
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:2300
 [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

Thanks for the report!

The GeoStatsBase updates went pretty quick in the last month, I wasn't able to make it compatible yet. I'll try to make GeoStats(Base) into a package extension.