Adding upstream version 4.6.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f3ad83a1a5
commit
a7fbe822ec
278 changed files with 30423 additions and 0 deletions
636
docs/commands/bump.md
Normal file
636
docs/commands/bump.md
Normal file
|
@ -0,0 +1,636 @@
|
|||

|
||||
|
||||
## About
|
||||
|
||||
`cz bump` **automatically** increases the version, based on the commits.
|
||||
|
||||
The commits should follow the rules established by the committer in order to be parsed correctly.
|
||||
|
||||
**prerelease** versions are supported (alpha, beta, release candidate).
|
||||
|
||||
The version can also be **manually** bumped.
|
||||
|
||||
The version format follows [PEP 0440][pep440] and [semantic versioning][semver].
|
||||
|
||||
This means `MAJOR.MINOR.PATCH`
|
||||
|
||||
| Increment | Description | Conventional commit map |
|
||||
| --------- | --------------------------- | ----------------------- |
|
||||
| `MAJOR` | Breaking changes introduced | `BREAKING CHANGE` |
|
||||
| `MINOR` | New features | `feat` |
|
||||
| `PATCH` | Fixes | `fix` + everything else |
|
||||
|
||||
[PEP 0440][pep440] is the default, you can switch by using the setting `version_scheme` or the cli:
|
||||
|
||||
```sh
|
||||
cz bump --version-scheme semver
|
||||
```
|
||||
|
||||
Some examples of pep440:
|
||||
|
||||
```bash
|
||||
0.9.0
|
||||
0.9.1
|
||||
0.9.2
|
||||
0.9.10
|
||||
0.9.11
|
||||
1.0.0a0 # alpha
|
||||
1.0.0a1
|
||||
1.0.0b0 # beta
|
||||
1.0.0rc0 # release candidate
|
||||
1.0.0rc1
|
||||
1.0.0
|
||||
1.0.1
|
||||
1.1.0
|
||||
2.0.0
|
||||
2.0.1a
|
||||
```
|
||||
|
||||
`post` releases are not supported yet.
|
||||
|
||||
## Usage
|
||||
|
||||

