summaryrefslogtreecommitdiffstats
path: root/extras/scripts/list_api_changes.py
blob: 7433f542aaafe292947723ed4ce6ed32960e6287 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env python3
from __future__ import print_function
import fnmatch
import os
import subprocess

starttag = "v19.08-rc0"
endtag = "HEAD"
emit_md = True
apifiles = []

for root, dirnames, filenames in os.walk("."):
    for filename in fnmatch.filter(filenames, "*.api"):
        apifiles.append(os.path.join(root, filename))

for f in apifiles:
    commits = subprocess.check_output(
        ["git", "log", "--oneline", starttag + ".." + endtag, f]
    )
    if commits:
        if f[0:2] == "./":
            f = f[2:]
        if emit_md:
            print("| @c %s ||" % f)
            print("| ------- | ------- |")
            for line in commits.splitlines():
                parts = line.strip().split()
                commit = parts[0]
                message = b" ".join(parts[1:]).decode().replace("|", r"\|")
                print(
                    "| [%s](https://gerrit.fd.io/r/gitweb?"
                    "p=vpp.git;a=commit;h=%s) | %s |" % (commit, commit, message)
                )
            print()
        else:
            print(f)
            print(commits)