Skip to content

ci: add pdoc3 docs workflow and simplify release-drafter#12

Merged
Aaron ("AJ") Steers (aaronsteers) merged 10 commits into
mainfrom
devin/1768761462-migrate-release-drafter-pdoc3
Jan 18, 2026
Merged

ci: add pdoc3 docs workflow and simplify release-drafter#12
Aaron ("AJ") Steers (aaronsteers) merged 10 commits into
mainfrom
devin/1768761462-migrate-release-drafter-pdoc3

Conversation

@aaronsteers

@aaronsteers Aaron ("AJ") Steers (aaronsteers) commented Jan 18, 2026

Copy link
Copy Markdown
Member

Summary

Migrates the pdoc3 documentation workflow from aaronsteers/awesome-python-template and significantly simplifies the release-drafter workflow.

Changes:

  • Add docs-generate.yml workflow for pdoc3 documentation with GitHub Pages deployment
  • Simplify release-drafter.yml from two jobs to a single unified job
  • Replace placeholder docs tasks in poe_tasks.toml with actual pdoc3 commands
  • Add pdoc3 to dev dependencies

Release-drafter simplifications:

  • Combined update_release_draft and upload_release_assets into single draft_release job
  • Removed setup-python step (uv manages its own Python installation)
  • Combined separate wheel/sdist upload steps into single step using dist/* glob
  • Updated action versions: checkout@v6, setup-uv@v7, semantic-pr-release-drafter@v0.3.1

Review & Testing Checklist for Human

  • Enable GitHub Pages in repository settings (Settings → Pages → Source: GitHub Actions) - the deploy job will fail without this
  • Verify release-drafter workflow - the single-job approach is a significant structural change; confirm the workflow runs correctly on merge to main
  • Verify uv manages Python correctly - the setup-python step was removed; ensure uv build works without explicit Python setup in CI
  • Test docs generation locally: uv sync --group dev && uv run poe docs-generate - verify it generates docs at docs/generated/fastmcp_extensions/
  • Verify the module path fastmcp_extensions matches the actual package structure in src/

Recommended test plan:

  1. Run uv run poe docs-generate locally and verify HTML docs are generated
  2. After merge, monitor the "Release Drafter" workflow on the next push to main - verify it creates/updates draft release and uploads assets
  3. Enable GitHub Pages and verify docs deploy to the pages URL

Notes

  • The release-drafter maintains the immutable release pattern (building and uploading assets during draft) but is now ~60 lines instead of ~95 lines
  • The dependency-groups section is separate from project.optional-dependencies per PEP 735

Link to Devin run: https://app.devin.ai/sessions/156b0420198e44ed8bc3817334eda185
Requested by: Aaron ("AJ") Steers (@aaronsteers)

- Update release-drafter.yml with newer action versions (checkout@v6, setup-python@v6)
- Update semantic-pr-release-drafter to v0.3.1
- Add docs-generate.yml workflow for pdoc3 documentation with GitHub Pages deployment
- Update poe_tasks.toml with pdoc3 docs tasks (docs-generate, docs-preview, get-generated-docs-dir)
- Add pdoc3 to dev dependencies in pyproject.toml

Co-Authored-By: AJ Steers <aj@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor
Original prompt from AJ Steers
@Devin - Migrate the new updated release drafter and pdoc3 docs implementations from aaronsteers/awesome-python-template into <https://github.com/airbytehq/fastmcp-extensions>
Thread URL: https://airbytehq-team.slack.com/archives/D089P0UPVT4/p1768761334857969

airbytehq/fastmcp-extensions

@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@github-actions

Copy link
Copy Markdown

🎉 Thanks for opening this pull request!

Your contribution is appreciated. Here are some helpful commands you can use:

Quick Commands

  • /autofix - Auto-format and fix linting issues (ruff format + ruff check --fix)
  • /lock - Update the uv.lock file with latest dependencies

Available Poe Tasks

You can run any of these tasks using the slash command: /poe <task-name>

Core Tasks

  • /poe test - Run all tests
  • /poe test-fast - Run tests with fast exit on first failure
  • /poe lint - Check code style and quality
  • /poe format - Format code with ruff
  • /poe deps - Check for unused and missing dependencies
  • /poe check - Run format check, linting, dependency check, and tests

Quick Fixes

  • /poe fix - Auto-format and fix linting issues
  • /poe clean - Clean up build artifacts and cache

Build & Install

  • /poe build - Build the package
  • /poe install - Install with development dependencies

Other Commands

  • /poe version - Show package version
  • /poe pre-commit - Run pre-commit style checks

The CI will automatically run tests when you push commits. Happy coding! 🚀

devin-ai-integration Bot and others added 4 commits January 18, 2026 18:44
- Remove redundant if condition (workflow only triggers on push to main)
- Combine wheel and sdist upload steps into single step using dist/* glob
- Remove verbose comments and echo statements

Co-Authored-By: AJ Steers <aj@airbyte.io>
- Move version resolution (remove 'v' prefix) to first job during draft creation
- Move 'Delete existing release assets' to be the first step of upload job
- Use version output from first job instead of extracting in second job
- Remaining 5 steps in upload job: checkout, install uv, setup python, build, upload

Co-Authored-By: AJ Steers <aj@airbyte.io>
uv can download and manage Python installations itself, so we don't need
the separate setup-python step. This simplifies the workflow to just 4 steps
in the upload job: delete assets, checkout, install uv, build, upload.

Co-Authored-By: AJ Steers <aj@airbyte.io>
Merge the two separate jobs into one unified job:
- Eliminates job dependency overhead
- All steps now run in sequence within one job
- 7 steps total: draft release, resolve version, delete assets, checkout, install uv, build, upload

Co-Authored-By: AJ Steers <aj@airbyte.io>
@devin-ai-integration devin-ai-integration Bot changed the title ci: add pdoc3 docs workflow and update release-drafter ci: add pdoc3 docs workflow and simplify release-drafter Jan 18, 2026
Co-Authored-By: AJ Steers <aj@airbyte.io>
Comment thread .github/workflows/release-drafter.yml Outdated
devin-ai-integration Bot and others added 2 commits January 18, 2026 18:59
Co-Authored-By: AJ Steers <aj@airbyte.io>
Remove separate 'Resolve version from tag' step by using bash parameter
expansion inline in the build step: UV_DYNAMIC_VERSIONING_BYPASS="${TAG_NAME#v}"

This reduces the workflow from 7 steps to 6 steps.

Co-Authored-By: AJ Steers <aj@airbyte.io>
Comment thread .github/workflows/release-drafter.yml
Comment thread .github/workflows/release-drafter.yml
devin-ai-integration Bot and others added 2 commits January 18, 2026 19:06
- Move 'env' before 'run' in Build package step
- Move 'Install uv' before 'Checkout Repo' step

Co-Authored-By: AJ Steers <aj@airbyte.io>
Change from dist/* to dist/*.{whl,tar.gz} to only upload wheel and
sdist files, excluding the .gitignore file that uv/hatchling creates.

Co-Authored-By: AJ Steers <aj@airbyte.io>
@aaronsteers Aaron ("AJ") Steers (aaronsteers) marked this pull request as ready for review January 18, 2026 19:10
@aaronsteers Aaron ("AJ") Steers (aaronsteers) merged commit bcbc0e4 into main Jan 18, 2026
14 checks passed
@aaronsteers Aaron ("AJ") Steers (aaronsteers) deleted the devin/1768761462-migrate-release-drafter-pdoc3 branch January 18, 2026 19:14
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