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.1.0.tar.gz (646.3 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.1.0-py3-none-any.whl (165.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: better_semantic_release-1.1.0.tar.gz
  • Upload date:
  • Size: 646.3 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.1.0.tar.gz
Algorithm Hash digest
SHA256 321bfdd155b1ea207254d36f40865c9460a6aacf81c0d1d1e87bd9e3b9d59885
MD5 01f44de7fc6094941bbe9cd42e18b15d
BLAKE2b-256 234309195713d900ddf3d63fe5be6842dadf40e77539b189d04de443fc181368

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for better_semantic_release-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e34f053d47f8e3dbbc45e86e8eeec0481f0c6eeff6c12621fe12cfa4cbd8640
MD5 c2d3a75854140f2ef538b53b2a2f4872
BLAKE2b-256 ab4a1782768ce1fc0d2853eb1d4daf9d893be1456180ddc6fd32236115724392

See more details on using hashes here.

Provenance

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