Skip to content

Discussion: Automatic Releases #1992

@tdruez

Description

@tdruez

Issuing a new release currently requires manual maintainer intervention, as documented in RELEASE.md.

The packages (PyPI, Docker images) and the GitHub release entry (including changelog) are already generated automatically—only the version bump and release trigger remain manual.

Proposal

Automate the release process based on commit history and heuristics, removing the need for manual intervention.

Candidate Tools

semantic-release

semantic-release uses the commit messages to determine the consumer impact of changes in the codebase. Following formalized conventions for commit messages, semantic-release automatically determines the next semantic version number, generates a changelog and publishes the release.
Tools such as commitizen or commitlint can be used to help contributors and enforce valid commit messages.

python-semantic-release

Python Semantic Release (PSR) provides an automated release mechanism determined by SemVer and Commit Message Conventions for your Git projects.

release-please

Rather than continuously releasing what's landed to your default branch, release-please maintains Release PRs.

commitizen
Python-native tool for enforcing commit conventions and automating version bumps.

Next Steps

Discuss and prototype an implementation for ScanCode.io. If successful, propagate to other repositories.

Commit message format

https://github.com/semantic-release/semantic-release?tab=readme-ov-file#commit-message-format
https://github.com/angular/angular/blob/main/contributing-docs/commit-message-guidelines.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions