Repository navigation
Conversation
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
2 open issues
What changed in this PR
Migrates the project documentation from Sphinx to Astro + Starlight, adds a Python AST-based API docs generator, and preserves legacy routes/bookmarks via static redirects plus build-time validation and tests.
Changes:
- Replaces the Sphinx docs toolchain with an Astro/Starlight site (Node-based build + new styling/config).
- Adds a Python AST generator to produce API reference pages, sidebar JSON, and legacy fragment mappings.
- Adds redirect tests and a post-build validator to ensure internal links and legacy API member bookmarks resolve.
| File | Description |
|---|---|
| pyproject.toml | Removes Sphinx-era docs dependency group to reflect Astro-based docs build. |
| docs/validate_build.py | Adds post-build HTML/link/bookmark validation for the generated site and legacy redirects. |
| docs/tsconfig.json | Adds strict TS config for Astro/Starlight workspace. |
| docs/test_redirects.mjs | Adds Node test to verify legacy redirect JS behavior and fragment mapping. |
| docs/src/styles/brand.css | Adds Starlight theme tokens and site title styling. |
| docs/src/content/docs/reference/python-api.md | Adds top-level “API Reference” landing page for generated Python API docs. |
| docs/src/content/docs/reference/python-api/classenum.md | Generated Python API page for ClassEnum. |
| docs/src/content/docs/reference/python-api/collectionenum.md | Generated Python API page for CollectionEnum. |
| docs/src/content/docs/reference/python-api/databasevalidationcategory.md | Generated Python API page for DatabaseValidationCategory. |
| docs/src/content/docs/reference/python-api/databasevalidationerror.md | Generated Python API page for DatabaseValidationError. |
| docs/src/content/docs/reference/python-api/databasevalidationfinding.md | Generated Python API page for DatabaseValidationFinding. |
| docs/src/content/docs/reference/python-api/duckdbresult.md | Generated Python API page for DuckDBResult. |
| docs/src/content/docs/reference/python-api/duckdbschema.md | Generated Python API page for DuckDBSchema. |
| docs/src/content/docs/reference/python-api/duckdbsolutioninfo.md | Generated Python API page for DuckDBSolutionInfo. |
| docs/src/content/docs/reference/python-api/ifexists.md | Generated Python API page for IfExists. |
| docs/src/content/docs/reference/python-api/periodenum.md | Generated Python API page for PeriodEnum. |
| docs/src/content/docs/reference/python-api/phaseenum.md | Generated Python API page for PhaseEnum. |
| docs/src/content/docs/reference/python-api/plexosdb.md | Generated Python API page for PlexosDB. |
| docs/src/content/docs/reference/python-api/plexossolution.md | Generated Python API page for PlexosSolution. |
| docs/src/content/docs/reference/python-api/propertyrecord.md | Generated Python API page for PropertyRecord. |
| docs/src/content/docs/reference/python-api/resulttable.md | Generated Python API page for ResultTable. |
| docs/src/content/docs/reference/python-api/resultschema.md | Generated Python API page for ResultSchema. |
| docs/src/content/docs/reference/python-api/sqliterecord.md | Generated Python API page for SQLiteRecord. |
| docs/src/content/docs/reference/python-api/sqlitevalue.md | Generated Python API page for SQLiteValue. |
| docs/src/content/docs/reference/python-api/tableinfo.md | Generated Python API page for TableInfo. |
| docs/src/content/docs/reference/python-api/tabletypeenum.md | Generated Python API page for TableTypeEnum. |
| docs/src/content/docs/reference/python-api/validationresult.md | Generated Python API page for ValidationResult. |
| docs/src/content/docs/reference/python-api/xmlhandler.md | Generated Python API page for XMLHandler. |
| docs/src/content/docs/reference/python-api/xmlrecord.md | Generated Python API page for XMLRecord. |
| docs/src/content/docs/reference/python-api/xmlvalue.md | Generated Python API page for XMLValue. |
| docs/src/content/docs/reference/api/modules/checks.md | Adds/updates generated module guide for plexosdb.checks. |
| docs/src/content/docs/reference/api/modules/db_solution.md | Adds/updates generated module guide for plexosdb.db_solution*. |
| docs/src/content/docs/reference/api/modules/enums.md | Adds/updates generated module guide for plexosdb.enums. |
| docs/src/content/docs/reference/api/modules/exceptions.md | Adds/updates generated module guide for plexosdb.exceptions. |
| docs/src/content/docs/reference/api/modules/plexosdb.md | Adds/updates generated module guide for plexosdb.db API surface. |
| docs/src/content/docs/reference/api/modules/solution_reader.md | Adds/updates generated module guide for the SQLite solution reader modules. |
| docs/src/content/docs/reference/api/modules/sqlite_manager.md | Adds/updates generated module guide for plexosdb.db_manager. |
| docs/src/content/docs/reference/api/modules/utils.md | Adds/updates generated module guide for plexosdb.utils. |
| docs/src/content/docs/reference/api/modules/xml_handler.md | Adds/updates generated module guide for plexosdb.xml_handler. |
| docs/src/content/docs/how-to/index.md | Adds a “How-to guides” index page in the new Starlight content tree. |
| docs/src/content.config.ts | Configures Starlight docs collection loader/schema. |
| docs/source/index.md | Converts Sphinx-era markdown into Starlight frontmatter + updated routes. |
| docs/source/installation.md | Converts Sphinx-era markdown into Starlight frontmatter + updated routes. |
| docs/source/tutorial.md | Converts Sphinx-era markdown into Starlight frontmatter + updated routes. |
| docs/source/CHANGELOG.md | Converts Sphinx-era changelog into Starlight frontmatter. |
| docs/source/howtos/add_attributes.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/add_objects.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/add_properties.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/add_reports.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/bulk_operations.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/copy_objects.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/create_db.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/delete_objects.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/import_export.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/inspect_solution.md | Converts Sphinx-era how-to into Starlight frontmatter + updated routes. |
| docs/source/howtos/manage_relationships.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/mcp_server.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/query_database.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/read_solution.md | Converts Sphinx-era how-to into Starlight frontmatter + updated routes. |
| docs/source/howtos/remove_non_ascii.md | Converts Sphinx-era how-to into Starlight frontmatter. |
| docs/source/howtos/validate_database.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/work_with_scenarios.md | Converts Sphinx-era how-to into Starlight frontmatter + admonition syntax. |
| docs/source/howtos/index.md | Removes Sphinx toctree-based how-to index (replaced by Starlight index). |
| docs/source/conf.py | Removes Sphinx configuration. |
| docs/source/_templates/versioning.html | Removes Sphinx template. |
| docs/source/api/index.md | Removes Sphinx API toctree page (replaced by generated Starlight reference). |
| docs/source/api/checks.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/db_solution.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/enums.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/exceptions.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/plexosdb.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/solution_reader.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/sqlite_manager.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/utils.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/xml_handler.md | Removes Sphinx automodule page (replaced by generated module guide). |
| docs/source/api/diagnostic_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/horizon_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/lt_plan_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/model_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/mt_schedule_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/pasa_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/performance_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/production_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/st_schedule_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/source/api/transmission_attributes.md | Converts attribute reference page into Starlight frontmatter. |
| docs/public/legacy-redirect.js | Adds client-side redirect + fragment remapping (legacy bookmark preservation). |
| docs/public/api-fragments.json | Adds generated map from legacy API member fragments to new canonical URLs. |
| docs/public/favicon.svg | Adds site favicon. |
| docs/public/index.html | Adds legacy redirect shim for docs root (checked by validator). |
| docs/public/installation.html | Adds legacy redirect page for old installation route. |
| docs/public/tutorial.html | Adds legacy redirect page for old tutorial route. |
| docs/public/CHANGELOG.html | Adds legacy redirect page for old changelog route. |
| docs/public/howtos/index.html | Adds legacy redirect page for old howtos index route. |
| docs/public/howtos/add_attributes.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/add_objects.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/add_properties.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/add_reports.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/bulk_operations.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/copy_objects.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/create_db.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/delete_objects.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/import_export.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/inspect_solution.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/manage_relationships.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/mcp_server.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/query_database.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/read_solution.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/remove_non_ascii.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/validate_database.html | Adds legacy redirect page for old how-to route. |
| docs/public/howtos/work_with_scenarios.html | Adds legacy redirect page for old how-to route. |
| docs/public/api/index.html | Adds legacy redirect for old API index route. |
| docs/public/api/checks.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/db_solution.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/enums.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/exceptions.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/plexosdb.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/solution_reader.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/sqlite_manager.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/utils.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/xml_handler.html | Adds legacy redirect for old Sphinx automodule route. |
| docs/public/api/model_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/production_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/performance_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/transmission_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/pasa_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/diagnostic_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/horizon_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/mt_schedule_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/st_schedule_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/public/api/lt_plan_attributes.html | Adds legacy redirect for old attribute reference route. |
| docs/package.json | Adds Node dependencies and build/test hooks for Astro site and generators. |
| docs/astro.config.mjs | Adds Astro/Starlight site configuration + sidebar wiring to generated JSON. |
| docs/generate_api.py | Adds AST-based generator for API pages, module guides, sidebar, and fragments. |
| docs/README.md | Adds contributor instructions for building docs locally under Astro/Starlight. |
| docs/make.bat | Removes Sphinx Windows build helper. |
| docs/Makefile | Removes Sphinx Makefile. |
| .gitignore | Ignores Astro build cache and docs node_modules. |
| .github/workflows/docs.yaml | Updates CI workflow to install Node deps and build with Astro. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #207 +/- ##
=======================================
Coverage 96.23% 96.23%
=======================================
Files 22 22
Lines 3587 3587
=======================================
Hits 3452 3452
Misses 135 135 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|

This PR migrates the PLEXOSDB documentation from Sphinx to Astro with Starlight, following the layout used by the r2x environment packages.