Skip to content

Fix docs build: add git [sources] for unregistered QuadDIRECT#1232

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-docs-quaddirect-source
Jun 26, 2026
Merged

Fix docs build: add git [sources] for unregistered QuadDIRECT#1232
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:fix-docs-quaddirect-source

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

Problem

The Documentation / Build and Deploy Documentation check on master fails at the first instantiate step:

julia --color=yes --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
...
ERROR: expected package `QuadDIRECT [dae52e8d]` to be registered

docs/Project.toml lists both QuadDIRECT and OptimizationQuadDIRECT (which depends on QuadDIRECT) in [deps]. QuadDIRECT is not registered in the General registry and had no [sources] entry, so the docs environment cannot resolve. This reproduces on every recent docs run on master and PRs.

Fix

Add a git [sources] entry for QuadDIRECT pointing at the upstream repository — the same source the QuadDIRECT docs page already instructs users to install manually (] add https://github.com/timholy/QuadDIRECT.jl.git):

[sources.QuadDIRECT]
url = "https://github.com/timholy/QuadDIRECT.jl.git"

Local verification

Ran the exact docs CI command on Julia 1.12 (the docs CI channel):

julia +1.12 --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'

Previously this errored at resolution. With the fix, the docs environment resolves and instantiates. The resolved docs/Manifest.toml pulls QuadDIRECT from the git URL and OptimizationQuadDIRECT resolves against it:

[[deps.QuadDIRECT]]
deps = ["LinearAlgebra", "PositiveFactorizations", "StaticArrays"]
repo-rev = "master"
repo-url = "https://github.com/timholy/QuadDIRECT.jl.git"

Scope note

