aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Feng Xiao <xiaofeng@google.com>2016-09-23 10:49:13 -0700
committerGravatar GitHub <noreply@github.com>2016-09-23 10:49:13 -0700
commitd9ff3ef8592ba4b6a9db003de40672e44daaecc3 (patch)
tree1e61793cd0313c393c2e6a62910218c47a531d20
parent1bf97d87f53d04eafaf7bbe8fceb9014e227e16b (diff)
parenta2e73644be95aad24693441e14644981e68f4d60 (diff)
Merge pull request #2153 from haberman/generatechangelog
Added convenient script for generating changelog draft.
-rwxr-xr-xgenerate_changelog.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/generate_changelog.py b/generate_changelog.py
new file mode 100755
index 00000000..d7575d46
--- /dev/null
+++ b/generate_changelog.py
@@ -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>")