#!/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", "src/google/protobuf/compiler/java", ]), Language("Python", [ "python", "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 ") sys.exit(1) previous = sys.argv[1] for language in languages: print(language.name) sys.stdout.flush() 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/")