From 1b97c6e21ac664c315580c7be0c03f906961370d Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Wed, 15 Jul 2026 03:53:58 -0400 Subject: [PATCH] Propagate downstream resolver failures Co-Authored-By: Chris Rackauckas --- .github/workflows/downstream.yml | 17 +++-------------- test/runtests.jl | 7 +++++++ 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index 5578862..3d84afb 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -107,20 +107,9 @@ jobs: error("No downstream Project.toml at $downstream_project") Pkg.activate(downstream_project) @info "Selected downstream project" downstream_project - try - # force it to use this PR's version of the package - Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps - Pkg.update() - Pkg.test(coverage=${{ inputs.coverage }}) # resolver may fail with test time deps - catch err - err isa Pkg.Resolve.ResolverError || rethrow() - - # If we can't resolve that means this is incompatible by SemVer and this is fine - # It means we marked this as a breaking change, so we don't need to worry about - # Mistakenly introducing a breaking change, as we have intentionally made one - @info "Not compatible with this release. No problem." exception=err - exit(0) # Exit immediately, as a success - end + Pkg.develop(PackageSpec(path=".")) + Pkg.update() + Pkg.test(coverage=${{ inputs.coverage }}) - uses: julia-actions/julia-processcoverage@v1 diff --git a/test/runtests.jl b/test/runtests.jl index 4b59702..0e0043a 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -490,6 +490,13 @@ end @test first(activate_at) < first(develop_at) < first(test_at) end +@testset "downstream.yml propagates resolver failures" begin + txt = read(joinpath(@__DIR__, "..", ".github", "workflows", "downstream.yml"), String) + @test !occursin("Pkg.Resolve.ResolverError", txt) + @test !occursin("Not compatible with this release", txt) + @test !occursin("exit(0)", txt) +end + # A 32-bit (x86/i686) Julia leg needs the i386 loader + C/C++ runtime installed # BEFORE setup-julia runs julia, or the run dies with `spawn .../x86/bin/julia # ENOENT`. Assert tests.yml has that install step, gates it on a 32-bit arch on