Skip to content

Commit df8c766

Browse files
authored
[pipeline] adapt to breaking change detection (Azure#18300)
* breaking change item for pipeline * fix * fix * fix * fix * Update conf.py * Update conf.py * Update auto_package.py
1 parent e3a2bc9 commit df8c766

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

swagger_to_sdk_config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"advancedOptions": {
33
"createSdkPullRequests": true,
4-
"generationCallMode": "one-for-all-configs"
4+
"generationCallMode": "one-for-all-configs",
5+
"breakingChangeTracking": true
56
},
67

78
"initOptions": {

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

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,27 @@ def get_package_names(sdk_folder):
3333
return package_names
3434

3535

36-
def change_log_generate(package_name):
36+
def change_log_generate(package_name, last_version):
3737
from pypi_tools.pypi import PyPIClient
3838
client = PyPIClient()
3939
try:
40-
client.get_ordered_versions(package_name)
40+
last_version[-1] = str(client.get_ordered_versions(package_name)[-1])
4141
except:
4242
return " - Initial Release"
4343
else:
4444
return change_log_main(f"{package_name}:pypi", f"{package_name}:latest")
4545

4646

47+
def _extract_breaking_change(changelog):
48+
log = changelog.split('\n')
49+
breaking_change = []
50+
for i in range(0, len(log)):
51+
if log[i].find('Breaking changes') > -1:
52+
breaking_change = log[min(i + 2, len(log) - 1):]
53+
break
54+
return sorted([x.replace(' - ', '') for x in breaking_change])
55+
56+
4757
def main(generate_input, generate_output):
4858
with open(generate_input, "r") as reader:
4959
data = json.load(reader)
@@ -55,11 +65,15 @@ def main(generate_input, generate_output):
5565
for package in data.values():
5666
package_name = package['packageName']
5767
# Changelog
58-
md_output = change_log_generate(package_name)
68+
last_version = ['first release']
69+
md_output = change_log_generate(package_name, last_version)
5970
package["changelog"] = {
6071
"content": md_output,
61-
"hasBreakingChange": "Breaking changes" in md_output
72+
"hasBreakingChange": "Breaking changes" in md_output,
73+
"breakingChangeItems": _extract_breaking_change(md_output)
6274
}
75+
package["version"] = last_version[-1]
76+
6377
_LOGGER.info(f'[PACKAGE]({package_name})[CHANGELOG]:{md_output}')
6478
# Built package
6579
create_package(package_name)

0 commit comments

Comments
 (0)