Skip to content

Migrate QA to SciMLTesting 2.4 - #76

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/public-single-cache-storage
Jul 22, 2026
Merged

ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:agent/public-single-cache-storage

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Summary

  • require SciMLTesting 2.4 in the root, QA, and nopre test environments
  • run QA with unmodified strict defaults, removing qualified-access exemptions
  • retain the merged Standardize public API documentation #74 definition-site documentation and rendered coverage for every exported/public API, including all three cache storage types

Local validation

  • core: 79/79
  • strict SciMLTesting 2.4 QA: passed
  • Enzyme: 68/68
  • Mooncake: 13/13
  • nopre/JET: 14/14
  • Documenter build with doctests, cross-references, document checks, and HTML rendering: passed
  • Runic check and git diff --check: passed

Ignore until reviewed by @ChrisRackauckas.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 22, 2026 14:48
@ChrisRackauckas
ChrisRackauckas merged commit d0bd481 into SciML:main Jul 22, 2026
15 of 16 checks passed
ChrisRackauckas-Claude pushed a commit to ChrisRackauckas-Claude/FunctionWrappersWrappers.jl that referenced this pull request Jul 29, 2026
SciML#76 replaced the whole `run_qa(...)` call with a bare
`run_qa(FunctionWrappersWrappers)`, which silently discarded the
`all_qualified_accesses_are_public` ignore list it carried. The QA group has
errored on `main` ever since with `NonPublicQualifiedAccessException` for
`FunctionWrappers.FunctionWrapper` and
`TruncatedStacktraces.@truncate_stacktrace`.

This is invisible to `Pkg.test()`, which runs the curated default group; QA is
not part of it.

`:tail` is not restored: `Base.tail` is no longer reached, and ExplicitImports
does not flag it.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
ChrisRackauckas added a commit that referenced this pull request Jul 29, 2026
…tructor (#79)

* Restore the ExplicitImports ignores dropped in #76

#76 replaced the whole `run_qa(...)` call with a bare
`run_qa(FunctionWrappersWrappers)`, which silently discarded the
`all_qualified_accesses_are_public` ignore list it carried. The QA group has
errored on `main` ever since with `NonPublicQualifiedAccessException` for
`FunctionWrappers.FunctionWrapper` and
`TruncatedStacktraces.@truncate_stacktrace`.

This is invisible to `Pkg.test()`, which runs the curated default group; QA is
not part of it.

`:tail` is not restored: `Base.tail` is no longer reached, and ExplicitImports
does not flag it.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

* Drop the dead TruncatedStacktraces dependency

`@truncate_stacktrace` cannot fire in this package. TruncatedStacktraces sets
`DISABLE = @load_preference("disable", true) || VERSION >= v"1.10"`, and the
macro body is wrapped in `@static if !DISABLE`, so on Julia 1.10 and later it
expands to nothing — and 1.10 is this package's floor. The `Base.show` method it
is supposed to define has never existed on any Julia version we support, and the
preference cannot override the version clause.

Verified: `FunctionWrappersWrapper` contributes zero `Base.show` methods, and
its type prints in full with no truncation.

That makes the dependency dead weight, and it was the only reason the QA suite
needed a `@truncate_stacktrace` ignore. Removing it is better than either
ignoring the access or promoting the name upstream — the latter is impossible
in any case, since SciML/TruncatedStacktraces.jl is archived and read-only.

Only the `FunctionWrapper` ignore remains, and that one has a path out now:
JuliaLang/FunctionWrappers.jl#35.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

* Document the explicit FunctionWrappersWrapper{FW, P, CS}(fw, cs) constructor

`FunctionWrappersWrapper` is exported, so its inner constructor was already
reachable as public API, but it carried no docstring — the only constructor of
the type that did not. Downstream solver stacks construct through exactly this
method, because supplying `FW`, `P` and `CS` directly keeps the wrapper type
inferrable without relying on constant propagation through a keyword-argument
frame, which the `argtypes`/`rettypes` and tuple constructors do.

The docstring is attached with `@doc` on the method signature after the struct;
a docstring written inside the struct body does not attach to the type's
binding, so Documenter would never render it.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

---------

Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
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