Skip to content

docs(ci): clarify why pypi-publish.yml and release.yml both build on tags - #38

Merged
nazarli-shabnam merged 2 commits into
mainfrom
docs/clarify-release-workflows
Jul 25, 2026
Merged

docs(ci): clarify why pypi-publish.yml and release.yml both build on tags#38
nazarli-shabnam merged 2 commits into
mainfrom
docs/clarify-release-workflows

Conversation

@nazarli-shabnam

Copy link
Copy Markdown
Owner

Summary

  • pypi-publish.yml and release.yml both trigger on the same v* tag and both run python -m build, which reads as a duplicated publish pipeline on first glance.
  • They actually serve different purposes: pypi-publish.yml publishes the distribution to PyPI via trusted publishing, release.yml creates the GitHub Release with generated notes and uploads the built distributions as release assets.
  • Added a short comment to the top of each workflow explaining the split, so the duplication reads as intentional rather than leftover.
  • Left the two independent python -m build runs as-is (not consolidated into a shared artifact) — that would be a more invasive change with its own risk/benefit tradeoff; happy to follow up separately if wanted.

Test plan

  • YAML validated with yaml.safe_load for both files
  • pytest -q / ruff check . / ruff format --check . (unaffected, non-code change)

Closes #22

(Re-opened as a new PR: the original PR #30 was auto-closed by GitHub when main's history was rewritten to correct a contributor's commit attribution — this branch is unchanged.)

…tags

Both workflows trigger on the same v* tag and both run python -m
build, which reads as duplicated publish pipelines. They actually do
different things: one publishes to PyPI, the other creates the
GitHub Release with generated notes and uploaded assets. Add a
comment to each explaining the split so the duplication reads as
intentional.

Closes #22
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Warning

Review limit reached

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

Next review available in: 9 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: de87337c-d2b9-4f44-98e7-e379562eeb0d

📥 Commits

Reviewing files that changed from the base of the PR and between 11a379a and 9508b59.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • .github/workflows/pypi-publish.yml
  • .github/workflows/release.yml
  • pyproject.toml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/clarify-release-workflows

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.

The lint job's `pip install ruff` had no version pin, decoupled from
pyproject.toml's own ruff>=0.8.0. A newer ruff release enables new
default-on lint rules, breaking CI on pre-existing code unrelated to
this change. Pin to the last known-good version in both places.
@nazarli-shabnam nazarli-shabnam self-assigned this Jul 25, 2026
@nazarli-shabnam nazarli-shabnam added the documentation Improvements or additions to documentation label Jul 25, 2026
@nazarli-shabnam
nazarli-shabnam merged commit 427d431 into main Jul 25, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Clarify why two separate v* tag workflows both build the package

1 participant