diff --git a/src/python/pants/build_graph/address.py b/src/python/pants/build_graph/address.py index 6bbec3128b61..f5f8079eadbb 100644 --- a/src/python/pants/build_graph/address.py +++ b/src/python/pants/build_graph/address.py @@ -514,10 +514,7 @@ def sanitize(s: str) -> str: else: target = f"{parent_prefix}{self.target_name}" if self.parameters: - key_value_strs = ",".join( - f"{sanitize(k)}={sanitize(v)}" for k, v in self.parameters.items() - ) - params = f"@@{key_value_strs}" + params = f"@{sanitize(self.parameters_repr)}" else: params = "" generated = f"@{sanitize(self.generated_name)}" if self.generated_name else "" diff --git a/src/python/pants/core/goals/package.py b/src/python/pants/core/goals/package.py index 1c94588d8e6b..c394d8d51634 100644 --- a/src/python/pants/core/goals/package.py +++ b/src/python/pants/core/goals/package.py @@ -72,11 +72,14 @@ class OutputPathField(StringField, AsyncFieldMixin): def value_or_default(self, *, file_ending: str | None) -> str: if self.value: return self.value - file_prefix = ( + target_name_part = ( self.address.generated_name.replace(".", "_") if self.address.generated_name else self.address.target_name ) + params_sanitized = self.address.parameters_repr.replace(".", "_") + file_prefix = f"{target_name_part}{params_sanitized}" + if file_ending is None: file_name = file_prefix else: