Skip to content

bump is also changing dependency versions in pyproject.toml, when the versions are the same #496

Closed
@Andrew-Sheridan

Description

@Andrew-Sheridan

Description

When a dep is specified using the {} syntax, eg

smart-open = {version = ">=5.2.0,<6.1.0", extras = ["s3"]}

and the version of the dep matches the version of the project, then bump will change both versions.

Is it possible to specify a regex in the configuration - ie to ensure that the version string is at the start of line, not in the middle?

Ref https://commitizen-tools.github.io/commitizen/config/#pyprojecttoml-or-cztoml

Steps to reproduce

Create a project, where the project version is the same as a dependency version, and where the dependency uses poetry's optional {} syntax

mkdir bug-report

cd bug-report

cat << EOF > pyproject.toml
[tool.poetry]
name = "foo"
version = "6.1.0"
description = "foo"
authors = ["First Last <firstLast@example.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.9"
smart-open = {version = ">=5.2.0,<6.1.0", extras = ["s3"]}

[tool.commitizen]
name = "cz_conventional_commits"
version = "6.1.0"
version_files = ["pyproject.toml:version"]
tag_format = "v$version"
EOF

Init

git init
git add .
git commit -m 'first commit'

Check the current version of the project

cz version --project
6.1.0

Make a change

mkdir src
touch src/__init__.py
git add .
git commit -m 'feat: a feature'

bump the project

cz bump --yes
bump: version 6.1.0 → 6.2.0
tag to create: v6.2.0
increment detected: MINOR

Done!

See the version change in the dependency...

cat pyproject.toml
[tool.poetry]
name = "foo"
version = "6.2.0"
description = "foo"
authors = ["Andrew Sheridan <asheridan25@massmutual.com>"]
readme = "README.md"
packages = [{ include = "massmutual", from = "src"}]

[tool.poetry.dependencies]
python = "^3.9"
smart-open = {version = ">=5.2.0,<6.2.0", extras = ["s3"]}

[tool.commitizen]
name = "cz_conventional_commits"
version = "6.2.0"
version_files = ["pyproject.toml:version"]
tag_format = "v$version"

This line should not have changed: smart-open = {version = ">=5.2.0,<6.2.0", extras = ["s3"]}

Current behavior

bump erroneously changes more than it should in the toml file

Desired behavior

bump only changes the right strings in the toml file

Screenshots

No response

Environment

cz version -> 2.23.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions