Hi,
I have recently run into a strange problem with reference tests while working on a visualisation package. The tests worked fine but have started failing since I changed the compat for Makie.jl and MCMCChains.jl (this is the affected repo GitHub - simonsteiger/ChainsMakie.jl: Plot MCMC chains with Makie.jl.).
Reversing these changes did not make the issue disappear again unfortunately.
In short, I run into what seems like a dependency issue locally but the tests continue to pass on GitHub Actions (also after clearing the GH Actions cache).
I can reproduce this behaviour in a much simpler test package, see the passing tests in this PR manually add ref image by simonsteiger · Pull Request #1 · simonsteiger/TestPackage.jl · GitHub. Attempting to run ]test
locally in this repo fails with the following error:
ERROR: LoadError: InitError: MethodError: no method matching chop(::Bool)
The function `chop` exists, but no method is defined for this combination of argument types.
Closest candidates are:
chop(::AbstractString; head, tail)
@ Base strings/util.jl:225
Stacktrace:
[1] is_sixel_supported(tty::Base.TTY)
@ Sixel ~/.julia/packages/Sixel/LWLcv/src/Sixel.jl:50
[2] is_sixel_supported
@ ~/.julia/packages/Sixel/LWLcv/src/Sixel.jl:49 [inlined]
[3] __init__()
@ ImageInTerminal ~/.julia/packages/ImageInTerminal/U2jcL/src/ImageInTerminal.jl:159
[4] run_module_init(mod::Module, i::Int64)
@ Base ./loading.jl:1378
[5] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
@ Base ./loading.jl:1366
[6] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}, ignore_native::Nothing; register::Bool)
@ Base ./loading.jl:1254
[7] _include_from_serialized (repeats 2 times)
@ ./loading.jl:1210 [inlined]
[8] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
@ Base ./loading.jl:2057
[9] _require(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:2527
[10] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2388
[11] #invoke_in_world#3
@ ./essentials.jl:1089 [inlined]
[12] invoke_in_world
@ ./essentials.jl:1086 [inlined]
[13] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:2375
[14] macro expansion
@ ./loading.jl:2314 [inlined]
[15] macro expansion
@ ./lock.jl:273 [inlined]
[16] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:2271
[17] #invoke_in_world#3
@ ./essentials.jl:1089 [inlined]
[18] invoke_in_world
@ ./essentials.jl:1086 [inlined]
[19] require(into::Module, mod::Symbol)
@ Base ./loading.jl:2260
[20] include(fname::String)
@ Main ./sysimg.jl:38
[21] top-level scope
@ ~/.julia/dev/TestPackage.jl/test/runtests.jl:4
[22] include(fname::String)
@ Main ./sysimg.jl:38
[23] top-level scope
@ none:6
during initialization of module ImageInTerminal
in expression starting at /Users/simonsteiger/.julia/dev/TestPackage.jl/test/run_reference_tests.jl:2
in expression starting at /Users/simonsteiger/.julia/dev/TestPackage.jl/test/runtests.jl:4
ERROR: Package TestPackage errored during testing
The error is identical to the error I first ran into in my actual package.
Given these error logs, I had a look at Sixel.jl, and found that a new version for it was released on the day that this issue first appeared. I can’t spot what might be causing this issue in said release though.
I am pretty new to package development, so I initially tried restricting Sixel.jl to 0.1.3
(the recent release is 0.1.4
), but this (understandably) did not work because my package does not directly depend on Sixel.
Any help would be greatly appreciated!