Skip to main content

Drop-in python-semantic-release fork with built-in release-safety guards (orphan-tag + registry-collision).

Project description

better-semantic-release

A drop-in fork of python-semantic-release with built-in release-safety guards.


better-semantic-release is a drop-in fork of python-semantic-release (MIT licensed). It keeps the same [tool.semantic_release] configuration schema, the same semantic-release CLI, and the same GitHub Action interface – switching over only requires pointing the uses: line at the fork:

uses: n24q02m/better-semantic-release@v<major>

On top of that, the fork adds release-safety guards that run automatically before any commit, tag, or push is made. Guards can be opted out of per-repository under the [tool.semantic_release.bsr] table in pyproject.toml.

How it differs from upstream

Behavior

Upstream (python-semantic-release)

better-semantic-release

Orphaned release-tag detection (a rebase or force-push silently freezes releases on a tag nobody notices)

None

Built-in, fails loud

Registry-collision detection (re-publishing a version that already exists on the target registry)

None

Built-in, fails closed

Monorepo commit path filtering (commits outside a component’s configured path(s) count toward its version bump / changelog)

None

Opt-in, off by default (drop-in)

Config / CLI / GitHub Action interface

Identical (drop-in)

Monorepo path filtering

Upstream’s directory: input only selects where config (pyproject.toml, tag_format, …) is read from – it does not filter which commits are analyzed, so in a monorepo a commit touching an unrelated component still bumps this component’s version and shows up in its changelog. This is opt-in and off by default (drop-in): enable it under [tool.semantic_release.bsr].

[tool.semantic_release.bsr]
path_filter = true
paths = ["apps/api", "libs/shared"]
  • path_filter (default false) – master switch. When false the fork behaves identically to upstream: every commit since the last release counts, regardless of which paths it touched.

  • paths (default [], repository-root-relative) – one or more path prefixes; a commit only counts toward this component if it changed a file under one of them. Multiple entries are OR’d together, which supports a component that also depends on shared code (e.g. ["apps/api", "libs/shared"]).

  • When path_filter is true and paths is left empty, it defaults to the run directory (the GitHub Action’s directory: input) made relative to the repository root.


Python Semantic Release

Automating Releases via SemVer and Commit Message Conventions


The official documentation for Python Semantic Release can be found at python-semantic-release.readthedocs.io.

GitHub Action

When using the Python Semantic Release GitHub Action, it executes the command semantic-release version using python-semantic-release.

The usage information and examples for this GitHub Action is available under the GitHub Actions section of python-semantic-release.readthedocs.io.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

better_semantic_release-1.2.2b1.tar.gz (673.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

better_semantic_release-1.2.2b1-py3-none-any.whl (176.8 kB view details)

Uploaded Python 3

File details

Details for the file better_semantic_release-1.2.2b1.tar.gz.

File metadata

File hashes

Hashes for better_semantic_release-1.2.2b1.tar.gz
Algorithm Hash digest
SHA256 2432b17404adbf9e11b7332f0286a8917c5af67a9828fdb3706d5b65fab5d677
MD5 bde88e504715b92b2502b1552763f2de
BLAKE2b-256 598f00032d35446d7e8ded2545512031bbc1b43caf574328256cd5b413f9630d

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_semantic_release-1.2.2b1.tar.gz:

Publisher: cd.yml on n24q02m/better-semantic-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file better_semantic_release-1.2.2b1-py3-none-any.whl.

File metadata

File hashes

Hashes for better_semantic_release-1.2.2b1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7e83173fdc4cd0621c0290a47a1b252219daa9d7ae52d34d7d1ff25937bb042
MD5 06420603afca6c8487c00fd7f28db16c
BLAKE2b-256 84ab3477120303a12679f33448b0a7afb9a86dda8b6cd7dd40805550533082d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_semantic_release-1.2.2b1-py3-none-any.whl:

Publisher: cd.yml on n24q02m/better-semantic-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page