Skip to content

Avoid non-public promote_op in OptimizationBase#1249

Closed
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-optimizationbase-promote-op-public-access
Closed

Avoid non-public promote_op in OptimizationBase#1249
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/fix-optimizationbase-promote-op-public-access

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jul 8, 2026

Copy link
Copy Markdown
Member

This PR should be ignored until reviewed by @ChrisRackauckas.

Summary

  • Replace the Base.promote_op dependency in OptimizationDIExt.jl with a local public-API output-eltype helper.
  • Keep the p-accepting constraint Jacobian output buffer usable for dual and numeric parameter eltypes.

Root cause

OptimizationBase QA on master failed ExplicitImports.all_qualified_accesses_are_public because Base.promote_op is not public API.

Verification

Reproduced on the pre-fix base (59bdb75fe):

  • OPTIMIZATION_TEST_GROUP=QA julia --project=lib/OptimizationBase -e 'import Pkg; Pkg.test()'
  • Result: NonPublicQualifiedAccessException: promote_op is not public in Base; summary 16 passed, 1 errored, 1 broken.

Verified on this rebased branch (5cb560a08940f5592cd79b1654544afc6961d2f1):

  • timeout 3600 env JULIA_DEPOT_PATH=/home/crackauc/sandbox/tmp_20260708_165240_11300/Optimization.jl/.julia-depot OPTIMIZATION_TEST_GROUP=QA julia --startup-file=no --project=lib/OptimizationBase -e 'import Pkg; Pkg.test(; coverage=false, julia_args=["--check-bounds=auto", "--compiled-modules=yes", "--depwarn=yes"], force_latest_compatible_version=false, allow_reresolve=true)'
    • Result: Quality Assurance | 17 pass, 1 broken, 18 total; Testing OptimizationBase tests passed.
  • timeout 3600 env JULIA_DEPOT_PATH=/home/crackauc/sandbox/tmp_20260708_165240_11300/.julia-depot julia --startup-file=no --project=/home/crackauc/sandbox/tmp_20260708_165240_11300/.runic-env -m Runic --check lib/OptimizationBase/src/OptimizationDIExt.jl
    • Result: passed.
  • git diff --check origin/master..HEAD
    • Result: passed with no output.

@ChrisRackauckas

Copy link
Copy Markdown
Member

Do an ignore/allow on promote_op here and use it.

@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the agent/fix-optimizationbase-promote-op-public-access branch from 25d5b3f to e0d54ae Compare July 10, 2026 01:49
Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude
ChrisRackauckas-Claude force-pushed the agent/fix-optimizationbase-promote-op-public-access branch from e0d54ae to 5cb560a Compare July 10, 2026 02:17
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Current downstream status from the regression sweep:

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