From a1048a6068b61f00487d494f5614dc0cf88439ae Mon Sep 17 00:00:00 2001 From: vemilano <230173219+vemilano@users.noreply.github.com> Date: Wed, 10 Dec 2025 17:07:01 +0100 Subject: [PATCH] fix: worskpace member with fixed version --- commitizen/providers/cargo_provider.py | 24 +++++++++++++----------- tests/providers/test_cargo_provider.py | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/commitizen/providers/cargo_provider.py b/commitizen/providers/cargo_provider.py index 3e8c95e22..ca1ba4331 100644 --- a/commitizen/providers/cargo_provider.py +++ b/commitizen/providers/cargo_provider.py @@ -5,6 +5,7 @@ from pathlib import Path import tomlkit +from tomlkit.items import Table from commitizen.providers.base_provider import TomlProvider @@ -41,11 +42,11 @@ def get(self, document: tomlkit.TOMLDocument) -> str: def set(self, document: tomlkit.TOMLDocument, version: str) -> None: try: - document["workspace"]["package"]["version"] = version # type: ignore[index] + document["package"]["version"] = version # type: ignore[index] return except tomlkit.exceptions.NonExistentKey: ... - document["package"]["version"] = version # type: ignore[index] + document["workspace"]["package"]["version"] = version # type: ignore[index] def set_version(self, version: str) -> None: super().set_version(version) @@ -69,7 +70,7 @@ def set_lock_version(self, version: str) -> None: excluded_workspace_members = cargo_toml_content.get("workspace", {}).get( "exclude", [] ) - members_inheriting = [] + members_inheriting: list[str] = [] for member in workspace_members: for path in glob.glob(member, recursive=True): @@ -77,14 +78,15 @@ def set_lock_version(self, version: str) -> None: continue cargo_file = Path(path) / "Cargo.toml" cargo_toml_content = tomlkit.parse(cargo_file.read_text()) - try: - version_workspace = cargo_toml_content["package"]["version"][ # type: ignore[index] - "workspace" - ] - if version_workspace is True: - package_name = cargo_toml_content["package"]["name"] # type: ignore[index] - members_inheriting.append(package_name) - except tomlkit.exceptions.NonExistentKey: + + package_version = cargo_toml_content["package"]["version"] # type: ignore[index] + if ( + isinstance(package_version, Table) + and package_version["workspace"] is True + ): + package_name = cargo_toml_content["package"]["name"] + members_inheriting.append(package_name) + else: continue for i, package in enumerate(packages): diff --git a/tests/providers/test_cargo_provider.py b/tests/providers/test_cargo_provider.py index 5e7b2d8cb..362b26437 100644 --- a/tests/providers/test_cargo_provider.py +++ b/tests/providers/test_cargo_provider.py @@ -45,7 +45,7 @@ "content": """\ [package] name = "member2" -version.workspace = "1.1.1" +version = "1.1.1" """, }, {