Skip to content

Enforce repository-wide strict API documentation QA - #267

Draft
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/exponentialutilities-repository-strict-qa
Draft

Enforce repository-wide strict API documentation QA#267
ChrisRackauckas-Claude wants to merge 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/exponentialutilities-repository-strict-qa

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Aug 5, 2026

Copy link
Copy Markdown
Member

Ignore until reviewed by @ChrisRackauckas.

Summary

  • document every package-owned public API at its definition and render it in the manual
  • exercise the documented matrix-free interfaces through external-call tests
  • run standard SciMLTesting 2.4 QA without package-specific public/import exceptions, including the StaticArrays extension
  • replace uses of dependency internals with owner APIs or local package-specific helpers
  • remove accidental/internal exports and dead StegrWork implementation

The allocation-free matrix-balancing helper is a local implementation because the stdlib LAPACK wrapper used previously is not public and the hot path's zero-allocation contract must be preserved. The new tests compare it with GenericSchur.balance! across real/complex Float32/Float64 inputs and check zero allocations.

This is separate from #266, which promotes and documents alloc_mem.

Local verification

  • julia +release --project=. -e 'using Pkg; Pkg.test()': passed (770 tests; 1 pre-existing broken AllocCheck assertion)
  • julia +1.10 --project=. -e 'using Pkg; Pkg.test()': passed (770 tests; same pre-existing broken assertion)
  • release QA: passed (21/21 package QA checks; 6/6 extension checks)
  • Julia 1.10 QA: passed (19/19 package QA checks; 4/4 extension checks)
  • release docs build: passed
  • Julia 1.10 docs build: passed
  • Runic check: passed

GPU tests were not run locally because this machine has no available NVIDIA device.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Materialize CPU views before copying reduced Krylov operands to GPU storage, and cover the public expv path with a focused CUDA regression test.

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

Copy link
Copy Markdown
Member Author

Follow-up commit 10cdf65 fixes the observed CUDA scalar-indexing failure by materializing the CPU reduced-space view before copying it into GPU storage. It also adds a focused public expv CUDA regression test.

Local validation after the change:

  • Julia 1.12.6 Pkg.test(): 770 passed, 1 unchanged broken
  • Julia 1.10.11 Pkg.test(): 770 passed, 1 unchanged broken
  • plain strict QA: 28 passed, 2 unchanged broken
  • 100,000 deterministic static-matrix Jacobian seeds: passed
  • Runic and git diff --check: passed

The CUDA suite cannot run locally because this host has no NVIDIA device; the refreshed real-GPU CI job is authoritative. The unrelated Windows failure is an unchanged unseeded static-Jacobian test and was not altered in this docs/QA PR.

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