Skip to content

docs(site): link the benchmark dashboard from the ExDoc sidebar - #27

Merged
HectorIFC merged 2 commits into
mainfrom
chore/link-to-benchmark
Aug 11, 2026
Merged

docs(site): link the benchmark dashboard from the ExDoc sidebar#27
HectorIFC merged 2 commits into
mainfrom
chore/link-to-benchmark

Conversation

@HectorIFC

@HectorIFC HectorIFC commented Aug 11, 2026

Copy link
Copy Markdown
Owner

The benchmark page ships at /benchmarks/ but was a standalone static bundle outside the ExDoc index, so the sidebar had no link to it.

  • mix.exs: add a Benchmarks group (right after Operations) with a URL extra pointing at benchmarks/ (an ExDoc URLNode). The trailing slash and absence of .html keep swup from intercepting the link, which would break on a page that has no swup root.
  • mix.exs: centralize staging in a docs alias, docs: [docs --warnings-as-errors, &copy_benchmarks/1]. It runs the strict build then copies benchmark/dashboard into doc/benchmarks via rm_rf + cp_r, so the copy is idempotent and local mix docs matches CI. The strict gate lives in the alias because Mix passes an alias CLI args only to its last command.
  • pages.yml: drop the now-redundant cp step and call plain mix docs.

📝 Description

🔖 Type of Change

  • 🐛 Patch - Bug fix (increments 0.0.X)
  • Minor - New feature (increments 0.X.0)
  • 💥 Major - Breaking change (increments X.0.0)

✅ Checklist

  • Code follows project style guide
  • Comments added to complex code
  • Documentation updated
  • Tests added/updated
  • All tests passing
  • Changes don't break existing functionality

🧪 How to Test

📸 Screenshots (if applicable)

🔗 Related Issues


Note about versioning:

  • Use label patch, minor or major on the PR
  • Or include [major], [minor] in the title
  • By default, it will be patch (0.0.1)
  • See the Versioning section in the README for details

Summary by CodeRabbit

  • Documentation
    • Improved documentation generation by treating warnings as errors.
    • Added a dedicated Benchmarks section with links to the benchmark dashboard.
    • Included the benchmark dashboard in the generated documentation.

The benchmark page ships at /benchmarks/ but was a standalone static bundle
outside the ExDoc index, so the sidebar had no link to it.

- mix.exs: add a Benchmarks group (right after Operations) with a URL extra
  pointing at benchmarks/ (an ExDoc URLNode). The trailing slash and absence of
  .html keep swup from intercepting the link, which would break on a page that
  has no swup root.
- mix.exs: centralize staging in a docs alias, docs: [docs --warnings-as-errors,
  &copy_benchmarks/1]. It runs the strict build then copies benchmark/dashboard
  into doc/benchmarks via rm_rf + cp_r, so the copy is idempotent and local mix
  docs matches CI. The strict gate lives in the alias because Mix passes an
  alias CLI args only to its last command.
- pages.yml: drop the now-redundant cp step and call plain mix docs.
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@HectorIFC, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 1 minute

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 4be0921c-d3b4-46b8-9a9a-cfbd1fbf9caf

📥 Commits

Reviewing files that changed from the base of the PR and between f6eb1ec and 6a74f5a.

📒 Files selected for processing (1)
  • mix.exs
📝 Walkthrough

Walkthrough

The documentation build now uses a Mix alias that enables strict ExDoc warnings, stages the benchmark dashboard, and registers it under a Benchmarks section. The Pages workflow invokes this alias with a single mix docs command.

Changes

Documentation build

Layer / File(s) Summary
Documentation alias and benchmark navigation
mix.exs
The project defines a docs alias that runs ExDoc with warnings treated as errors, copies the benchmark dashboard into doc/benchmarks, and adds the dashboard to ExDoc extras under Benchmarks.
Pages workflow integration
.github/workflows/pages.yml
The workflow runs mix docs and delegates strict validation and benchmark staging to the Mix alias.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: documentation, ci/cd

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the primary change: linking the benchmark dashboard from the ExDoc sidebar.
Description check ✅ Passed The description explains the implementation and change type, but the testing and checklist sections remain incomplete.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

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.

@HectorIFC HectorIFC moved this from Backlog to In progress in Malachi Project Aug 11, 2026
@coderabbitai coderabbitai Bot added ci/cd documentation Improvements or additions to documentation labels Aug 11, 2026

@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

🤖 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 `@mix.exs`:
- Around line 52-55: Update the Mix alias comment to accurately state that the
alias overrides mix docs, causing Mix to forward CLI arguments to the original
docs task before the copy function runs. Remove the incorrect claim that
arguments would reach the copy function instead.
🪄 Autofix

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 Plus

Run ID: 9443ff66-f4c6-4c92-a028-5b57750f4bf8

📥 Commits

Reviewing files that changed from the base of the PR and between f35111e and f6eb1ec.

📒 Files selected for processing (2)
  • .github/workflows/pages.yml
  • mix.exs

Comment thread mix.exs Outdated
The comment claimed Mix passes an alias CLI args only to the last command, so
they would reach the copy function instead of docs. That is wrong for a
self-named alias: in Mix.Task.run_alias, the `[^original_task | args]` clause
runs the underlying docs task with `args ++ alias_args`, so any CLI args are
forwarded to docs and the copy function runs afterward with none.

The code is unchanged and correct: `--warnings-as-errors` is baked into the
alias so a plain `mix docs` is strict everywhere (local and CI). Only the
justification in the comment is fixed.
@HectorIFC
HectorIFC marked this pull request as ready for review August 11, 2026 10:12
@github-actions

Copy link
Copy Markdown
Contributor

✅ PR Validation Summary

Check Status
PR Validation ✅ Passed
File Analysis ✅ Completed

Next Steps

  • ✅ PR validation passed
  • ⏳ Waiting for CI tests to complete
  • 👀 Ready for review

This comment was automatically generated by the PR validation workflow

@HectorIFC
HectorIFC merged commit 6742535 into main Aug 11, 2026
31 checks passed
@HectorIFC
HectorIFC deleted the chore/link-to-benchmark branch August 11, 2026 10:18
@github-project-automation github-project-automation Bot moved this from In progress to Done in Malachi Project Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd dependencies documentation Improvements or additions to documentation

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant