| 
					
				 | 
			
			
				@@ -0,0 +1,65 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#!/usr/bin/env python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+"""Generates a friendly list of changes per language since the last release.""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import os 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Language(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  def __init__(self, name, pathspec): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.name = name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    self.pathspec = pathspec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+languages = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("C++", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "':(glob)src/google/protobuf/*'", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/cpp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/io", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/util", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/stubs", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("Java", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "java", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "javanano", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/cpp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("Python", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "javanano", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/python", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("JavaScript", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "js", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/js", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("PHP", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "php", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/php", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("Ruby", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "ruby", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/ruby", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("Csharp", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "csharp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/csharp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Language("Objective C", [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "objectivec", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "src/google/protobuf/compiler/objectivec", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ]), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if len(sys.argv) < 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  print("Usage: generate_changelog.py <previous release>") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sys.exit(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+previous = sys.argv[1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+for language in languages: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  print(language.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  os.system(("git log --pretty=oneline --abbrev-commit %s...HEAD %s | " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             "sed -e 's/^/ - /'") % (previous, " ".join(language.pathspec))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  print("") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+print("To view a commit on GitHub: " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "https://github.com/google/protobuf/commit/<commit id>") 
			 |