aboutsummaryrefslogtreecommitdiff
path: root/generate_changelog.py
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2016-09-21 14:39:27 -0700
committerJosh Haberman <jhaberman@gmail.com>2016-09-21 14:41:57 -0700
commita2e73644be95aad24693441e14644981e68f4d60 (patch)
treeda8cc0ffb5c1ba2e9b6bfc35277ae65f8cf37be2 /generate_changelog.py
parente25c56a86182502b642342635eebf736be8af02f (diff)
downloadprotobuf-a2e73644be95aad24693441e14644981e68f4d60.tar.gz
protobuf-a2e73644be95aad24693441e14644981e68f4d60.tar.bz2
protobuf-a2e73644be95aad24693441e14644981e68f4d60.zip
Added convenient script for generating changelog draft.
Diffstat (limited to 'generate_changelog.py')
-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>")