Update release support book page in release process
This commit is contained in:
parent
23d73df62b
commit
681e1a4d64
|
@ -9,6 +9,7 @@ import subprocess
|
||||||
import traceback
|
import traceback
|
||||||
import unittest
|
import unittest
|
||||||
import random
|
import random
|
||||||
|
from datetime import date, datetime, timedelta, timezone
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
|
||||||
|
@ -108,6 +109,9 @@ def main_logged(revision, release, releaseprev, releasefrom, releaseheight, hotf
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
update_book(release, releaseheight)
|
||||||
|
commit('Updated book for {}.'.format(release.novtext))
|
||||||
|
|
||||||
|
|
||||||
def phase(message):
|
def phase(message):
|
||||||
def deco(f):
|
def deco(f):
|
||||||
|
@ -333,6 +337,11 @@ def update_debian_changelog(release):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@phase('Updating book.')
|
||||||
|
def update_book(release, releaseheight):
|
||||||
|
patch_book_release_support(release, releaseheight)
|
||||||
|
|
||||||
|
|
||||||
# Helper code:
|
# Helper code:
|
||||||
def commit(message):
|
def commit(message):
|
||||||
logging.info('Committing: %r', message)
|
logging.info('Committing: %r', message)
|
||||||
|
@ -388,6 +397,51 @@ def patch_gitian_linux_yml(release, releaseprev, path):
|
||||||
outf.write(inf.read())
|
outf.write(inf.read())
|
||||||
|
|
||||||
|
|
||||||
|
def patch_book_release_support(release, releaseheight):
|
||||||
|
with PathPatcher('doc/book/src/user/release-support.md') as (inf, outf):
|
||||||
|
# Find the start marker.
|
||||||
|
cur_line = inf.readline()
|
||||||
|
while not 'RELEASE_SCRIPT_START_MARKER' in cur_line:
|
||||||
|
outf.write(cur_line)
|
||||||
|
cur_line = inf.readline()
|
||||||
|
outf.write(cur_line)
|
||||||
|
|
||||||
|
# The next two lines are the table heading.
|
||||||
|
for _ in range(2):
|
||||||
|
outf.write(inf.readline())
|
||||||
|
|
||||||
|
# The remaining lines before the end marker are table rows.
|
||||||
|
table_rows = []
|
||||||
|
cur_line = inf.readline()
|
||||||
|
while not 'RELEASE_SCRIPT_END_MARKER' in cur_line:
|
||||||
|
[row_ver, row_released, row_halt, row_eos] = cur_line.strip('| \n').split(' | ')
|
||||||
|
row_released = date.fromisoformat(row_released)
|
||||||
|
row_eos = date.fromisoformat(row_eos)
|
||||||
|
table_rows.append((row_ver, row_released, int(row_halt), row_eos))
|
||||||
|
cur_line = inf.readline()
|
||||||
|
|
||||||
|
# Prune rows for releases that have reached EoS.
|
||||||
|
today = datetime.now(timezone.utc).date()
|
||||||
|
table_rows = [row for row in table_rows if row[3] >= today]
|
||||||
|
|
||||||
|
# Add a row for this release.
|
||||||
|
with open('src/deprecation.h', 'r', encoding='utf8') as f:
|
||||||
|
prefix = 'RELEASE_TO_DEPRECATION_WEEKS = '
|
||||||
|
for line in f:
|
||||||
|
if prefix in line:
|
||||||
|
weeks_to_eos = int(line.split(prefix)[1].split(';')[0])
|
||||||
|
eos = today + timedelta(weeks=weeks_to_eos)
|
||||||
|
table_rows.append((release.novtext, today, releaseheight, eos))
|
||||||
|
|
||||||
|
# Write out the updated table rows.
|
||||||
|
for row in table_rows:
|
||||||
|
outf.write('| %s | %s | %s | %s |\n' % row)
|
||||||
|
|
||||||
|
# Write out the end marker and the rest of the page.
|
||||||
|
outf.write(cur_line)
|
||||||
|
outf.write(inf.read())
|
||||||
|
|
||||||
|
|
||||||
def _patch_build_defs(release, path, pattern):
|
def _patch_build_defs(release, path, pattern):
|
||||||
rgx = re.compile(pattern)
|
rgx = re.compile(pattern)
|
||||||
with PathPatcher(path) as (inf, outf):
|
with PathPatcher(path) as (inf, outf):
|
||||||
|
|
Loading…
Reference in New Issue