Skip to content

Commit a1048a6

Browse files
committed
fix: worskpace member with fixed version
1 parent 583acf4 commit a1048a6

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

commitizen/providers/cargo_provider.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from pathlib import Path
66

77
import tomlkit
8+
from tomlkit.items import Table
89

910
from commitizen.providers.base_provider import TomlProvider
1011

@@ -41,11 +42,11 @@ def get(self, document: tomlkit.TOMLDocument) -> str:
4142

4243
def set(self, document: tomlkit.TOMLDocument, version: str) -> None:
4344
try:
44-
document["workspace"]["package"]["version"] = version # type: ignore[index]
45+
document["package"]["version"] = version # type: ignore[index]
4546
return
4647
except tomlkit.exceptions.NonExistentKey:
4748
...
48-
document["package"]["version"] = version # type: ignore[index]
49+
document["workspace"]["package"]["version"] = version # type: ignore[index]
4950

5051
def set_version(self, version: str) -> None:
5152
super().set_version(version)
@@ -69,22 +70,23 @@ def set_lock_version(self, version: str) -> None:
6970
excluded_workspace_members = cargo_toml_content.get("workspace", {}).get(
7071
"exclude", []
7172
)
72-
members_inheriting = []
73+
members_inheriting: list[str] = []
7374

7475
for member in workspace_members:
7576
for path in glob.glob(member, recursive=True):
7677
if matches_exclude(path, excluded_workspace_members):
7778
continue
7879
cargo_file = Path(path) / "Cargo.toml"
7980
cargo_toml_content = tomlkit.parse(cargo_file.read_text())
80-
try:
81-
version_workspace = cargo_toml_content["package"]["version"][ # type: ignore[index]
82-
"workspace"
83-
]
84-
if version_workspace is True:
85-
package_name = cargo_toml_content["package"]["name"] # type: ignore[index]
86-
members_inheriting.append(package_name)
87-
except tomlkit.exceptions.NonExistentKey:
81+
82+
package_version = cargo_toml_content["package"]["version"] # type: ignore[index]
83+
if (
84+
isinstance(package_version, Table)
85+
and package_version["workspace"] is True
86+
):
87+
package_name = cargo_toml_content["package"]["name"]
88+
members_inheriting.append(package_name)
89+
else:
8890
continue
8991

9092
for i, package in enumerate(packages):

tests/providers/test_cargo_provider.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"content": """\
4646
[package]
4747
name = "member2"
48-
version.workspace = "1.1.1"
48+
version = "1.1.1"
4949
""",
5050
},
5151
{

0 commit comments

Comments
 (0)