mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 20:27:11 +01:00 
			
		
		
		
	Added script to extract stub for “release notes”
- gets last two commit hashes for the version file, gets the commit logs between those versions and parses out the messages
This commit is contained in:
		
							
								
								
									
										33
									
								
								scripts/releaseNotes.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								scripts/releaseNotes.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| import os | ||||
|  | ||||
| from scriptCommon import catchPath | ||||
| from scriptCommon import runAndCapture | ||||
|  | ||||
| rootPath = os.path.join( catchPath, 'include/' ) | ||||
| versionPath = os.path.join( rootPath, "internal/catch_version.hpp" ) | ||||
|  | ||||
|  | ||||
| hashes = runAndCapture( ['git', 'log', '-2', '--format="%H"', versionPath] ) | ||||
| lines = runAndCapture( ['git', 'log', hashes[1] + ".." + hashes[0], catchPath] ) | ||||
|  | ||||
| prevLine = "" | ||||
| messages = [] | ||||
| dates = [] | ||||
| for line in lines: | ||||
|     if line.startswith( "commit"): | ||||
|         pass | ||||
|     elif line.startswith( "Author:"): | ||||
|         pass | ||||
|     elif line.startswith( "Date:"): | ||||
|         dates.append( line[5:].lstrip() ) | ||||
|         pass | ||||
|     elif line == "" and prevLine == "": | ||||
|         pass | ||||
|     else: | ||||
|         messages.append( line ) | ||||
|         prevLine = line | ||||
|  | ||||
| print "All changes between {0} and {1}:\n".format( dates[-1], dates[0] ) | ||||
|  | ||||
| for line in messages: | ||||
|     print line | ||||
| @@ -1,4 +1,21 @@ | ||||
| import os | ||||
| import sys | ||||
| import subprocess | ||||
|  | ||||
| catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) | ||||
| catchPath = os.path.dirname(os.path.realpath( os.path.dirname(sys.argv[0]))) | ||||
|  | ||||
| def runAndCapture( args ): | ||||
|     child = subprocess.Popen(" ".join( args ), shell=True, stdout=subprocess.PIPE) | ||||
|     lines = [] | ||||
|     line = "" | ||||
|     while True: | ||||
|         out = child.stdout.read(1) | ||||
|         if out == '' and child.poll() != None: | ||||
|             break | ||||
|         if out != '': | ||||
|             if out == '\n': | ||||
|                 lines.append( line ) | ||||
|                 line = "" | ||||
|             else: | ||||
|                 line = line + out | ||||
|     return lines | ||||
		Reference in New Issue
	
	Block a user
	 Phil Nash
					Phil Nash