@@ -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+
4757def 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