JuliaTesting / Aqua.jl

Auto QUality Assurance for Julia packages
MIT License
339 stars 25 forks source link

`find_persistent_tasks_deps` fails for the standard library packages #287

Closed pogudingleb closed 6 months ago

pogudingleb commented 6 months ago

Good evening !

I had 0.8.4 version, and everything was great, but with 0.8.6 (all on Julia 1.10), function find_persistent_tasks_deps started to error even with the packages from the standard library, for example:

julia> Aqua.find_persistent_tasks_deps(Dates)
[ Info: Precompiling Printf [de0858da-6303-5e67-8744-51eddeeeb8d7]
ERROR: LoadError: Replacing module `Printf`
Stacktrace:
 [1] error(s::String)
   @ Base ./error.jl:35
 [2] macro expansion
   @ Base ./loading.jl:1847 [inlined]
 [3] macro expansion
   @ Base ./lock.jl:267 [inlined]
 [4] register_root_module(m::Module)
   @ Base ./loading.jl:1841
 [5] include
   @ Base ./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:2216
 [7] top-level scope
   @ stdin:3
in expression starting at /Applications/Julia-1.10.app/Contents/Resources/julia/share/julia/stdlib/v1.10/Printf/src/Printf.jl:3
in expression starting at stdin:3
ERROR: Failed to precompile Printf [de0858da-6303-5e67-8744-51eddeeeb8d7] to "/Users/pogudingleb/.julia/compiled/v1.10/Printf/jl_nY1k6B".
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:2462
  [3] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2334 [inlined]
  [4] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2324 [inlined]
  [5] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2322 [inlined]
  [6] has_persistent_tasks(package::Base.PkgId; expr::Expr, succeed_on_precompilable_error::Bool, tmax::Int64)
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:59
  [7] has_persistent_tasks(package::Base.PkgId)
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:50
  [8] (::Aqua.var"#72#74"{@Kwargs{}})(::Pair{String, Any})
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:85
  [9] filter!(pred::Aqua.var"#72#74"{@Kwargs{}}, h::Dict{String, Any})
    @ Base ./dict.jl:740
 [10] find_persistent_tasks_deps(package::Base.PkgId; kwargs::@Kwargs{})
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:83
 [11] find_persistent_tasks_deps
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:78 [inlined]
 [12] #find_persistent_tasks_deps#76
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:91 [inlined]
 [13] find_persistent_tasks_deps(package::Module)
    @ Aqua ~/.julia/packages/Aqua/NMXNu/src/persistent_tasks.jl:90
 [14] top-level scope
    @ REPL[11]:1

Is this the expected behaviour?

lgoettgens commented 6 months ago

Thanks for your report. This failure is probably due to #285 (and the hacky way I implemented it). I'll revert it ASAP.