Pkg.jl internal API changes in Julia v1.7

An awesome contributor implemented programmatic Project.toml creation in Genie - but now the corresponding test breaks in Julia v1.7. It’s this line:

Pkg.project(Pkg.API.Context(), name, tmpdir) # generate tmp

in Genie.jl/Generator.jl at f04988dc1c988767963ad8dcff80c36e58bebbf0 · GenieFramework/Genie.jl · GitHub

Is it meant to be breaking and how can the same functionality be achieved in v1.7?

You are reaching pretty far into internals there so I wouldn’t call it breaking.

Why not just use the TOML stdlib and use TOML.print instead?

1 Like

It’s user contributed and I’m trying to digest the whole thing but I’m not familiar with the APIs.

TOML.print seems to require writing the Project.toml by hand? Is there a way to hook into the current Pkg API to replicate the old functionality?

In v1.6 the line Pkg.project(Pkg.API.Context(), name, "zetempdir") generates the full Project.toml file (including folders creation):

OK, I just git blamed the file in Pkg and stol… ehem, borrowed the old Pkg.project and related API into Genie.Generate :nerd_face:

Also it looks like 1.7 breaks something in Revise

WARNING: Method definition Any() in module Revise at C:\Users\adria\.julia\packages\Revise\9lZUE\src\types.jl:272 overwritten on the same line (check for duplicate calls to `include`)
1 Like