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.2b2.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.2b2-py3-none-any.whl (176.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for better_semantic_release-1.2.2b2.tar.gz
Algorithm Hash digest
SHA256 6171ad5965214106bc9bb6dc5c9023022ec4ea74aa4e75e4fc1030407632beea
MD5 fc8d05174328b3942898cd51fff2409f
BLAKE2b-256 e99d47455e886b94d17c3e9d4469c6323daf96d4e3138e0c5cf9d5ae9cc24c0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for better_semantic_release-1.2.2b2-py3-none-any.whl
Algorithm Hash digest
SHA256 43a3b6d21b8293d4a2d83b92d0f11bb6c725c8f1c50149cdcd42efa815e1e69d
MD5 58127f6e7dce8a80f56bb55a59c64a59
BLAKE2b-256 c8298305e309a070f095eaae69ffb73c34ab379467b3a141a1f1855b33eccefe

See more details on using hashes here.

Provenance

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