Weird error in GitHub action: ERROR: LoadError: KeyError: key "PrecompileTools" not found

I m trying to push a newer version of a package on GitHub. It tests fine in local, but on github actions I have the following weird error:

      Testing DICEModel
      Status `/tmp/jl_AC62Th/Project.toml`
ERROR: LoadError: KeyError: key "PrecompileTools" not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:484 [inlined]
  [2] status_ext_info(pkg::Pkg.Types.PackageSpec, env::Pkg.Types.EnvCache)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2214
  [3] print_status(env::Pkg.Types.EnvCache, old_env::Nothing, registries::Vector{Pkg.Registry.RegistryInstance}, header::Symbol, uuids::Vector{Base.UUID}, names::Vector{String}; manifest::Bool, diff::Bool, ignore_indent::Bool, outdated::Bool, extensions::Bool, io::IOContext{Base.PipeEndpoint}, mode::Pkg.Types.PackageMode, hidden_upgrades_info::Bool, show_usagetips::Bool)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2299
  [4] print_status
    @ /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2241 [inlined]
  [5] status(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}; header::Nothing, mode::Pkg.Types.PackageMode, git_diff::Bool, env_diff::Nothing, ignore_indent::Bool, io::IOContext{Base.PipeEndpoint}, outdated::Bool, extensions::Bool, hidden_upgrades_info::Bool, show_usagetips::Bool)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2472
  [6] status
    @ /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2443 [inlined]
  [7] (::Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec})()
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1959
  [8] withenv(::Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, ::Pair{String, String}, ::Vararg{Pair{String}})
    @ Base ./env.jl:197
  [9] (::Pkg.Operations.var"#117#122"{String, Bool, Bool, Bool, Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.PackageSpec})()
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1825
 [10] with_temp_env(fn::Pkg.Operations.var"#117#122"{String, Bool, Bool, Bool, Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.PackageSpec}, temp_env::String)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1706
 [11] (::Pkg.Operations.var"#115#120"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Nothing, String})(tmp::String)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1795
 [12] mktempdir(fn::Pkg.Operations.var"#115#120"{Dict{String, Any}, Bool, Bool, Bool, Pkg.Operations.var"#130#134"{Bool, Cmd, Cmd, Nothing, Pkg.Types.Context, Vector{Tuple{String, Base.Process}}, String, Pkg.Types.PackageSpec}, Pkg.Types.Context, Pkg.Types.PackageSpec, String, Nothing, String}, parent::String; prefix::String)
    @ Base.Filesystem ./file.jl:762
 [13] mktempdir(fn::Function, parent::String)
    @ Base.Filesystem ./file.jl:758
 [14] mktempdir
    @ ./file.jl:758 [inlined]
 [15] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Nothing; preferences::Dict{String, Any}, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1753
 [16] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1956
 [17] test
    @ /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1900 [inlined]
 [18] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Vector{String}, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::Base.Pairs{Symbol, IOContext{Base.PipeEndpoint}, Tuple{Symbol}, NamedTuple{(:io,), Tuple{IOContext{Base.PipeEndpoint}}}})
    @ Pkg.API /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:441
 [19] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{Base.PipeEndpoint}, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version, :allow_reresolve), Tuple{Bool, Vector{String}, Bool, Bool}}})
    @ Pkg.API /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:156
 [20] test(; name::Nothing, uuid::Nothing, version::Nothing, url::Nothing, rev::Nothing, path::Nothing, mode::Pkg.Types.PackageMode, subdir::Nothing, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version, :allow_reresolve), Tuple{Bool, Vector{String}, Bool, Bool}}})
    @ Pkg.API /opt/hostedtoolcache/julia/1.9.4/x64/share/julia/stdlib/v1.9/Pkg/src/API.jl:171
 [21] top-level scope
    @ ~/work/_actions/julia-actions/julia-runtest/v1/test_harness.jl:44
 [22] include(fname::String)
    @ Base.MainInclude ./client.jl:478
 [23] top-level scope
    @ none:1
in expression starting at /home/runner/work/_actions/julia-actions/julia-runtest/v1/test_harness.jl:25
Error: Process completed with exit code 1.

I have even removed the using PrecompileTools and commented out the PRecompile.jl stuff, but I still have the error.. just to have PrecompileTools = "1" in my Project.toml file!
What the hell could be ?

1 Like

This is really weird… I removed EVERYTHING of PrecompileTools, not in the Project.toml of my package, not in the main environment, nowhere… but on GitHub action or in local using Juilia 1.9 I get the error:

(@v1.9) pkg> activate .
  Activating project at `~/.julia/dev/DICEModel`

julia> import Pkg; Pkg.test(;coverage=true, julia_args=["--check-bounds=yes", "--compiled-modules=yes", "--depwarn=yes"], force_latest_compatible_version=false, allow_reresolve=true)
    Updating registry at `~/.julia/registries/General.toml`
    Updating `~/.julia/dev/DICEModel/Project.toml`
