`bump` is also changing dependency versions in `pyproject.toml`, when the versions are the same
See original GitHub issueDescription
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
Issue Analytics
- State:
- Created a year ago
- Comments:5 (4 by maintainers)
Yes, updating the docs should be enough, would you mind sending a pr or describing here where would you update? Thanks
I suppose it might also help to clarify in the documentation I linked to above that the pattern is a Python regular expression matched using re.finditer. That would also serve the purpose of clarifying that the file isn’t searched line by line. Or see #498 for a proposed alternative to the current matching behavior.