tags:
- python
- semantic-release
- git
permalink: what-is-python-semantic-release
title: What is Semantic Release?
Python Semantic Release automatically versions code based on Git commit comments.
pip install python-semantic-release
Create a setup.py
file in the root of the project, if none exists.
from setuptools import setup
__version__ = "0.0.0"
setup(
name="your-app-or-package-name",
version=__version__,
)
Add this to your pyproject.toml
file. If the file does not exist, create it.
[tool.semantic_release]
version_variable = "setup.py:__version__"
Rather than store the version in a root-level setup.py
, you can store your version in the source files of your project. This way, your program can access its own version. For example, the UI can display its version.
app/my_module/__init__.py
__version__ = "0.0.0"
setup.py
from setuptools import setup
from app.my_module import __version__
setup(
name="my-name",
version=__version__,
)
pyproject.toml
[tool.semantic_release]
version_variable = "app/my_module/__init__.py:__version__"
Do a dry run.
semantic-release --noop version
Version normally.
semantic-release version
Create prerelease version.
semantic-release version --prerelease
Force major version, e.g., 1.0.0.
semantic-release version --major