ERROR: KeyError: key "PrecompileTools" not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:484 [inlined]
  [2] status_ext_info(pkg::Pkg.Types.PackageSpec, env::Pkg.Types.EnvCache)
    @ Pkg.Operations ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2214
  [3] print_status(env::Pkg.Types.EnvCache, old_env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, header::Symbol, uuids::Vector{Base.UUID}, names::Vector{String}; manifest::Bool, diff::Bool, ignore_indent::Bool, outdated::Bool, extensions::Bool, io::Base.TTY, mode::Pkg.Types.PackageMode, hidden_upgrades_info::Bool, show_usagetips::Bool)
    @ Pkg.Operations ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2299
  [4] print_status
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2241 [inlined]
  [5] status(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}; header::Symbol, mode::Pkg.Types.PackageMode, git_diff::Bool, env_diff::Pkg.Types.EnvCache, ignore_indent::Bool, io::Base.TTY, outdated::Bool, extensions::Bool, hidden_upgrades_info::Bool, show_usagetips::Bool)
    @ Pkg.Operations ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2472
  [6] status (repeats 2 times)
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2443 [inlined]
  [7] #show_update#167
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:2439 [inlined]
  [8] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel; skip_writing_project::Bool, preserve::Nothing)
    @ Pkg.Operations ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1546
  [9] up
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1521 [inlined]
 [10] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, preserve::Nothing, update_registry::Bool, skip_writing_project::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:348
 [11] up
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:323 [inlined]
 [12] #up#48
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:161 [inlined]
 [13] up
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:161 [inlined]
 [14] instantiate(ctx::Pkg.Types.Context; manifest::Nothing, update_registry::Bool, verbose::Bool, platform::Base.BinaryPlatforms.Platform, allow_build::Bool, allow_autoprecomp::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:1715
 [15] instantiate
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:1691 [inlined]
 [16] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1906
 [17] test
    @ ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/Operations.jl:1900 [inlined]
 [18] test(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Vector{String}, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::Base.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:441
 [19] test(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version, :allow_reresolve), Tuple{Bool, Vector{String}, Bool, Bool}}})
    @ Pkg.API ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:156
 [20] test(; name::Nothing, uuid::Nothing, version::Nothing, url::Nothing, rev::Nothing, path::Nothing, mode::Pkg.Types.PackageMode, subdir::Nothing, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:coverage, :julia_args, :force_latest_compatible_version, :allow_reresolve), Tuple{Bool, Vector{String}, Bool, Bool}}})
    @ Pkg.API ~/lib/julia-1.9.4/share/julia/stdlib/v1.9/Pkg/src/API.jl:171
 [21] top-level scope
    @ REPL[2]:1

Where julia is trying to get it from ???

Even MORE weird.. I reverted to a commit that was working, and now the CI action is still creating this problem…

ugh.. this must be related to Ipopt release 1.10, 13 hours ago:

I have the same problem with my nightly build of a paper (on our self-hosted GitLab) which also uses Ipopt.jl. The error occurs at the using Pkg; Pkg.instantiate() step.

That’s in my Project.toml btw (KM3io.jl and NeRCA.jl are internal packages):

[compat]
KM3io = "^0.16"
NeRCA = "^0.13.8"
julia = "1"
CSV = "^0.10.13"
CairoMakie = "^0.11.9, ^0.12"
Colors = "^0.12.10"
DataFrames = "^1.6.1"
DataStructures = "^0.18.18"
Distributions = "^0.25.107"
DocOpt = "^0.5.0"
DrWatson = "^2.14.1"
FHist = "^0.11"
HDF5 = "^0.17.1"
Healpix = "^4.2.1"
IntervalArithmetic = "^0.22.8"
Ipopt = "^1.6.2"
JSON = "^0.21.4"
JuMP = "^1.20.0"
LaTeXStrings = "^1.3.1"
LandauDistribution = "^0.2.2"
LsqFit = "^0.15.0"
Optim = "^1.9.2"
PGFPlotsX = "^1.6.1"
PackageCompiler = "^2.1.17"
Parameters = "^0.12.3"
Plots = "^1.40.2"
PrettyTables = "^2.3.1"
ProgressMeter = "^1.10.0"
Query = "^1.0.0"
Rotations = "^1.7.0"
Setfield = "^1.1.1"
StatsBase = "^0.34.2"
Tables = "^1.11.1"
UnROOT = "^0.10.24"
UnicodePlots = "^3.6.4"
Statistics = "^1.10.0"
1 Like

How do I check with dependency of my package (direct or indirect) has a release date less than 48h ago?

I has been affected by the issue with Ipopt.jl but they seem to have corrected it, but I still have this issue in Julia 1.10 (Julia 1.11 is now fine) using Ipopt v1.10.1 .. I want to check if there are other packages that have been released in the latest 48 hours, as CI actions now fails on commits that were previously working…

Which version of Julia are you using? Does your paper install Ipopt v1.10.0 ?

Julia 1.10. The nightly installed Ipopt 1.10.1 last night and since then the CI is failing. The pipeline before used Ipopt 1.9.0 which worked fine.

I also commented on Still issues with Precompilation in 1.10.1 (Julia 1.10) · Issue #485 · jump-dev/Ipopt.jl · GitHub

1 Like