Fix the QA regression from #76 and drop the dead TruncatedStacktraces dependency - #80
Closed
ChrisRackauckas-Claude wants to merge 2 commits into
Closed
Conversation
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>
`@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>
ChrisRackauckas-Claude
force-pushed
the
agent/restore-qa-ignores
branch
from
July 29, 2026 01:34
4bc1076 to
a552d4d
Compare
ChrisRackauckas
marked this pull request as ready for review
July 29, 2026 02:31
Member
Author
|
#79 was squash-merged, and because #79 was stacked on this branch, that merge carried this PR's entire contents to
Diffing this branch against current So rebasing would just produce an empty PR. Closing as delivered via #79. One correction did come out of the re-check: the ignore comment that landed references |
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.
The regression
The QA group has been failing on
mainsince 2026-07-22. #76 ("Migrate QA to SciMLTesting 2.4") replaced the entirerun_qa(...)call with a bare one-liner, and in doing so silently dropped theall_qualified_accesses_are_publicignore list that came with it:Reproduced on a clean checkout of
main(588bcb7, unmodified), Julia 1.12:This is invisible to
Pkg.test(), which runs the curated default group — QA is not part of it.Commit 1 — restore the ignores
Puts the dropped entries back, which makes the group pass again.
:tailis deliberately not restored:Base.tailis no longer reached and ExplicitImports does not flag it.Commit 2 — remove the need for one of them entirely
Rather than carry
@truncate_stacktraceas a permanent exception, the dependency goes away, because it has never done anything in this package.TruncatedStacktraces sets:
and the macro body is
@static if !DISABLE. So on Julia ≥ 1.10 it expands to nothing — and 1.10 is this package's floor (julia = "1.10"). The version clause cannot be overridden by the preference, so theBase.showmethod the macro is meant to define has never existed on any Julia we support.Verified rather than assumed:
Zero
Base.showmethods contributed, type prints in full. Dropping the dep is a strict no-op that also sheds a dependency on an archived, unmaintained package.Worth noting this was the only option available for that name: SciML/TruncatedStacktraces.jl is archived and read-only (last push 2024-07-31), so
@truncate_stacktracecannot be exported or made public at its source — GitHub rejects PRs against it outright.What is left
Only
FunctionWrappers.FunctionWrapper, and it now has a path out: JuliaLang/FunctionWrappers.jl#35 marks itpublic. Once that is released and the compat floor raised, the last ignore can go andrun_qa(FunctionWrappersWrappers)can return to the bare form #76 intended.Validation
Runic 1.7.0
--checkexits 0. Patch bump to 1.11.1.Unrelated hygiene note
.gitignoreonly covers the root/Manifest.toml, not the per-group ones undertest/*/. Those are generated and untracked, so a carelessgit add -Apicks them up. Not fixed here to keep this PR focused, but worth a one-line follow-up.Links