This PR fixes only the docs-build resolution failure. The other current master reds are tracked separately:

  • OptimizationCMAEvolutionStrategy [QA] / Julia lts — already fixed by the SciML/.github@v1 develop_sources.jl update (which now skips a dependency's test-only [sources]); that fix landed ~50 min after the stale CI run on master, so this just needs a fresh CI run. Verified locally that the QA group passes 12/12 on Julia 1.10 with the current @v1 script.
  • Downgrade / downgrade-sublibraries — the known --min=@alldeps compat-floor conflict on Julia 1.10 (open-ended floors like ComponentArrays >= 0.13.9); a separate, fleet-wide effort.
  • ModelingToolkit.jl/All, NeuralPDE.jl/NNPDE downstream — out of scope.

Please ignore until reviewed by @ChrisRackauckas

ChrisRackauckas and others added 2 commits June 19, 2026 05:49
The Documentation workflow fails at the very first instantiate step
(`Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()`) with:

    ERROR: expected package `QuadDIRECT [dae52e8d]` to be registered

`docs/Project.toml` lists `QuadDIRECT` (and `OptimizationQuadDIRECT`,
which depends on it) in `[deps]`, but `QuadDIRECT` is not registered in
General and had no `[sources]` entry, so the docs environment could not
resolve. Add a git `[sources]` entry pointing at the upstream repo, the
same source the docs page already instructs users to add manually.

Verified locally on Julia 1.12 (the docs CI channel): the docs
environment now resolves and instantiates; QuadDIRECT is pulled from
https://github.com/timholy/QuadDIRECT.jl.git and OptimizationQuadDIRECT
resolves against it.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The QuadDIRECT [sources] fix got the docs build past instantiate, which
then surfaced pre-existing makedocs errors [:example_block, :linkcheck].

- lib/SimpleOptimization: SimpleBFGS/SimpleLBFGS passed the obsolete
  `linesearch = Val(false)` to SimpleBroyden/SimpleLimitedMemoryBroyden.
  SimpleNonlinearSolve v2.x's `linesearch` keyword is
  `Union{Nothing, LineSearch.AbstractLineSearchAlgorithm}` and rejects
  `Val{false}` with a TypeError; `nothing` is the documented "no line
  search" value. This also fixes the sublibrary's own (red) Core tests.
- evolutionary.md: Evolutionary.jl moved wildart -> SciML; the four
  wildart.github.io/Evolutionary.jl/stable/{ga,de,es,cmaes}/ links 404.
  Repoint to sciml.github.io and the repo links to github.com/SciML.
- nlopt.md: http://ab-initio.mit.edu/nlopt/ is dead (linkcheck timeout);
  repoint the NLopt library link to https://nlopt.readthedocs.io/en/latest/.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor Author

Docs build: root-cause analysis + additional fixes pushed

The QuadDIRECT [sources] fix in this PR correctly got the docs build past the Install Dependencies (instantiate) step — verified: on the prior master/PR runs the Documentation job failed at Install Dependencies (the expected package QuadDIRECT to be registered error); on this PR's run that step now passes and the job proceeds to makedocs.

That exposed pre-existing makedocs errors that were previously masked by the early instantiate failure:

ERROR: LoadError: `makedocs` encountered errors [:linkcheck, :example_block] -- terminating build before rendering.

Fixed in commit 22b43d2 (pushed to this branch)

  1. :example_blockdocs/src/optimization_packages/simpleoptimization.md:25-33
    TypeError: in keyword argument linesearch, expected Union{Nothing, LineSearch.AbstractLineSearchAlgorithm}, got a value of type Val{false} at lib/SimpleOptimization/src/SimpleOptimization.jl:223.
    SimpleBFGS/SimpleLBFGS passed the obsolete linesearch = Val(false) to SimpleBroyden/SimpleLimitedMemoryBroyden. SimpleNonlinearSolve v2.x (resolved v2.12.0) types linesearch::Union{Nothing, LineSearch.AbstractLineSearchAlgorithm} and the documented "no line search" value is nothing. Fixed both call sites. This is pre-existing on master and also broke the SimpleOptimization sublibrary's own Core tests (verified: Val(false) -> Core test errors with the identical TypeError; nothing -> Core 7/7 pass on Julia 1.12 / SimpleNonlinearSolve 2.12.0).

  2. :linkcheck 404 x4docs/src/optimization_packages/evolutionary.md: the four wildart.github.io/Evolutionary.jl/stable/{ga,de,es,cmaes}/ links 404 (Evolutionary.jl moved wildart -> SciML). Repointed to sciml.github.io/Evolutionary.jl/stable/... (all verified 200 via Documenter's exact linkcheck curl) and updated the two github.com/wildart repo links to github.com/SciML (were 301-redirect warnings).

  3. :linkcheck timeout x1docs/src/optimization_packages/nlopt.md: http://ab-initio.mit.edu/nlopt/ is dead (curl --max-time 10 -> ProcessExited(28)). Repointed to https://nlopt.readthedocs.io/en/latest/ (verified 200).

Remaining blocker — NOT fixable in this repo (upstream SciMLBase)

:linkcheck 403 on https://docs.sciml.ai/Optimization/dev/optimization_packages/optimization. This URL is not a link in Optimization.jl's docs source — it comes from the rendered OptimizationProblem docstring in SciMLBase (src/problems/optimization_problems.jl:96, present on SciMLBase master), pulled into these docs via modules = [..., Optimization.SciMLBase, ...]. The page optimization_packages/optimization does not exist (the Sophia example lives at optimization_packages/sophia/), so docs.sciml.ai returns 403 for the missing path (it returns 200 for real pages, so this is a genuine broken link, not bot-blocking). Fix belongs in SciML/SciMLBase.jl (repoint to optimization_packages/sophia/); a SciMLBase release must then propagate before this repo's docs build can go fully green.

So this PR makes all of Optimization.jl's own docs problems pass; the last red is a SciMLBase upstream docstring link. Please ignore until reviewed by @ChrisRackauckas.

ChrisRackauckas added a commit to SciML/SciMLBase.jl that referenced this pull request Jun 23, 2026
The `OptimizationProblem` docstring linked to
`docs.sciml.ai/Optimization/dev/optimization_packages/optimization`, which
does not exist (returns a non-200 / 403). Repoint it to the Sophia package
page at `optimization_packages/sophia/`, which is the actual page hosting the
`Sophia` data-handling example referenced in the text.

Because Optimization.jl renders SciMLBase docstrings (`modules=[..., SciMLBase, ...]`),
this dead link is the remaining `:linkcheck` failure in SciML/Optimization.jl#1232.

Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 26, 2026 11:42
@ChrisRackauckas ChrisRackauckas merged commit c0aa786 into SciML:master Jun 26, 2026
34 of 48 checks passed
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