Skip to content

Set up documentation site with DocumenterVitepress#223

Open
dpsanders wants to merge 7 commits intomasterfrom
docs-vitepress
Open

Set up documentation site with DocumenterVitepress#223
dpsanders wants to merge 7 commits intomasterfrom
docs-vitepress

Conversation

@dpsanders
Copy link
Copy Markdown
Member

Summary

  • Switch docs from the old Documenter.jl HTML backend to DocumenterVitepress for a modern VitePress-based site (better search, dark mode, nicer navigation)
  • Add new Contractors and Separators page explaining the key concepts with examples
  • Add Architecture page documenting the internal pipeline (symbolic expression → contractor → separator → paving)
  • Update index.md to the current v0.15 API (constraint() function, Symbolics.@variables, pave(X, S, tol) argument order)
  • Add GitHub Actions workflow (.github/workflows/Documenter.yml) for automated doc deployment to gh-pages
  • Remove stale mkdocs.yml (template placeholder) and outdated Manifest.toml

Setup note

After merging, you'll need a DOCUMENTER_KEY deploy key for the repo if one isn't already configured. Run julia -e 'using DocumenterTools; DocumenterTools.genkeys(; user="JuliaIntervals", repo="IntervalConstraintProgramming.jl")' and add the keys to the repo settings.

Test plan

  • Verify docs/make.jl builds locally: julia --project=docs -e "using Pkg; Pkg.instantiate()" then julia --project=docs docs/make.jl
  • Check that the Documenter workflow runs on CI
  • Verify gh-pages deployment after merge

🤖 Generated with Claude Code

David Sanders and others added 7 commits April 2, 2026 03:35
…ompatibility

Update compat bounds: IntervalArithmetic 1, IntervalBoxes 0.3,
IntervalContractors 0.6, ReversePropagation 0.4, Symbolics 7.

IntervalArithmetic v1.0 follows IEEE 1788 and deliberately does not define
Base.isequal/Base.hash for Interval. This broke @register_symbolic x ∈ y::Interval
since SymbolicUtils needs isequal/hash for hash-consing. Instead of type-pirating
those methods, decompose x ∈ interval(a,b) into (x >= a) & (x <= b) at the
symbolic level.

Also fix pre-existing bug in separator() where & and | used Base.intersect/union
instead of ⊓/⊔ (defined for AbstractSeparator in set_operations.jl).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Cherry-pick infrastructure changes from PR #220:
- Update GitHub Actions versions (checkout v6, setup-julia v2, cache v3, codecov v6)
- Test on Julia 1.11 instead of 1.10
- Set julia compat to 1.11
- Remove obsolete REQUIRE file (Pkg.jl era)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Switch from the old Documenter HTML backend to DocumenterVitepress for a
modern VitePress-based documentation site. Add new pages explaining
contractors/separators and the internal architecture, update index.md to
the current API, add GitHub Actions workflow for doc deployment, and
remove stale mkdocs.yml and Manifest.toml.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolve conflicts with master (take updated compat bounds, use '1'
for latest stable Julia). Remove x86 architecture from CI -- all x86
jobs were failing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.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.

1 participant