Skip to content

TestEnv: port merge-project guard to Julia <=1.10 variants - #56

Draft
davidanthoff wants to merge 1 commit into
mainfrom
testenv-merge-guard
Draft

TestEnv: port merge-project guard to Julia <=1.10 variants#56
davidanthoff wants to merge 1 commit into
mainfrom
testenv-merge-guard

Conversation

@davidanthoff

Copy link
Copy Markdown
Member

Summary

  • The Julia 1.11+ variant of the vendored TestEnv (packages/TestEnv/src/julia-1.11/activate_set.jl) guards the "can not merge projects" error: it only fires when the working manifest already holds a different entry for the uuid and that uuid is not the package under test. The julia-1.4/1.7/1.8/1.9 variants still had the unguarded haskey(working_manifest, uuid) check, so a package with a test/Manifest.toml that lists the package itself as a path = ".." dev entry (the layout Pkg.develop(path=".") inside test/ produces) failed activation on Julia <= 1.10 test processes with can not merge projects. Fixes the TIC side of still on 1.144.2: TestItems testing stuck on (Queued) julia-vscode/julia-vscode#3832 and Battling to run and debug @testitem test julia-vscode/julia-vscode#3633.
  • Port the 1.11 guard to the four older variants (prune_manifest(sandbox_manifest, [uuid]) kept as-is; the Set([uuid]) form is 1.12+ only). julia-1.0..1.3 do not contain the pattern and are untouched.
  • New fixture testdata/TestManifestPackage (package + test/Project.toml + committed test/Manifest.toml format 2.0 dev-ing the package via path = ".."; .gitignore gets a negation for that one manifest) and test/test_test_manifest.jl with two test items: one running the fixture on the current Julia, one tagged :comprehensive_platform running it on the Julia 1.10 juliaup channel via TestHelpers.isolated_depot_env, like test_julia_versions.jl.

Same change proposed upstream at JuliaTesting/TestEnv.jl (see linked PR).

Test plan

  • Direct reproducer with Julia 1.10.12: TestEnv.activate() on the fixture fails with can not merge projects using the vendored copy on main, succeeds with this branch.
  • test/test_test_manifest.jl (both items, i.e. current Julia 1.12.7 and Julia 1.10.12 test process) and test/test_run_passing.jl run locally via TestItemRunner.run_tests with a filename filter: 16/16 pass.
  • Full CI.

🤖 Generated with Claude Code

The Julia 1.11+ variant of the vendored TestEnv tolerates the package's
own uuid already being present in the working manifest when merging the
test manifest; the 1.4/1.7/1.8/1.9 variants still raised "can not merge
projects" unconditionally. That breaks packages whose test/Manifest.toml
dev's the package itself (path = "..") on Julia <= 1.10.

Port the guard to the older variants, add the TestManifestPackage
fixture and a regression test that runs it on the current Julia and,
under the comprehensive_platform tag, on Julia 1.10.

Refs julia-vscode/julia-vscode#3832, julia-vscode/julia-vscode#3633

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@davidanthoff
davidanthoff marked this pull request as draft August 19, 2026 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant