@@ -79,7 +79,41 @@ def set_lock_version(self, version: str) -> None:
7979 cargo_lock_content ["package" ][i ]["version" ] = version # type: ignore[index]
8080 break
8181 except NonExistentKey :
82+ < << << << HEAD
8283 members_inheriting = _get_workspace_members (cargo_toml_content , self ._get_encoding ())
84+ == == == =
85+ workspace = cargo_toml_content .get ("workspace" , {})
86+ if TYPE_CHECKING :
87+ assert isinstance (workspace , dict )
88+ workspace_members = workspace .get ("members" , [])
89+ excluded_workspace_members = workspace .get ("exclude" , [])
90+ members_inheriting : list [str ] = []
91+
92+ for member in workspace_members :
93+ for path in glob .glob (member , recursive = True ):
94+ if any (
95+ fnmatch .fnmatch (path , pattern )
96+ for pattern in excluded_workspace_members
97+ ):
98+ continue
99+
100+ cargo_file = Path (path ) / "Cargo.toml"
101+ package_content = parse (
102+ cargo_file .read_text (encoding = self ._get_encoding ())
103+ ).get ("package" , {})
104+ if TYPE_CHECKING :
105+ assert isinstance (package_content , dict )
106+ try :
107+ if not isinstance (package_content ["version" ], str ):
108+ version_workspace = package_content ["version" ]["workspace" ]
109+ if version_workspace is True :
110+ package_name = package_content ["name" ]
111+ if TYPE_CHECKING :
112+ assert isinstance (package_name , str )
113+ members_inheriting .append (package_name )
114+ except NonExistentKey :
115+ pass
116+ > >> >> >> e74d2d46 (fix : workspace member with fixed version key )
83117
84118 for i , package in enumerate (packages ):
85119 if package ["name" ] in members_inheriting :
0 commit comments