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.1.tar.gz (672.7 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.1-py3-none-any.whl (176.6 kB view details)

Uploaded Python 3

File details

Details for the file better_semantic_release-1.2.1.tar.gz.

File metadata

  • Download URL: better_semantic_release-1.2.1.tar.gz
  • Upload date:
  • Size: 672.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for better_semantic_release-1.2.1.tar.gz
Algorithm Hash digest
SHA256 43187655263b91036dc5dffe3f85d8177df72a3efeb506b56ed97de42f53bd12
MD5 0dcdf2d42a75bec149ec0539023eac88
BLAKE2b-256 632a78027aae5ff579b843d3b59e008f7a3c979ffb95a29e27988a989fe47b1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_semantic_release-1.2.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for better_semantic_release-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c6736d7a083bcd39cbb3a4e4a3f76c6973ff2b05dd4b57fa67dbdb3e93f4bd8
MD5 ac05584c82c456a77e71b2e91a77b945
BLAKE2b-256 b39355c0b0a2825a15cc883d5fe4410ad8a50e955e2a4533e03fb81621def659

See more details on using hashes here.

Provenance

The following attestation bundles were made for better_semantic_release-1.2.1-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