Skip to content

Publish MFIIDD API reference at /api#49

Merged
sbfnk-bot merged 1 commit into
mainfrom
feature/wire-documenter-deploy
Jul 2, 2026
Merged

Publish MFIIDD API reference at /api#49
sbfnk-bot merged 1 commit into
mainfrom
feature/wire-documenter-deploy

Conversation

@sbfnk-bot

@sbfnk-bot sbfnk-bot commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Wires up the Documenter skeleton (#44) so the built API reference actually
appears on the deployed site at sbfnk.github.io/mfiidd/api/.

  • Workflow: after quarto render, instantiate docs/, run docs/make.jl,
    and copy docs/build/ into _site/api/. The existing gh-pages deploy
    step then pushes the combined tree in one commit — no separate workflow
    and no clean/subpath conflict.
  • docs/make.jl: drop the deploydocs(...) block. The Pages action does
    the deploy, so Documenter's own push mechanism is redundant.

Verified locally: julia --project=docs docs/make.jl writes all 18
exported symbols' docstrings to docs/build/api/index.html.

This PR closes #47.

Summary by CodeRabbit

  • Documentation
    • Documentation builds now include generated API reference content in the published site.
    • The docs pipeline has been updated to prepare the documentation environment before building and packaging the site.
  • Chores
    • Documentation publishing is now handled by the main site deployment process rather than a separate documentation deployment step.

Co-authored-by: sbfnk <sebastian.funk@lshtm.ac.uk>
@sbfnk-bot sbfnk-bot requested a review from sbfnk July 1, 2026 06:12
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The build-and-deploy workflow was updated to instantiate the docs Julia project, run docs/make.jl to build the API reference, and copy the generated docs/build output into _site/api before site upload and deployment. Correspondingly, docs/make.jl no longer includes its own deploydocs configuration.

Changes

API Reference Build Integration

Layer / File(s) Summary
Build and copy API reference into site output
.github/workflows/build-and-deploy.yml, docs/make.jl
Workflow adds steps to instantiate the docs environment, run `docs/make.jl`, and copy `docs/build` into `_site/api`; the standalone `deploydocs(...)` call is removed from `docs/make.jl` since deployment is now handled via the site upload/deploy steps.

Sequence Diagram(s)

sequenceDiagram
  participant Workflow as build-and-deploy.yml
  participant Julia
  participant Site as _site directory
  participant Pages as GitHub Pages

  Workflow->>Julia: Instantiate docs project
  Workflow->>Julia: Run docs/make.jl
  Julia-->>Workflow: Generate docs/build (API reference)
  Workflow->>Site: Copy docs/build to _site/api
  Workflow->>Site: Upload website artefact
  Workflow->>Pages: Deploy site
Loading

Related issues: #47 (Wire qmd 'see source' callouts at the Documenter API site) — this PR adds the deploy step that publishes the API site, a prerequisite task from that issue.

Suggested labels: documentation, ci

Suggested reviewers: sbfnk

🐰 A hop, a build, a copy so neat,
API docs now join the site's own feet.
No more deploy calls off on their own,
Just one tidy workflow, fully grown.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The deploy step is added, but the four qmd files were not updated to point their 'see source' callouts at the rendered API pages. Update the qmd callouts in sessions/{pmcmc,particle_filters,mcmc,mcmc_diagnostics}.qmd to use /api/...# anchors, or clearly defer that work.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately states the main change: publishing the MFIIDD API reference under /api.
Out of Scope Changes check ✅ Passed The workflow and Documenter changes are directly related to publishing the API site and removing deploydocs from docs/make.jl.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/wire-documenter-deploy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sbfnk sbfnk marked this pull request as ready for review July 2, 2026 18:21

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/build-and-deploy.yml (1)

42-46: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

Consider caching the Julia depot for the docs environment.

Every run re-resolves and instantiates docs's dependencies from scratch. Using julia-actions/cache alongside julia-actions/setup-julia would speed up CI without behavioural change.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/build-and-deploy.yml around lines 42 - 46, The docs build
job currently reinstantiates the Julia docs environment on every run, slowing CI
unnecessarily. Update the workflow to cache the Julia depot for the docs
environment by adding julia-actions/cache alongside julia-actions/setup-julia in
the docs build job. Keep the existing docs/make.jl and Pkg.instantiate steps,
but ensure the cache is keyed to the docs project so dependency resolution is
reused across runs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/build-and-deploy.yml:
- Around line 42-50: The API reference build steps in the deploy workflow are
currently hard-failing the whole site deployment if `docs/make.jl` or the copy
step breaks. Update the `deploy` job around `Instantiate docs environment`,
`Build API reference`, and `Bundle API reference into site` so the API build is
isolated from the main Quarto site publish path, using `continue-on-error: true`
with a warning/fallback or moving the API build into a separate job/artifact.
Keep the `Upload website` and `Deploy to GitHub pages` steps able to run even
when the API reference generation fails.

---

Nitpick comments:
In @.github/workflows/build-and-deploy.yml:
- Around line 42-46: The docs build job currently reinstantiates the Julia docs
environment on every run, slowing CI unnecessarily. Update the workflow to cache
the Julia depot for the docs environment by adding julia-actions/cache alongside
julia-actions/setup-julia in the docs build job. Keep the existing docs/make.jl
and Pkg.instantiate steps, but ensure the cache is keyed to the docs project so
dependency resolution is reused across runs.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3eb7e4e8-536b-41db-9d3f-991575c12d4b

📥 Commits

Reviewing files that changed from the base of the PR and between 402083f and 3486871.

📒 Files selected for processing (2)
  • .github/workflows/build-and-deploy.yml
  • docs/make.jl
💤 Files with no reviewable changes (1)
  • docs/make.jl

Comment thread .github/workflows/build-and-deploy.yml
@sbfnk-bot sbfnk-bot merged commit b4ad266 into main Jul 2, 2026
2 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.

Wire qmd 'see source' callouts at the Documenter API site

2 participants