xref: /aosp_15_r20/external/protobuf/generate_changelog.py (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker#!/usr/bin/env python
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Worker"""Generates a friendly list of changes per language since the last release."""
4*1b3f573fSAndroid Build Coastguard Worker
5*1b3f573fSAndroid Build Coastguard Workerimport sys
6*1b3f573fSAndroid Build Coastguard Workerimport os
7*1b3f573fSAndroid Build Coastguard Worker
8*1b3f573fSAndroid Build Coastguard Workerclass Language(object):
9*1b3f573fSAndroid Build Coastguard Worker  def __init__(self, name, pathspec):
10*1b3f573fSAndroid Build Coastguard Worker    self.name = name
11*1b3f573fSAndroid Build Coastguard Worker    self.pathspec = pathspec
12*1b3f573fSAndroid Build Coastguard Worker
13*1b3f573fSAndroid Build Coastguard Workerlanguages = [
14*1b3f573fSAndroid Build Coastguard Worker  Language("C++", [
15*1b3f573fSAndroid Build Coastguard Worker      "':(glob)src/google/protobuf/*'",
16*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/cpp",
17*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/io",
18*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/util",
19*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/stubs",
20*1b3f573fSAndroid Build Coastguard Worker  ]),
21*1b3f573fSAndroid Build Coastguard Worker  Language("Java", [
22*1b3f573fSAndroid Build Coastguard Worker      "java",
23*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/java",
24*1b3f573fSAndroid Build Coastguard Worker  ]),
25*1b3f573fSAndroid Build Coastguard Worker  Language("Python", [
26*1b3f573fSAndroid Build Coastguard Worker      "python",
27*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/python",
28*1b3f573fSAndroid Build Coastguard Worker  ]),
29*1b3f573fSAndroid Build Coastguard Worker  Language("PHP", [
30*1b3f573fSAndroid Build Coastguard Worker      "php",
31*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/php",
32*1b3f573fSAndroid Build Coastguard Worker  ]),
33*1b3f573fSAndroid Build Coastguard Worker  Language("Ruby", [
34*1b3f573fSAndroid Build Coastguard Worker      "ruby",
35*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/ruby",
36*1b3f573fSAndroid Build Coastguard Worker  ]),
37*1b3f573fSAndroid Build Coastguard Worker  Language("Csharp", [
38*1b3f573fSAndroid Build Coastguard Worker      "csharp",
39*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/csharp",
40*1b3f573fSAndroid Build Coastguard Worker  ]),
41*1b3f573fSAndroid Build Coastguard Worker  Language("Objective C", [
42*1b3f573fSAndroid Build Coastguard Worker      "objectivec",
43*1b3f573fSAndroid Build Coastguard Worker      "src/google/protobuf/compiler/objectivec",
44*1b3f573fSAndroid Build Coastguard Worker  ]),
45*1b3f573fSAndroid Build Coastguard Worker]
46*1b3f573fSAndroid Build Coastguard Worker
47*1b3f573fSAndroid Build Coastguard Workerif len(sys.argv) < 2:
48*1b3f573fSAndroid Build Coastguard Worker  print("Usage: generate_changelog.py <previous release>")
49*1b3f573fSAndroid Build Coastguard Worker  sys.exit(1)
50*1b3f573fSAndroid Build Coastguard Worker
51*1b3f573fSAndroid Build Coastguard Workerprevious = sys.argv[1]
52*1b3f573fSAndroid Build Coastguard Worker
53*1b3f573fSAndroid Build Coastguard Workerfor language in languages:
54*1b3f573fSAndroid Build Coastguard Worker  print(language.name)
55*1b3f573fSAndroid Build Coastguard Worker  sys.stdout.flush()
56*1b3f573fSAndroid Build Coastguard Worker  os.system(("git log --pretty=oneline --abbrev-commit %s...HEAD %s | " +
57*1b3f573fSAndroid Build Coastguard Worker             "sed -e 's/^/ - /'") % (previous, " ".join(language.pathspec)))
58*1b3f573fSAndroid Build Coastguard Worker  print("")
59*1b3f573fSAndroid Build Coastguard Worker
60*1b3f573fSAndroid Build Coastguard Workerprint("To view a commit on GitHub: " +
61*1b3f573fSAndroid Build Coastguard Worker      "https://github.com/protocolbuffers/protobuf/commit/<commit id>")
62