|
||||
|
||||
### `--files-only`
|
||||
|
||||
Bumps the version in the files defined in `version_files` without creating a commit and tag on the git repository,
|
||||
|
||||
```bash
|
||||
cz bump --files-only
|
||||
```
|
||||
|
||||
### `--changelog`
|
||||
|
||||
Generate a **changelog** along with the new version and tag when bumping.
|
||||
|
||||
```bash
|
||||
cz bump --changelog
|
||||
```
|
||||
|
||||
### `--prerelease`
|
||||
|
||||
The bump is a pre-release bump, meaning that in addition to a possible version bump the new version receives a
|
||||
pre-release segment compatible with the bump’s version scheme, where the segment consist of a _phase_ and a
|
||||
non-negative number. Supported options for `--prerelease` are the following phase names `alpha`, `beta`, or
|
||||
`rc` (release candidate). For more details, refer to the
|
||||
[Python Packaging User Guide](https://packaging.python.org/en/latest/specifications/version-specifiers/#pre-releases).
|
||||
|
||||
Note that as per [semantic versioning spec](https://semver.org/#spec-item-9)
|
||||
|
||||
> Pre-release versions have a lower precedence than the associated normal version. A pre-release version
|
||||
> indicates that the version is unstable and might not satisfy the intended compatibility requirements
|
||||
> as denoted by its associated normal version.
|
||||
|
||||
For example, the following versions (using the [PEP 440](https://peps.python.org/pep-0440/) scheme) are ordered
|
||||
by their precedence and showcase how a release might flow through a development cycle:
|
||||
|
||||
- `1.0.0` is the current published version
|
||||
- `1.0.1a0` after committing a `fix:` for pre-release
|
||||
- `1.1.0a1` after committing an additional `feat:` for pre-release
|
||||
- `1.1.0b0` after bumping a beta release
|
||||
- `1.1.0rc0` after bumping the release candidate
|
||||
- `1.1.0` next feature release
|
||||
|
||||
### `--increment-mode`
|
||||
|
||||
By default, `--increment-mode` is set to `linear`, which ensures that bumping pre-releases _maintains linearity_:
|
||||
bumping of a pre-release with lower precedence than the current pre-release phase maintains the current phase of
|
||||
higher precedence. For example, if the current version is `1.0.0b1` then bumping with `--prerelease alpha` will
|
||||
continue to bump the “beta” phase.
|
||||
|
||||
Setting `--increment-mode` to `exact` instructs `cz bump` to instead apply the
|
||||
exact changes that have been specified with `--increment` or determined from the commit log. For example,
|
||||
`--prerelease beta` will always result in a `b` tag, and `--increment PATCH` will always increase the patch component.
|
||||
|
||||
Below are some examples that illustrate the difference in behavior:
|
||||
|
||||
| Increment | Pre-release | Start Version | `--increment-mode=linear` | `--increment-mode=exact` |
|
||||
|-----------|-------------|---------------|---------------------------|--------------------------|
|
||||
| `MAJOR` | | `2.0.0b0` | `2.0.0` | `3.0.0` |
|
||||
| `MINOR` | | `2.0.0b0` | `2.0.0` | `2.1.0` |
|
||||
| `PATCH` | | `2.0.0b0` | `2.0.0` | `2.0.1` |
|
||||
| `MAJOR` | `alpha` | `2.0.0b0` | `3.0.0a0` | `3.0.0a0` |
|
||||
| `MINOR` | `alpha` | `2.0.0b0` | `2.0.0b1` | `2.1.0a0` |
|
||||
| `PATCH` | `alpha` | `2.0.0b0` | `2.0.0b1` | `2.0.1a0` |
|
||||
|
||||
### `--check-consistency`
|
||||
|
||||
Check whether the versions defined in `version_files` and the version in commitizen
|
||||
configuration are consistent before bumping version.
|
||||
|
||||
```bash
|
||||
cz bump --check-consistency
|
||||
```
|
||||
|
||||
For example, if we have `pyproject.toml`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
version = "1.21.0"
|
||||
version_files = [
|
||||
"src/__version__.py",
|
||||
"setup.py",
|
||||
]
|
||||
```
|
||||
|
||||
`src/__version__.py`,
|
||||
|
||||
```python
|
||||
__version__ = "1.21.0"
|
||||
```
|
||||
|
||||
and `setup.py`.
|
||||
|
||||
```python
|
||||
from setuptools import setup
|
||||
|
||||
setup(..., version="1.0.5", ...)
|
||||
```
|
||||
|
||||
If `--check-consistency` is used, commitizen will check whether the current version in `pyproject.toml`
|
||||
exists in all version_files and find out it does not exist in `setup.py` and fails.
|
||||
However, it will still update `pyproject.toml` and `src/__version__.py`.
|
||||
|
||||
To fix it, you'll first `git checkout .` to reset to the status before trying to bump and update
|
||||
the version in `setup.py` to `1.21.0`
|
||||
|
||||
### `--local-version`
|
||||
|
||||
Bump the local portion of the version.
|
||||
|
||||
```bash
|
||||
cz bump --local-version
|
||||
```
|
||||
|
||||
For example, if we have `pyproject.toml`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
version = "5.3.5+0.1.0"
|
||||
```
|
||||
|
||||
If `--local-version` is used, it will bump only the local version `0.1.0` and keep the public version `5.3.5` intact, bumping to the version `5.3.5+0.2.0`.
|
||||
|
||||
### `--annotated-tag`
|
||||
|
||||
If `--annotated-tag` is used, commitizen will create annotated tags. Also available via configuration, in `pyproject.toml` or `.cz.toml`.
|
||||
|
||||
### `--annotated-tag-message`
|
||||
|
||||
If `--annotated-tag-message` is used, commitizen will create annotated tags with the given message.
|
||||
|
||||
### `--changelog-to-stdout`
|
||||
|
||||
If `--changelog-to-stdout` is used, the incremental changelog generated by the bump
|
||||
will be sent to the stdout, and any other message generated by the bump will be
|
||||
sent to stderr.
|
||||
|
||||
If `--changelog` is not used with this command, it is still smart enough to
|
||||
understand that the user wants to create a changelog. It is recommended to be
|
||||
explicit and use `--changelog` (or the setting `update_changelog_on_bump`).
|
||||
|
||||
This command is useful to "transport" the newly created changelog.
|
||||
It can be sent to an auditing system, or to create a Github Release.
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
cz bump --changelog --changelog-to-stdout > body.md
|
||||
```
|
||||
|
||||
### `--git-output-to-stderr`
|
||||
|
||||
If `--git-output-to-stderr` is used, git commands output is redirected to stderr.
|
||||
|
||||
This command is useful when used with `--changelog-to-stdout` and piping the output to a file,
|
||||
and you don't want the `git commit` output polluting the stdout.
|
||||
|
||||
### `--retry`
|
||||
|
||||
If you use tools like [pre-commit](https://pre-commit.com/), add this flag.
|
||||
It will retry the commit if it fails the 1st time.
|
||||
|
||||
Useful to combine with code formatters, like [Prettier](https://prettier.io/).
|
||||
|
||||
### `--major-version-zero`
|
||||
|
||||
A project in its initial development should have a major version zero, and even breaking changes
|
||||
should not bump that major version from zero. This command ensures that behavior.
|
||||
|
||||
If `--major-version-zero` is used for projects that have a version number greater than zero it fails.
|
||||
If used together with a manual version the command also fails.
|
||||
|
||||
We recommend setting `major_version_zero = true` in your configuration file while a project
|
||||
is in its initial development. Remove that configuration using a breaking-change commit to bump
|
||||
your project’s major version to `v1.0.0` once your project has reached maturity.
|
||||
|
||||
### `--version-scheme`
|
||||
|
||||
Choose the version format, options: `pep440`, `semver`.
|
||||
|
||||
Default: `pep440`
|
||||
|
||||
Recommended for python: `pep440`
|
||||
|
||||
Recommended for other: `semver`
|
||||
|
||||
You can also set this in the [configuration](#version_scheme) with `version_scheme = "semver"`.
|
||||
|
||||
[pep440][pep440] and [semver][semver] are quite similar, their difference lies in
|
||||
how the prereleases look.
|
||||
|
||||
| schemes | pep440 | semver |
|
||||
| -------------- | -------------- | --------------- |
|
||||
| non-prerelease | `0.1.0` | `0.1.0` |
|
||||
| prerelease | `0.3.1a0` | `0.3.1-a0` |
|
||||
| devrelease | `0.1.1.dev1` | `0.1.1-dev1` |
|
||||
| dev and pre | `1.0.0a3.dev1` | `1.0.0-a3-dev1` |
|
||||
|
||||
Can I transition from one to the other?
|
||||
|
||||
Yes, you shouldn't have any issues.
|
||||
|
||||
### `--template`
|
||||
|
||||
Provides your own changelog jinja template.
|
||||
See [the template customization section](../customization.md#customizing-the-changelog-template)
|
||||
|
||||
### `--extra`
|
||||
|
||||
Provides your own changelog extra variables by using the `extras` settings or the `--extra/-e` parameter.
|
||||
|
||||
```bash
|
||||
cz bump --changelog --extra key=value -e short="quoted value"
|
||||
```
|
||||
|
||||
See [the template customization section](../customization.md#customizing-the-changelog-template).
|
||||
|
||||
### `--build-metadata`
|
||||
|
||||
Provides a way to specify additional metadata in the version string. This parameter is not compatible with `--local-version` as it uses the same part of the version string.
|
||||
|
||||
```bash
|
||||
cz bump --build-metadata yourmetadata
|
||||
```
|
||||
|
||||
Will create a version like `1.1.2+yourmetadata`.
|
||||
This can be useful for multiple things
|
||||
- Git hash in version
|
||||
- Labeling the version with additional metadata.
|
||||
|
||||
Note that Commitizen ignores everything after `+` when it bumps the version. It is therefore safe to write different build-metadata between versions.
|
||||
|
||||
You should normally not use this functionality, but if you decide to do, keep in mind that
|
||||
- Version `1.2.3+a`, and `1.2.3+b` are the same version! Tools should not use the string after `+` for version calculation. This is probably not a guarantee (example in helm) even tho it is in the spec.
|
||||
- It might be problematic having the metadata in place when doing upgrades depending on what tool you use.
|
||||
|
||||
### `--get-next`
|
||||
|
||||
Provides a way to determine the next version and write it to stdout. This parameter is not compatible with `--changelog`
|
||||
and `manual version`.
|
||||
|
||||
```bash
|
||||
cz bump --get-next
|
||||
```
|
||||
|
||||
Will output the next version, e.g., `1.2.3`. This can be useful for determining the next version based on CI for non
|
||||
production environments/builds.
|
||||
|
||||
This behavior differs from the `--dry-run` flag. The `--dry-run` flag provides a more detailed output and can also show
|
||||
the changes as they would appear in the changelog file.
|
||||
|
||||
The following output is the result of `cz bump --dry-run`:
|
||||
|
||||
```
|
||||
bump: version 3.28.0 → 3.29.0
|
||||
tag to create: v3.29.0
|
||||
increment detected: MINOR
|
||||
```
|
||||
|
||||
The following output is the result of `cz bump --get-next`:
|
||||
|
||||
```
|
||||
3.29.0
|
||||
```
|
||||
|
||||
The `--get-next` flag will raise a `NoneIncrementExit` if the found commits are not eligible for a version bump.
|
||||
|
||||
For information on how to suppress this exit, see [avoid raising errors](#avoid-raising-errors).
|
||||
|
||||
### `--allow-no-commit`
|
||||
|
||||
Allow the project version to be bumped even when there's no eligible version. This is most useful when used with `--increment {MAJOR,MINOR,PATCH}` or `[MANUL_VERSION]`
|
||||
|
||||
```sh
|
||||
# bump a minor version even when there's only bug fixes, documentation changes or even no commits
|
||||
cz bump --incremental MINOR --allow-no-commit
|
||||
|
||||
# bump version to 2.0.0 even when there's no breaking changes changes or even no commits
|
||||
cz bump --allow-no-commit 2.0.0
|
||||
```
|
||||
|
||||
## Avoid raising errors
|
||||
|
||||
Some situations from commitizen raise an exit code different than 0.
|
||||
If the error code is different than 0, any CI or script running commitizen might be interrupted.
|
||||
|
||||
If you have a special use case, where you don't want to raise one of this error codes, you can
|
||||
tell commitizen to not raise them.
|
||||
|
||||
### Recommended use case
|
||||
|
||||
At the moment, we've identified that the most common error code to skip is
|
||||
|
||||
| Error name | Exit code |
|
||||
| ----------------- | --------- |
|
||||
| NoneIncrementExit | 21 |
|
||||
|
||||
There are some situations where you don't want to get an error code when some
|
||||
commits do not match your rules, you just want those commits to be skipped.
|
||||
|
||||
```sh
|
||||
cz -nr 21 bump
|
||||
```
|
||||
|
||||
### Easy way
|
||||
|
||||
Check which error code was raised by commitizen by running in the terminal
|
||||
|
||||
```sh
|
||||
echo $?
|
||||
```
|
||||
|
||||
The output should be an integer like this
|
||||
|
||||
```sh
|
||||
3
|
||||
```
|
||||
|
||||
And then you can tell commitizen to ignore it:
|
||||
|
||||
```sh
|
||||
cz --no-raise 3
|
||||
```
|
||||
|
||||
You can tell commitizen to skip more than one if needed:
|
||||
|
||||
```sh
|
||||
cz --no-raise 3,4,5
|
||||
```
|
||||
|
||||
### Longer way
|
||||
|
||||
Check the list of [exit_codes](../exit_codes.md) and understand which one you have
|
||||
to skip and why.
|
||||
|
||||
Remember to document somewhere this, because you'll forget.
|
||||
|
||||
For example if the system raises a `NoneIncrementExit` error, you look it up
|
||||
on the list and then you can use the exit code:
|
||||
|
||||
```sh
|
||||
cz -nr 21 bump
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### `tag_format`
|
||||
|
||||
`tag_format` and `version_scheme` are combined to make Git tag names from versions.
|
||||
|
||||
These are used in:
|
||||
|
||||
- `cz bump`: Find previous release tag (exact match) and generate new tag.
|
||||
- Find previous release tags in `cz changelog`.
|
||||
- If `--incremental`: Using latest version found in the changelog, scan existing Git tags with 89\% similarity match.
|
||||
- `--rev-range` is converted to Git tag names with `tag_format` before searching Git history.
|
||||
- If the `scm` `version_provider` is used, it uses different regexes to find the previous version tags:
|
||||
- If `tag_format` is set to `$version` (default): `VersionProtocol.parser` (allows `v` prefix)
|
||||
- If `tag_format` is set: Custom regex similar to SemVer (not as lenient as PEP440 e.g. on dev-releases)
|
||||
|
||||
Commitizen supports 2 types of formats, a simple and a more complex.
|
||||
|
||||
```bash
|
||||
cz bump --tag-format="v$version"
|
||||
```
|
||||
|
||||
```bash
|
||||
cz bump --tag-format="v$minor.$major.$patch$prerelease.$devrelease"
|
||||
```
|
||||
|
||||
In your `pyproject.toml` or `.cz.toml`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
tag_format = "v$major.$minor.$patch$prerelease"
|
||||
```
|
||||
|
||||
The variables must be preceded by a `$` sign and optionally can be wrapped in `{}` . Default is `$version`.
|
||||
|
||||
Supported variables:
|
||||
|
||||
| Variable | Description |
|
||||
|--------------------------------|---------------------------------------------|
|
||||
| `$version`, `${version}` | full generated version |
|
||||
| `$major`, `${major}` | MAJOR increment |
|
||||
| `$minor`, `${minor}` | MINOR increment |
|
||||
| `$patch`, `${patch}` | PATCH increment |
|
||||
| `$prerelease`, `${prerelease}` | Prerelease (alpha, beta, release candidate) |
|
||||
| `$devrelease`, ${devrelease}` | Development release |
|
||||
|
||||
---
|
||||
|
||||
### `version_files` \*
|
||||
|
||||
It is used to identify the files which should be updated with the new version.
|
||||
It is also possible to provide a pattern for each file, separated by colons (`:`).
|
||||
|
||||
Commitizen will update its configuration file automatically (`pyproject.toml`, `.cz`) when bumping,
|
||||
regarding if the file is present or not in `version_files`.
|
||||
|
||||
\* Renamed from `files` to `version_files`.
|
||||
|
||||
Some examples
|
||||
|
||||
`pyproject.toml`, `.cz.toml` or `cz.toml`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
version_files = [
|
||||
"src/__version__.py",
|
||||
"setup.py:version"
|
||||
]
|
||||
```
|
||||
|
||||
In the example above, we can see the reference `"setup.py:version"`.
|
||||
This means that it will find a file `setup.py` and will only make a change
|
||||
in a line containing the `version` substring.
|
||||
|
||||
!!! note
|
||||
Files can be specified using relative (to the execution) paths, absolute paths
|
||||
or glob patterns.
|
||||
|
||||
---
|
||||
|
||||
### `bump_message`
|
||||
|
||||
Template used to specify the commit message generated when bumping.
|
||||
|
||||
defaults to: `bump: version $current_version → $new_version`
|
||||
|
||||
| Variable | Description |
|
||||
| ------------------ | ----------------------------------- |
|
||||
| `$current_version` | the version existing before bumping |
|
||||
| `$new_version` | version generated after bumping |
|
||||
|
||||
Some examples
|
||||
|
||||
`pyproject.toml`, `.cz.toml` or `cz.toml`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
bump_message = "release $current_version → $new_version [skip-ci]"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `update_changelog_on_bump`
|
||||
|
||||
When set to `true` the changelog is always updated incrementally when running `cz bump`, so the user does not have to provide the `--changelog` flag every time.
|
||||
|
||||
defaults to: `false`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
update_changelog_on_bump = true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `annotated_tag`
|
||||
|
||||
When set to `true` commitizen will create annotated tags.
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
annotated_tag = true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `gpg_sign`
|
||||
|
||||
When set to `true` commitizen will create gpg signed tags.
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
gpg_sign = true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `major_version_zero`
|
||||
|
||||
When set to `true` commitizen will keep the major version at zero.
|
||||
Useful during the initial development stage of your project.
|
||||
|
||||
Defaults to: `false`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
major_version_zero = true
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `pre_bump_hooks`
|
||||
|
||||
A list of optional commands that will run right _after_ updating `version_files`
|
||||
and _before_ actual committing and tagging the release.
|
||||
|
||||
Useful when you need to generate documentation based on the new version. During
|
||||
execution of the script, some environment variables are available:
|
||||
|
||||
| Variable | Description |
|
||||
| ---------------------------- | ---------------------------------------------------------- |
|
||||
| `CZ_PRE_IS_INITIAL` | `True` when this is the initial release, `False` otherwise |
|
||||
| `CZ_PRE_CURRENT_VERSION` | Current version, before the bump |
|
||||
| `CZ_PRE_CURRENT_TAG_VERSION` | Current version tag, before the bump |
|
||||
| `CZ_PRE_NEW_VERSION` | New version, after the bump |
|
||||
| `CZ_PRE_NEW_TAG_VERSION` | New version tag, after the bump |
|
||||
| `CZ_PRE_MESSAGE` | Commit message of the bump |
|
||||
| `CZ_PRE_INCREMENT` | Whether this is a `MAJOR`, `MINOR` or `PATH` release |
|
||||
| `CZ_PRE_CHANGELOG_FILE_NAME` | Path to the changelog file, if available |
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
pre_bump_hooks = [
|
||||
"scripts/generate_documentation.sh"
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### `post_bump_hooks`
|
||||
|
||||
A list of optional commands that will run right _after_ committing and tagging the release.
|
||||
|
||||
Useful when you need to send notifications about a release, or further automate deploying the
|
||||
release. During execution of the script, some environment variables are available:
|
||||
|
||||
| Variable | Description |
|
||||
| ------------------------------ | ----------------------------------------------------------- |
|
||||
| `CZ_POST_WAS_INITIAL` | `True` when this was the initial release, `False` otherwise |
|
||||
| `CZ_POST_PREVIOUS_VERSION` | Previous version, before the bump |
|
||||
| `CZ_POST_PREVIOUS_TAG_VERSION` | Previous version tag, before the bump |
|
||||
| `CZ_POST_CURRENT_VERSION` | Current version, after the bump |
|
||||
| `CZ_POST_CURRENT_TAG_VERSION` | Current version tag, after the bump |
|
||||
| `CZ_POST_MESSAGE` | Commit message of the bump |
|
||||
| `CZ_POST_INCREMENT` | Whether this was a `MAJOR`, `MINOR` or `PATH` release |
|
||||
| `CZ_POST_CHANGELOG_FILE_NAME` | Path to the changelog file, if available |
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
post_bump_hooks = [
|
||||
"scripts/slack_notification.sh"
|
||||
]
|
||||
```
|
||||
|
||||
### `prerelease_offset`
|
||||
|
||||
Offset with which to start counting prereleases.
|
||||
|
||||
Defaults to: `0`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
prerelease_offset = 1
|
||||
```
|
||||
|
||||
### `version_scheme`
|
||||
|
||||
Choose version scheme
|
||||
|
||||
| schemes | pep440 | semver | semver2 |
|
||||
| -------------- | -------------- | --------------- | --------------------- |
|
||||
| non-prerelease | `0.1.0` | `0.1.0` | `0.1.0` |
|
||||
| prerelease | `0.3.1a0` | `0.3.1-a0` | `0.3.1-alpha.0` |
|
||||
| devrelease | `0.1.1.dev1` | `0.1.1-dev1` | `0.1.1-dev.1` |
|
||||
| dev and pre | `1.0.0a3.dev1` | `1.0.0-a3-dev1` | `1.0.0-alpha.3.dev.1` |
|
||||
|
||||
Options: `pep440`, `semver`, `semver2`
|
||||
|
||||
Defaults to: `pep440`
|
||||
|
||||
```toml
|
||||
[tool.commitizen]
|
||||
version_scheme = "semver"
|
||||
```
|
||||
|
||||
## Custom bump
|
||||
|
||||
Read the [customizing section](../customization.md).
|
||||
|
||||
[pep440]: https://www.python.org/dev/peps/pep-0440/
|
||||
[semver]: https://semver.org/
|
Loading…
Add table
Add a link
Reference in a new issue