Skip to content

Add Downgrade CI#3383

Open
vchuravy wants to merge 5 commits into
mainfrom
worktree-downgrade-ci
Open

Add Downgrade CI#3383
vchuravy wants to merge 5 commits into
mainfrom
worktree-downgrade-ci

Conversation

@vchuravy

Copy link
Copy Markdown
Member

Adds a Downgrade CI workflow that tests the lower bounds of the [compat] entries in Project.toml actually resolve and pass, using julia-actions/julia-downgrade-compat.

  • Runs on Julia 1.10 (the minimum supported version) on ubuntu-24.04.
  • Dev's in EnzymeCore/EnzymeTestUtils (path deps) and skips EnzymeCore from downgrade since it's a local source.
  • Triggered on the same path filters as CI.yml.

🤖 Generated with Claude Code

vchuravy and others added 3 commits July 22, 2026 13:30
Test that the lower bounds of compat entries actually resolve and pass,
using julia-actions/julia-downgrade-compat on Julia 1.10 (the minimum
supported version).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Downgrade CI revealed two lower bounds that do not co-resolve with the
rest of the dependency graph at their minimum versions:

- BFloat16s 0.2/0.3 fail to resolve alongside the LLVM 9.10 requirement
  in the test environment; 0.4 is the lowest that works.
- Preferences is pulled to 1.5.2 by the transitive test dependencies, so
  the 1.4 lower bound is unsatisfiable in the Pkg.test sandbox.

Verified on Julia 1.10 by reproducing the julia-downgrade-compat
transform + Pkg.test sandbox resolution.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SparseArrays is an upgradeable stdlib whose only available version on a
given Julia is the bundled one, so julia-downgrade-compat must not try to
downgrade it. Keep the package version unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

main 41e37b3... main / 41e37b3...
basics/make_zero/namedtuple 0.0595 ± 0.0042 μs 0.0558 ± 0.0055 μs 1.07 ± 0.13
basics/make_zero/struct 0.254 ± 0.0085 μs 0.252 ± 0.0076 μs 1.01 ± 0.046
basics/overhead 4.89 ± 0.001 ns 4.88 ± 0.01 ns 1 ± 0.0021
basics/remake_zero!/namedtuple 0.231 ± 0.01 μs 0.23 ± 0.0098 μs 1.01 ± 0.062
basics/remake_zero!/struct 0.233 ± 0.016 μs 0.23 ± 0.012 μs 1.01 ± 0.089
fold_broadcast/multidim_sum_bcast/1D 10.6 ± 2.2 μs 10.6 ± 2.1 μs 1.01 ± 0.29
fold_broadcast/multidim_sum_bcast/2D 12.8 ± 0.39 μs 12.8 ± 0.37 μs 1.01 ± 0.042
time_to_load 1.57 ± 0.03 s 1.55 ± 0.0015 s 1.02 ± 0.019

Benchmark Plots

A plot of the benchmark results has been uploaded as an artifact at https://github.com/EnzymeAD/Enzyme.jl/actions/runs/29918794948/artifacts/8529223020.

@vchuravy
vchuravy marked this pull request as ready for review July 22, 2026 12:28
@vchuravy
vchuravy requested a review from giordano July 22, 2026 12:29
Comment thread .github/workflows/Downgrade.yml Outdated
Comment thread .github/workflows/Downgrade.yml Outdated
Comment on lines +55 to +61
- name: add EnzymeCore EnzymeTestUtils
shell: julia --color=yes --project=. {0}
run: |
using Pkg
Pkg.develop([PackageSpec(; path) for path in ("lib/EnzymeCore", "lib/EnzymeTestUtils")])
env:
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When are we moving to v1.11+? 😁

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this CI run we could immediately

Comment thread Project.toml Outdated
Comment thread Project.toml Outdated
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
Comment thread Project.toml Outdated
@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.97%. Comparing base (74050d8) to head (c5ec289).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3383   +/-   ##
=======================================
  Coverage   76.97%   76.97%           
=======================================
  Files          66       66           
  Lines       22333    22333           
=======================================
  Hits        17191    17191           
  Misses       5142     5142           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread Project.toml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's up with this diff? Why it looks like the entire file changed?

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.

2 participants