Summary
On Julia ≥1.11, Aqua.test_persistent_tasks / find_persistent_tasks_deps(P) errors for a package P when P (or one of its direct deps) is an installed package whose Project.toml carries a relative-path [sources] entry pointing at a sibling that does not exist in the depot.
The persistent-tasks wrapper develops each dep by path — Pkg.develop(PackageSpec(path = installed_dep_dir)). On Julia ≥1.11, Pkg honors the [sources] baked into that installed dep's Project.toml and hard-errors on the absent ../Sibling:
expected package `OptimizationBase [bca83a33]` to exist at path
`/.../packages/OptimizationBBO/OptimizationBase`
(raised from persistent_tasks.jl → Pkg.develop → collect_fixed!).
This affects any package depending on a monorepo sublibrary that ships a relative-path [sources] in its registered tarball — e.g. OptimizationBBO 0.4.4–0.4.7 ships [sources] OptimizationBase = {path = "../OptimizationBase"}; ~76 registered packages ecosystem-wide do the same. It passes on Julia 1.10 (which ignores installed [sources]) and fails on 1.11/1.12/1.13.
Root cause & suggested mitigation
The underlying issue is arguably in Pkg — it honors [sources] for a package being used as a dependency, contrary to Pkg's documented contract that [sources] "is not used if this project is a package that is being used as a dependency." Reported at JuliaLang/Pkg.jl#4705 (with a self-contained MWE).
As an Aqua-side mitigation that doesn't depend on the Pkg fix landing: before Pkg.develop-ing a dependency by path in the persistent-tasks wrapper, strip the [sources] table from the (copied) dep Project.toml in the temporary env, so the genuine persistent-tasks precompile still runs but the spurious relative-[sources] can't be honored. (The check itself — whether the package leaves a persistent task running — is unaffected; only the dev-wiring [sources] is removed.)
Reproduction
See the MWE in JuliaLang/Pkg.jl#4705 (a 1-dep package with a path-[sources] to a non-existent sibling; Pkg.develop(path=...) succeeds on 1.10, fails on ≥1.11). The Aqua surface is test_persistent_tasks over a dep-set that includes such a package.
Summary
On Julia ≥1.11,
Aqua.test_persistent_tasks/find_persistent_tasks_deps(P)errors for a packagePwhenP(or one of its direct deps) is an installed package whoseProject.tomlcarries a relative-path[sources]entry pointing at a sibling that does not exist in the depot.The persistent-tasks wrapper develops each dep by path —
Pkg.develop(PackageSpec(path = installed_dep_dir)). On Julia ≥1.11, Pkg honors the[sources]baked into that installed dep'sProject.tomland hard-errors on the absent../Sibling:(raised from
persistent_tasks.jl→Pkg.develop→collect_fixed!).This affects any package depending on a monorepo sublibrary that ships a relative-path
[sources]in its registered tarball — e.g. OptimizationBBO 0.4.4–0.4.7 ships[sources] OptimizationBase = {path = "../OptimizationBase"}; ~76 registered packages ecosystem-wide do the same. It passes on Julia 1.10 (which ignores installed[sources]) and fails on 1.11/1.12/1.13.Root cause & suggested mitigation
The underlying issue is arguably in Pkg — it honors
[sources]for a package being used as a dependency, contrary to Pkg's documented contract that[sources]"is not used if this project is a package that is being used as a dependency." Reported at JuliaLang/Pkg.jl#4705 (with a self-contained MWE).As an Aqua-side mitigation that doesn't depend on the Pkg fix landing: before
Pkg.develop-ing a dependency by path in the persistent-tasks wrapper, strip the[sources]table from the (copied) depProject.tomlin the temporary env, so the genuine persistent-tasks precompile still runs but the spurious relative-[sources]can't be honored. (The check itself — whether the package leaves a persistent task running — is unaffected; only the dev-wiring[sources]is removed.)Reproduction
See the MWE in JuliaLang/Pkg.jl#4705 (a 1-dep package with a path-
[sources]to a non-existent sibling;Pkg.develop(path=...)succeeds on 1.10, fails on ≥1.11). The Aqua surface istest_persistent_tasksover a dep-set that includes such a package.