aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts/packages/convert_changelog.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/packages/convert_changelog.py')
-rw-r--r--scripts/packages/convert_changelog.py39
1 files changed, 25 insertions, 14 deletions
diff --git a/scripts/packages/convert_changelog.py b/scripts/packages/convert_changelog.py
index 78edbda914..4868b40d9d 100644
--- a/scripts/packages/convert_changelog.py
+++ b/scripts/packages/convert_changelog.py
@@ -20,26 +20,37 @@ import sys
def main(input_file, output_file):
changelog_out = open(output_file, "w")
- time_stamp = None
+ changelog = None
+ version = None
with open(input_file, "r") as changelog_in:
for line in changelog_in:
line = line.strip()
- if line.startswith("```") or line.startswith("Baseline"):
- continue
+ if line.startswith("RELEASE_NOTES"):
+ changelog = line[14:].strip().replace("\f", "\n")
+ elif line.startswith("RELEASE_NAME"):
+ version = line[13:].strip()
- if line.startswith("## Release"):
- if time_stamp:
- changelog_out.write(
- "\n -- The Bazel Authors <bazel-dev@googlegroups.com> %s\n\n" %
- time_stamp)
- parts = line.split(" ")
- version = parts[2]
- time_stamp = datetime.strptime(
- parts[3], "(%Y-%m-%d)").strftime("%a, %d %b %Y %H:%M:%S +0100")
- changelog_out.write("bazel (%s) unstable; urgency=low\n" % version)
+ if changelog:
+ time_stamp = None
+ lines = changelog.split("\n")
+ header = lines[0]
+ lines = lines[4:] # Skip the header
+ if lines[0] == "Cherry picks:":
+ # Skip cherry picks list
+ i = 1
+ while lines[i].strip():
+ i += 1
+ lines = lines[i + 1:]
+
+ # Process header
+ parts = header.split(" ")
+ time_stamp = datetime.strptime(
+ parts[2], "(%Y-%m-%d)").strftime("%a, %d %b %Y %H:%M:%S +0100")
+ changelog_out.write("bazel (%s) unstable; urgency=low\n" % version)
- elif line.startswith("+") or line.startswith("-"):
+ for line in lines:
+ if line.startswith("+") or line.startswith("-"):
parts = line.split(" ")
line = "*" + line[1:]
changelog_out.write(" %s\n" % line)