JuliaPackaging / BinaryBuilderBase.jl

https://juliapackaging.github.io/BinaryBuilderBase.jl/stable
MIT License
11 stars 31 forks source link

Fix tests in Julia v1.8+ #260

Closed giordano closed 2 years ago

giordano commented 2 years ago

Tests are passing for me locally with Julia v1.8.0, but CI on nightly fails with

Setup: Error During Test at /home/runner/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:219
  Test threw exception
  Expression: setup_dependencies(prefix, getpkg.(dependencies), platform)
  AssertionError: proj_file !== nothing
  Stacktrace:
    [1] deps_graph(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, uuid_to_name::Dict{UUID, String}, reqs::Dict{UUID, Pkg.Versions.VersionSpec}, fixed::Dict{UUID, Pkg.Resolve.Fixed}, julia_version::VersionNumber)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:438
    [2] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:351
    [3] targeted_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1250
    [4] tiered_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1225
    [5] _resolve(io::Base.DevNull, env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1256
    [6] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{UUID}; preserve::Pkg.Types.PreserveLevel, platform::Platform)
      @ Pkg.Operations /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1272
    [7] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Platform, kwargs::Base.Pairs{Symbol, Base.DevNull, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.DevNull}}})
      @ Pkg.API /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:275
    [8] Pkg_add(::Pkg.Types.Context, ::Vararg{Any}; kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:platform, :io), Tuple{Platform, Base.DevNull}}})
      @ BinaryBuilderBase ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/src/Prefix.jl:552
    [9] (::BinaryBuilderBase.var"#93#99"{Bool, Prefix, Vector{Pkg.Types.PackageSpec}, Platform, Vector{String}, Vector{String}})()
      @ BinaryBuilderBase ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/src/Prefix.jl:610
   [10] activate(f::BinaryBuilderBase.var"#93#99"{Bool, Prefix, Vector{Pkg.Types.PackageSpec}, Platform, Vector{String}, Vector{String}}, new_project::String)
      @ Pkg.API /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:1701
   [11] setup_dependencies(prefix::Prefix, dependencies::Vector{Pkg.Types.PackageSpec}, platform::Platform; verbose::Bool)
      @ BinaryBuilderBase ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/src/Prefix.jl:601
   [12] setup_dependencies
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/src/Prefix.jl:571 [inlined]
   [13] (::var"#46#68"{Platform, Vector{Dependency}, Prefix})()
      @ Main ./none:0
   [14] with_logstate(f::Function, logstate::Any)
      @ Base.CoreLogging ./logging.jl:514
   [15] with_logger
      @ ./logging.jl:626 [inlined]
   [16] #collect_test_logs#65
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/logging.jl:114 [inlined]
   [17] collect_test_logs
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/logging.jl:112 [inlined]
   [18] #match_logs#66
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/logging.jl:260 [inlined]
   [19] match_logs
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/logging.jl:259 [inlined]
   [20] (::var"#45#67")(dir::String)
      @ Main ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:219
   [21] #32
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:14 [inlined]
   [22] activate(f::var"#32#34"{String, var"#45#67"}, new_project::String)
      @ Pkg.API /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:1701
   [23] #31
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:13 [inlined]
   [24] mktempdir(fn::var"#31#33"{var"#45#67"}, parent::String; prefix::String)
      @ Base.Filesystem ./file.jl:760
   [25] mktempdir (repeats 2 times)
      @ ./file.jl:756 [inlined]
   [26] with_temp_project(f::var"#45#67")
      @ Main ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:12
   [27] macro expansion
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:213 [inlined]
   [28] macro expansion
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/Test.jl:1492 [inlined]
   [29] macro expansion
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:133 [inlined]
   [30] macro expansion
      @ /opt/hostedtoolcache/julia/nightly/x64/share/julia/stdlib/v1.9/Test/src/Test.jl:1492 [inlined]
   [31] top-level scope
      @ ~/work/BinaryBuilderBase.jl/BinaryBuilderBase.jl/test/dependencies.jl:25

Sigh.

Edit: looking at https://github.com/JuliaLang/Pkg.jl/blame/7dcdb22089ec0b1654a5180ed31fa5b79412dc90/src/Operations.jl#L438, my hunch is that https://github.com/JuliaLang/Pkg.jl/pull/3097 is related.

giordano commented 2 years ago

I marked all broken tests on nightly as such so that at least we get green marks on CI here. Upstream issues in Pkg are tracked by https://github.com/JuliaLang/Pkg.jl/issues/3170 and https://github.com/JuliaLang/Pkg.jl/issues/3181.