Skip to content

Unable to activate environments with [sources] with relative paths #92

@mortenpi

Description

@mortenpi

In short, if you have a package that depends on another local path via

[sources]
DependentEnv = {path = "../DependentEnv"}

Then TestEnv.activate() will fail with

ERROR: LoadError: expected package `DependentEnv [c9261501]` to exist at path `/tmp/DependentEnv`
...
caused by: expected package `DependentEnv [c9261501]` to exist at path `/tmp/DependentEnv`

This is with Julia 1.11.2.

Full Stacktrace
ERROR: LoadError: expected package `DependentEnv [c9261501]` to exist at path `/tmp/DependentEnv`
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Types.jl:68
  [2] collect_fixed!(env::Pkg.Types.EnvCache, pkgs::Vector{Pkg.Types.PackageSpec}, names::Dict{Base.UUID, String})
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:334
  [3] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, installed_only::Bool)
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:400
  [4] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel; skip_writing_project::Bool, preserve::Nothing)
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1622
  [5] 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::@Kwargs{io::Base.DevNull})
    @ Pkg.API ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:382
  [6] up
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:356 [inlined]
  [7] up
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:164 [inlined]
  [8] #resolve#143
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:388 [inlined]
  [9] resolve
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:387 [inlined]
 [10] activate(pkg::String; allow_reresolve::Bool)
    @ TestEnv ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:68
 [11] activate
    @ ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:9 [inlined]
 [12] activate()
    @ TestEnv ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:9
 [13] top-level scope
    @ ~/oss/testenv/julia-TestEnv-mwe/testenv-activate.jl:5
in expression starting at /home/mortenpi/oss/testenv/julia-TestEnv-mwe/testenv-activate.jl:5

caused by: expected package `DependentEnv [c9261501]` to exist at path `/tmp/DependentEnv`
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Types.jl:68
  [2] collect_fixed!(env::Pkg.Types.EnvCache, pkgs::Vector{Pkg.Types.PackageSpec}, names::Dict{Base.UUID, String})
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:334
  [3] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, installed_only::Bool)
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:400
  [4] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel; skip_writing_project::Bool, preserve::Nothing)
    @ Pkg.Operations ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1622
  [5] 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::@Kwargs{io::Base.DevNull})
    @ Pkg.API ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:382
  [6] up
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:356 [inlined]
  [7] up
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:164 [inlined]
  [8] #resolve#143
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:388 [inlined]
  [9] resolve
    @ ~/.julia/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:387 [inlined]
 [10] activate(pkg::String; allow_reresolve::Bool)
    @ TestEnv ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:58
 [11] activate
    @ ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:9 [inlined]
 [12] activate()
    @ TestEnv ~/.julia/packages/TestEnv/tgnBf/src/julia-1.11/activate_set.jl:9
 [13] top-level scope
    @ ~/oss/testenv/julia-TestEnv-mwe/testenv-activate.jl:5

I also threw together a simple MWE for this: https://github.com/mortenpi/julia-TestEnv-mwe

The entry point is https://github.com/mortenpi/julia-TestEnv-mwe/blob/main/mwe.sh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions