Skip to content

Fix documentation generation and add a GitHub Actions HTML preview - #490

Open
jmh530 wants to merge 4 commits into
libmir:masterfrom
jmh530:docs-artifact-workflow
Open

jmh530 wants to merge 4 commits into
libmir:masterfrom
jmh530:docs-artifact-workflow

Conversation

@jmh530

@jmh530 jmh530 commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Make documentation builds available through GitHub Actions, with downloadable HTML previews and diagnostics that do not require CircleCI access.

Changes

  • Fix stale Ddoc parameter descriptions and add four omitted modules to the Meson source list.
  • Add an artifact-only documentation workflow for pull requests, pushes to master, and manual runs.
  • Reuse the existing Ddoc templates with LDC 1.36.0, pinned Python dependencies, and pinned template and mir-core revisions.
  • Preserve build inputs, logs, and a version manifest for local reproduction.
  • Restore the documentation extractor’s executable permission, previously supplied by the legacy Dockerfile.
  • Correct symbol, module, and cross-project documentation links.

Validation

All 26 GitHub checks pass on d4afc8e, including the documentation workflow and 24 compiler jobs.

Local validation generated 84 HTML pages, passed the expanded Meson D and C++ test suites, and passed the source-snapshot regression check. After the cross-reference fixes, the HTML rebuild and corrected internal-anchor checks passed. Missing local targets decreased from 19 to three shared-template targets.

Existing CircleCI failure

CircleCI still fails at mir/rc/ptr.d(279) with a reference-escape error while instantiating castTo!(S, C). This failure predates this PR and was reproduced with the legacy LDC 1.28.1 environment; the focused reproduction succeeds with LDC 1.36.0.

Scope and follow-up work

This workflow builds and uploads HTML without publishing a website. It does not run the legacy template’s extracted documentation examples, which currently fail to compile in nine modules.

Shared-template menu/search fallbacks, the Ddoc footer link, search-domain settings, and hosting remain follow-up work. Successful HTML generation does not certify external links or the online example runner.

AI-Assisted-By: Codex (GPT-6 Astra Medium)

Remove stale parameter documentation from constant interpolation and
string-map declarations, and document the polynomial coefficient type
on the declaration where it is defined. These corrections allow HTML
generation with documentation warnings treated as errors.

Add mir.bignum.internal.parse, mir.internal.ldc_simd, mir.stdio, and
mir.string to the Meson source list so the build includes these modules.

AI-Assisted-By: Codex (GPT-6 Astra Medium)
Build documentation for pull requests, master pushes, and manual runs
without requiring CircleCI access. Upload the HTML preview and build
diagnostics as artifacts for review.

Add a Python build driver that reuses the existing Ddoc templates with
LDC 1.36.0, pinned Python dependencies, and pinned template and mir-core
revisions. Preserve build inputs, logs, and a version manifest.

Copy tracked working-tree edits into an isolated source snapshot for
local reproduction. Cover additions, modifications, and deletions with
a regression check that also runs in the workflow.

Select HTML targets only. Nine modules still have extracted-example
compilation failures, and legacy links need repair before deployment.

AI-Assisted-By: Codex (GPT-6 Astra Medium)
Restore the executable permission supplied by the legacy Dockerfile
after cloning the pinned documentation assets. Without it, Meson
cannot find dtools_tests_extractor on a native Linux filesystem.

AI-Assisted-By: Codex (GPT-6 Astra Medium)
Use symbol references for bignum views, serde attributes, and iteration
functions. Update moved graph and sorting references, and render
namespaces without overview pages as plain text.

Route Mir-core references through the existing cross-project macros
and Phobos references to the official documentation.

AI-Assisted-By: Codex (GPT-6 Astra Medium)
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