Skip to content

Commit 394c396

Browse files
BigCat20196msyyc
andauthored
[Packaging_Tools] Update change_log (Azure#23801)
* update change_log * update change_log * update raise error msg * Update tools/azure-sdk-tools/packaging_tools/change_log.py Co-authored-by: Yuchao Yan <[email protected]> * update * update Co-authored-by: Yuchao Yan <[email protected]>
1 parent 6a853e6 commit 394c396

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

tools/azure-sdk-tools/packaging_tools/change_log.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ def build_md(self):
3131
self.sort()
3232
buffer = []
3333
if self.features:
34-
_build_md(self.features, "**Features**", buffer)
34+
_build_md(sorted(set(self.features), key=self.features.index), "**Features**", buffer)
3535
if self.breaking_changes:
36-
_build_md(self.breaking_changes, "**Breaking changes**", buffer)
36+
_build_md(sorted(set(self.breaking_changes), key=self.breaking_changes.index), "**Breaking changes**", buffer)
3737
if not (self.features or self.breaking_changes) and self.optional_features:
38-
_build_md(self.optional_features, "**Features**", buffer)
38+
_build_md(sorted(set(self.optional_features), key=self.optional_features.index), "**Features**", buffer)
3939

4040
return "\n".join(buffer).strip()
4141

@@ -79,8 +79,18 @@ def operation(self, diff_entry):
7979
# Ignore change in metadata for now, they have no impact
8080
return
8181

82-
# So method signaure changed. Be vague for now
83-
self.breaking_changes.append(_SIGNATURE_CHANGE.format(operation_name, function_name))
82+
if remaining_path[0] == "parameters":
83+
old_parameters_list = self._old_report["operations"][operation_name]["functions"][function_name]['parameters']
84+
new_parameters_list = self._new_report["operations"][operation_name]["functions"][function_name]['parameters']
85+
old_parameters = {param_name['name'] for param_name in old_parameters_list}
86+
new_parameters = {param_name['name'] for param_name in new_parameters_list}
87+
# The new parameter is optional or not. Be breaking change for now.
88+
for removed_parameter in old_parameters - new_parameters:
89+
self.breaking_changes.append(_REMOVE_OPERATION_PARAM.format(operation_name, function_name, removed_parameter))
90+
for added_parameter in new_parameters - old_parameters:
91+
self.breaking_changes.append(_ADD_OPERATION_PARAM.format(operation_name, function_name,added_parameter))
92+
return
93+
raise NotImplementedError(f"Other situations. Be err for now: {str(remaining_path)}")
8494

8595
def models(self, diff_entry):
8696
path, is_deletion = self._unpack_diff_entry(diff_entry)
@@ -138,13 +148,14 @@ def models(self, diff_entry):
138148
## Features
139149
_ADD_OPERATION_GROUP = "Added operation group {}"
140150
_ADD_OPERATION = "Added operation {}.{}"
151+
_ADD_OPERATION_PARAM = "Operation {}.{} has a new parameter {}"
141152
_MODEL_PARAM_ADD = "Model {} has a new parameter {}"
142153
_MODEL_ADD = "Added model {}"
143154

144155
## Breaking Changes
145156
_REMOVE_OPERATION_GROUP = "Removed operation group {}"
146157
_REMOVE_OPERATION = "Removed operation {}.{}"
147-
_SIGNATURE_CHANGE = "Operation {}.{} has a new signature"
158+
_REMOVE_OPERATION_PARAM = "Operation {}.{} no longer has parameter {}"
148159
_MODEL_SIGNATURE_CHANGE = "Model {} has a new signature"
149160
_MODEL_PARAM_DELETE = "Model {} no longer has parameter {}"
150161
_MODEL_PARAM_ADD_REQUIRED = "Model {} has a new required parameter {}"

0 commit comments

Comments
 (0)