Julia +Pumas@2.7.0 installation error: UndefVarError: `project_resolve_hash` not defined in `Pkg.Types`

Following the Pumas installation instructions, first tried installing Pumas 2.7.0 within VScode, failed with “Failed to initialize Pumas@2.7.0
Error: UndefVarError(:project_resolve_hash, 0x000000000000970b, Pkg.Types)”. Then uninstall everything from VS code, cleaned any record about julia and pumas in settings.json of VScode, then tried install Pumas without VScode, still got ERROR: UndefVarError: project_resolve_hash not defined in Pkg.Typesat the last minute of the installation.
Here is the last few lines of the installation process shown on my screen and please let me know which version of julia should I install (currently juliaup automatically installed julia1.12.0):
Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use status --outdated -m
Info We haven’t cleaned this depot up for a bit, running Pkg.gc()…
Active manifest files: 2 found
Active artifact files: 82 found
Active scratchspaces: 1 found
Deleted no artifacts, repos, packages or scratchspaces
[ Info: pinning package versions.
ERROR: UndefVarError: project_resolve_hash not defined in Pkg.Types
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] getproperty
@ .\Base_compiler.jl:47 [inlined]
[2] (::PumasProductManager.var"#_project_resolve_hash#_pin_package_versions##3")(toml::Dict{String, Any})
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:329
[3] _pin_package_versions(dir::String, project_deps::Dict{String, Any})
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:331
[4] (::PumasProductManager.var"#4#5"{String, String, Vector{Dict{String, String}}, Dict{String, Any}, String})(dir::String)
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:187
[5] mktempdir(fn::PumasProductManager.var"#4#5"{String, String, Vector{Dict{String, String}}, Dict{String, Any}, String}, parent::String; prefix::String)
@ Base.Filesystem .\file.jl:899
[6] mktempdir(fn::Function, parent::String)
@ Base.Filesystem .\file.jl:895
[7] mktempdir
@ .\file.jl:895 [inlined]
[8] install(env::String, dst::String; force::Bool)
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:169
[9] install
@ C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:147 [inlined]
[10] init(product::String, path::Nothing)
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:144
[11] init(product::String)
@ PumasProductManager C:\Users\l230557.julia\packages\PumasProductManager\4vCJ8\src\PumasProductManager.jl:108
[12] do_cmd(command::Pkg.REPLMode.Command, io::Base.TTY)
@ Pkg.REPLMode C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\Pkg\src\REPLMode\REPLMode.jl:406
[13] do_cmds(commands::Vector{Pkg.REPLMode.Command}, io::Base.TTY)
@ Pkg.REPLMode C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\Pkg\src\REPLMode\REPLMode.jl:395
[14] do_cmds(repl::REPL.LineEditREPL, commands::String)
@ REPLExt C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\Pkg\ext\REPLExt\REPLExt.jl:99
[15] on_done(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool, repl::REPL.LineEditREPL)
@ REPLExt C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\Pkg\ext\REPLExt\REPLExt.jl:113
[16] #invokelatest_gr#232
@ .\reflection.jl:1280 [inlined]
[17] invokelatest_gr
@ .\reflection.jl:1274 [inlined]
[18] (::REPLExt.var"#create_mode##0#create_mode##1"{REPL.LineEditREPL})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ REPLExt C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\Pkg\ext\REPLExt\REPLExt.jl:135
[19] run_interface(terminal::Base.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\LineEdit.jl:2854
[20] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
@ REPL C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:1663
[21] (::REPL.var"#61#62"{REPL.LineEditREPL, REPL.REPLBackendRef})()
@ REPL C:\Users\l230557.julia\juliaup\julia-1.12.0+0.x64.w64.mingw32\share\julia\stdlib\v1.12\REPL\src\REPL.jl:650

(@PumasProductManager) pkg>

Problem solved. After manually uninstalled julia app outside of VScode and uninstalled/cleaned Pumas, julia and quarto, then manully install julia 1.11.6 + Pumas2.7.0 without VScode first. Then install Pumas extension, julia and quarto automatically in VScode. Afterward, manually fixed the link between julia and Pumas.

Hi @Limei,

Glad you resolved it. The underlying issue is a change in APIs in Julia 1.12 which is what that stack trace says you were running the installer from. By manually adding Julia 1.11.6 you allowed the installer to run with an earlier Julia version that has the older APIs available.

For others finding this: There will be a fix made later today to resolve the issue without needing the workaround you’ve listed above.

Glad to know. Also, I manually updated VScode using julia1.11.6 as the default not 1.12.0 to make it work yesterday.

1 Like