Conversation
Checks that do not pass yet are marked with `@test_broken`. JET >= 0.11.4 requires Julia >= 1.12, so no single version resolves across the whole CI matrix. The compat entry allows JET 0.9.18 as well, and the checks are only run if `JET_AVAILABLE` is defined and true. Since the downgrade job would otherwise pin JET to 0.9.18 on Julia >= 1.12, JET is added to its skip list. `report_package` reports hundreds of problems in code generated with `@eval`, hence the API entry points are analyzed individually instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
devmotion
force-pushed
the
dmw/qa-tests
branch
from
September 18, 2026 12:54
86c286d to
0dbb64b
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #299 +/- ##
==========================================
- Coverage 86.69% 86.05% -0.64%
==========================================
Files 19 18 -1
Lines 1916 1915 -1
==========================================
- Hits 1661 1648 -13
- Misses 255 267 +12 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The six `@test_broken` ExplicitImports checks become real tests. Four are fixed at the source, two are narrowed to what the package can control. Source fixes: - `src/ReverseDiff.jl`: all imports are explicit now, which also drops the stale `ForwardDiff.Partials`. The bare module bindings `DiffRules`, `NaNMath` and `SpecialFunctions` are kept: the `@eval` loops in `derivatives/` splice `$M.$f` for `M in (:Base, :SpecialFunctions, :NaNMath)` and iterate `DiffRules.diffrules(; filter_modules=nothing)`. - `src/derivatives/broadcast.jl`: drop the stale `ArrayStyle` import. - `src/derivatives/linalg/special.jl`: `inv` is owned by `Base`, not by `LinearAlgebra`, so extend `Base.inv`. (`LinearAlgebra.det` above it is correct as-is -- `det` *is* owned by `LinearAlgebra`.) - `src/derivatives/linalg/arithmetic.jl`: drop the self-qualification in `Base.zero(x::ReverseDiff.TrackedArray)`. - `src/macros.jl`: interpolate the module into the code that `@grad_from_chainrules` generates, exactly as `@grad` already does. This removes the remaining 12 self-qualified accesses and, because `ChainRulesCore` is interpolated too, the generated code no longer requires the caller's module to have `ChainRulesCore` in scope. Test changes: The two publicness checks are scoped with `ignore`. ReverseDiff cannot mark its own names `public` -- that needs Julia >= 1.11 and the LTS is 1.10 -- and several dependencies predate the keyword, so the listed names are all either upstream internals or ReverseDiff internals used by `StatisticsExt`. ExplicitImports 1.15 has no way to say "this extension belongs to this package": an extension is a top-level module, so `Base.moduleroot` of `StatisticsExt` is itself rather than `ReverseDiff` and `allow_internal_imports`/`allow_internal_accesses` never apply, while `ignore=(STATISTICS_EXT,)` is rejected as not a submodule. Listing the names is the only way to express it, and it keeps the extension's dependence on internals visible. `check_all_explicit_imports_via_owners` gets `StaticArrays => StaticArraysCore` in `skip`, since `SVector` is exported by `StaticArrays` but owned by `StaticArraysCore`; that adds `StaticArraysCore` to the test dependencies. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a
QATeststest set that runs Aqua, ExplicitImports and JET. Checks that do not pass yet are marked with@test_broken, no source code is changed.Notable findings:
Aqua.test_ambiguitiesreports 4185 ambiguities between the methods generated with@evalinsrc/derivatives/and methods inBaseandLinearAlgebra, and JET reports every entry point that differentiates a function with a scalar output, since the analysis reachespull_value!(::TrackedReal{V,D,Nothing})insrc/tracked.jlwheret.originis only known to be non-nothingdue to the run-time checkhasorigin(t).JET >= 0.11.4 requires Julia >= 1.12, so there is no single version that resolves on all Julia versions in the CI matrix. The compat entry therefore allows JET 0.9.18 as well, and the checks are only run if
JET_AVAILABLEis defined and true. Since the downgrade job would otherwise pin JET to 0.9.18 on Julia >= 1.12, where it does not precompile, JET is added to its skip list.The full test suite passes on Julia 1.12.7 (11219 passed, 18 broken). The remaining CI configurations, in particular the downgrade job, are not verified locally.
🤖 Generated with Claude Code