Skip to content

add semantic release logic - #1

Merged
afgarcia86 merged 1 commit into
mainfrom
semantic_release
Jul 3, 2026
Merged

add semantic release logic#1
afgarcia86 merged 1 commit into
mainfrom
semantic_release

Conversation

@Lash-L

@Lash-L Lash-L commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

You'll need to connect pypi, but this is what i do on python-roborock and it works great! let me know your thoughts

Summary by CodeRabbit

  • Infrastructure
    • Implemented automated semantic-release workflow for pull requests to test and validate release behavior before production
    • Added production release job triggered on main branch pushes, automatically creating releases, publishing to PyPI, and creating GitHub releases when appropriate
    • Enhanced commit message validation rules to enforce standardized formats for better release tracking and automation

@Lash-L
Lash-L requested a review from afgarcia86 June 20, 2026 19:04
@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Free

Run ID: 162a0259-cc72-47ac-acf4-6940cb845eff

📥 Commits

Reviewing files that changed from the base of the PR and between 3f2b520 and 5545d24.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • commitlint.config.mjs
  • pyproject.toml

📝 Walkthrough

Walkthrough

Adds semantic-release automation to the CI workflow with two new jobs: test-release (PR events, noop/dry-run mode with a temporary branch) and release (main pushes, full release with PyPI and GitHub publishing). Updates pyproject.toml semantic-release config to target harbor-python and adds commit parser options. Disables two commitlint header rules.

Changes

Semantic Release Automation

Layer / File(s) Summary
Semantic release and commitlint config
pyproject.toml, commitlint.config.mjs
pyproject.toml changes the build/lock target to harbor-python and adds [tool.semantic_release.commit_parser_options] with allowed_tags and major_tags (treating refactor as major). commitlint.config.mjs disables header-max-length and header-full-stop rules for AI-generated commits.
CI test-release and release jobs
.github/workflows/ci.yml
Adds test-release job (PR events) that creates a temporary branch from the PR head SHA, sets git identity, and runs python-semantic-release in noop and dry-run modes. Adds release job (main pushes) with release-scoped permissions and release environment that runs semantic-release, then conditionally publishes to PyPI and creates GitHub releases when released == 'true'.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 Hop hop, the release train is here,
Semantic versions whispered in each ear,
A temp branch spun, a dry run made,
Then PyPI and GitHub get the parade!
refactor bumps major — quite the feat,
The rabbit ships with tidy, clean commits neat. 🎉


Note

🎁 Summarized by CodeRabbit Free

Your organization has reached its limit of developer seats under the Pro Plan. For new users, CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please add seats to your subscription by visiting https://app.coderabbit.ai/login.If you believe this is a mistake and have available seats, please assign one to the pull request author through the subscription management page using the link above.

Comment @coderabbitai help to get the list of available commands and usage tips.

@afgarcia86
afgarcia86 merged commit 1eb3434 into main Jul 3, 2026
13 of 15 checks passed
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