@@ -107,9 +107,50 @@ def update_change_log(self):
107107 change_log_file .write (change_logs )
108108 return
109109
110+ def generate_release_msg (self ):
111+ software_version = os .environ .get ('software_version' , '' )
112+ if software_version == '' :
113+ raise ValueError (f'missing software_version' )
114+ release_lines = {
115+ 'Added' : ['### Added' ],
116+ 'Fixed' : ['### Fixed' ],
117+ 'Changed' : ['### Changed' ],
118+ }
119+ change_log_path = os .path .join (self .root_dir , 'CHANGELOG.md' )
120+ with open (change_log_path , 'r' ) as ff :
121+ all_lines = ff .read ().splitlines ()
122+ i = 0
123+ while i < len (all_lines ):
124+ if f'{ software_version } .dev' not in all_lines [i ]:
125+ i += 1
126+ continue
127+ release_lines [all_lines [i + 1 ].replace ('###' , '' ).strip ()].append (all_lines [i + 2 ])
128+ i += 3
129+
130+ message = [
131+ f'Link: https://pypi.org/project/mdps-ds-lib/{ software_version } /' ,
132+ '' ,
133+ 'Changes in this release:' ,
134+ ''
135+ ] + \
136+ (release_lines ['Added' ] if len (release_lines ['Added' ]) > 1 else []) + \
137+ (release_lines ['Fixed' ] if len (release_lines ['Fixed' ]) > 1 else []) + \
138+ (release_lines ['Changed' ] if len (release_lines ['Changed' ]) > 1 else [])
139+ message = '\n ' .join (message )
140+ release_path = os .path .join (self .root_dir , 'release_body.txt' )
141+ with open (release_path , 'w' ) as f :
142+ f .write (message )
143+ return message
144+
110145
111146if __name__ == '__main__' :
112- is_releasing = argv [1 ].strip ().upper () == 'RELEASE'
147+ arg1 = argv [1 ].strip ().upper ()
113148 version_update = VersionUpdate ()
114- new_version_from_setup = version_update .update_version (is_releasing )
115- version_update .update_change_log ()
149+ if arg1 == 'RELEASE_BODY' :
150+ new_version_from_setup = version_update .generate_release_msg ()
151+ elif argv [1 ].strip ().upper () == 'RELEASE' :
152+ new_version_from_setup = version_update .update_version (True )
153+ version_update .update_change_log ()
154+ else :
155+ new_version_from_setup = version_update .update_version (False )
156+ version_update .update_change_log ()
0 commit comments