Skip to content

ci(docs[trigger]): publish from seo-packages branch#28

Closed
tony wants to merge 1 commit intomainfrom
seo-packages
Closed

ci(docs[trigger]): publish from seo-packages branch#28
tony wants to merge 1 commit intomainfrom
seo-packages

Conversation

@tony
Copy link
Copy Markdown
Member

@tony tony commented Apr 25, 2026

Summary

  • Add seo-packages to the docs workflow's on.push.branches list so the publish pipeline (uv sync → just html → S3 sync → CloudFront invalidate → Cloudflare purge) can be exercised end-to-end on this branch without merging to main first.
  • Refresh uv.lock's exclude-newer timestamp (artifact of adding then dropping a temporary [tool.uv.sources] local-path override for the in-progress gp-sphinx SEO migration; net pyproject change vs main is zero).
  • Net intent: validate the upstream gp-sphinx swap (sphinxext-opengraph → gp-opengraph, plus gp-sitemap) against libtmux-mcp's live docs pipeline before tagging a gp-sphinx release.

Test plan

  • Push to seo-packages triggers .github/workflows/docs.yml
  • dorny/paths-filter correctly gates publish to docs-relevant changes
  • uv sync resolves cleanly from PyPI (no local-path leakage)
  • just html builds without warnings
  • S3 sync, CloudFront invalidation, and Cloudflare cache purge all succeed
  • Published site reflects the build (or workflow no-ops when no docs changed)

why: gp-sphinx cut 0.0.1a10 covering the merged seo-packages PR
(sphinx-gp-opengraph + sphinx-gp-sitemap, register-aware
autodoc-docutils discovery, post-audit bug fixes). libtmux-mcp
should track the latest workspace alpha so its docs build picks
up the SEO emission and the corrected sitemap behaviour.

what:
- pyproject.toml: gp-sphinx, sphinx-autodoc-api-style,
  sphinx-autodoc-fastmcp pins move 0.0.1a9 → 0.0.1a10 in both the
  main and dev dependency groups.
- uv.lock refresh is deferred until 0.0.1a10 publishes to PyPI.
  The lock currently resolves the 0.0.1a9 line, which is what
  ``uv sync --locked`` will install until the next ``uv lock``
  follow-up.
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.91%. Comparing base (62a7030) to head (cdef2e7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #28      +/-   ##
==========================================
+ Coverage   86.67%   86.91%   +0.23%     
==========================================
  Files          38       38              
  Lines        1719     1719              
  Branches      204      204              
==========================================
+ Hits         1490     1494       +4     
+ Misses        169      166       -3     
+ Partials       60       59       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tony
Copy link
Copy Markdown
Member Author

tony commented Apr 26, 2026

Addressed via other commit

@tony tony closed this Apr 26, 2026
@tony tony deleted the seo-packages branch April 26, 2026 09:35
tony added a commit that referenced this pull request May 3, 2026
why: Verifies the in-flight `sphinx-vite-builder` PEP 517 backend
(git-pull/gp-sphinx#29) end-to-end as a real
downstream consumer. libtmux-mcp consumes `gp-sphinx` (and
transitively `gp-furo-theme`), so installing this branch's deps
exercises the new backend's `build_editable` hook against the actual
vite + pnpm toolchain in CI.

what:
- pyproject.toml:
  - Bump `gp-sphinx` (and matching helper packages) constraint from
    `==0.0.1a13` (the latest PyPI release) to `==0.0.1a15` (the
    workspace-internal version on the gp-sphinx PR branch).
  - Add `[tool.uv.sources]` entries pointing every gp-sphinx
    workspace package at the `sphinx-vite-builder` branch via git
    URL + subdirectory. uv resolves each package directly from the
    PR branch rather than from PyPI.
- uv.lock: locked against commit 1ab7554a on git-pull/gp-sphinx
  (the latest sphinx-vite-builder branch tip at write time).
- .github/workflows/docs.yml:
  - Trigger on push to `sphinx-vite-builder` so the deploy workflow
    runs on this branch (not just main). The S3/CloudFront publish
    steps still gate on the `LIBTMUX_MCP_DOCS_*` secrets being
    populated for the `docs` environment.
  - Add `pnpm/action-setup@v6` (pnpm 10) and `actions/setup-node@v6`
    (Node 22) before `uv sync`. Without pnpm on PATH, the new
    backend fast-fails with `PnpmMissingError` at editable-install
    time — these steps satisfy the toolchain requirement so the
    backend can run vite and populate the gitignored `static/` tree
    that gp-furo-theme advertises in `theme.conf`.

Verified locally:
- `uv lock` resolves the 11 gp-sphinx packages from the branch
- `uv sync --all-extras --dev` succeeds (vite runs during the
  gp-furo-theme editable install via the new backend)
- `just build-docs` produces a clean docs site

Once gp-sphinx#29 merges and v0.0.1a16 (or v0.0.1a15 re-publish)
ships to PyPI, this commit is reverted: the `[tool.uv.sources]`
entries go away, the version pin returns to PyPI, and the docs.yml
trigger drops the branch entry. Track via `git log --grep="DO NOT MERGE"`.

References:
- gp-sphinx PR #29: git-pull/gp-sphinx#29
- gp-sphinx issue #28 (architecture): git-pull/gp-sphinx#28
tony added a commit that referenced this pull request May 3, 2026
…nstall)

why: Verifies the **wheel-install path** of the new
sphinx-vite-builder backend (gp-sphinx PR #29, dev release tagged
v0.0.1a16.dev0 and published to PyPI). End users `pip install`
gp-furo-theme from PyPI; the wheel ships with vite-built `static/`
already baked in by the backend at release time, so the install
path never invokes the backend and never needs pnpm or Node.

This commit is the canonical proof of that property, demonstrated
end-to-end:

- Drop every `[tool.uv.sources]` git URL added in commit 91ad21a;
  uv resolves every gp-sphinx package straight from PyPI now.
- Bump version pins from `==0.0.1a15` to `==0.0.1a16.dev0` (matches
  the dev release).
- Drop pnpm/Node setup steps from `docs.yml` and `tests.yml`.
  Toolchain not needed for wheel-install path; their presence here
  would obscure the proof.
- Refresh `uv.lock` (`uv lock --refresh --prerelease=allow` since
  PEP 440 dev releases need explicit prerelease policy).

Verified locally with `PATH` stripped of pnpm/node/corepack:

  $ PATH=$(echo "$PATH" | tr : '\n' | grep -v -E "(pnpm|node|corepack)" | paste -sd:) which pnpm
  pnpm not found
  $ PATH=... uv sync --all-extras --dev    # succeeds
  $ PATH=... just build-docs                # succeeds; 60K furo-tw.css + 8K furo.js render

Once gp-sphinx v0.0.1a16 stable ships to PyPI (after dev releases
are verified), this commit is replaced by a normal pin bump.

References:
- gp-sphinx PR #29: git-pull/gp-sphinx#29
- gp-sphinx issue #28 (architecture): git-pull/gp-sphinx#28
- v0.0.1a16.dev0 wheel: https://pypi.org/project/gp-furo-theme/0.0.1a16.dev0/
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.

2 participants