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

Uploaded Python 3

File details

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

File metadata

  • Download URL: better_semantic_release-1.2.0.tar.gz
  • Upload date:
  • Size: 672.6 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.0.tar.gz
Algorithm Hash digest
SHA256 9bd943c94231a5ead890e1144ef44f1f3496e664266ab2710dffa991328a553f
MD5 9c252f8a0bcce7504761a8b1687cd3f5
BLAKE2b-256 f0b4977c124425d53f37120f11484cbfb71ce640e584ea1c7ebedc397a63f407

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for better_semantic_release-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2023b5c0ef7f155fdb536071a601160825ee2d826dab788856f6d4f7ed2f239e
MD5 67c7de32d3e082b725522f0689e791e2
BLAKE2b-256 e6d8da04cc6e08e7185f57b3c87fa29ee8c8621b17c7273428ed9c91776720e6

See more details on using hashes here.

Provenance

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