Skip to main content

Deployment Guide

This guide covers deployment of miu-mono packages to PyPI using Release-Please for automated versioning.

Release Process

1

Conventional Commits

All commits must follow Conventional Commits format:
2

Release-Please Creates PR

When commits are pushed to main:
  • GitHub Actions triggers Release-Please
  • Creates separate PR for each package with changes
  • Updates pyproject.toml version and CHANGELOG.md
3

Review & Merge

Review the generated PR, verify version bumps and CHANGELOG accuracy, then merge.
4

PyPI Publication

After merge, GitHub creates a release which triggers automatic PyPI publication via OIDC trusted publishing.

Commit Types

Configuration Files

.release-please-manifest.jsonTracks current version for each package:

GitHub Actions Workflows

Release-Please Workflow

File: .github/workflows/release-please.yml
  • Triggers: Push to main, manual dispatch
  • Jobs: Creates release PRs and GitHub releases
  • Outputs: Per-package release flags and tag names

Publish Workflow

File: .github/workflows/release.yml
  • Triggers: GitHub release event
  • Features: Per-package matrix builds, OIDC trusted publishing
  • No tokens needed - uses PyPI trusted publishing

PyPI Trusted Publishing

MIU uses OIDC trusted publishing - no API tokens stored in secrets:
  1. GitHub Actions requests OIDC token
  2. Exchanges token with PyPI for temporary credentials
  3. Publishes without storing secrets
All 5 packages are configured with trusted publishers on PyPI.

Manual Build

Tag Format

With Release-Please configuration:

Troubleshooting

Cause: No commits with conventional formatSolution: Ensure commits use feat:, fix:, or perf: prefixes
Cause: Commit type doesn’t match intentSolution: Use correct type - feat: for minor, fix: for patch, BREAKING CHANGE: for major
Cause: Trusted publisher not configured or version already publishedSolution:
  1. Verify trusted publisher in PyPI project settings
  2. Check workflow has id-token: write permission
  3. Verify version isn’t already published

Version Checklist