|
|
@ -838,21 +838,21 @@ class MatrixUnits(Units):
|
|
|
|
tc_lines = []
|
|
|
|
tc_lines = []
|
|
|
|
if os.path.isdir(tc_path):
|
|
|
|
if os.path.isdir(tc_path):
|
|
|
|
logger.info("Generating towncrier changelog for: %s" % name)
|
|
|
|
logger.info("Generating towncrier changelog for: %s" % name)
|
|
|
|
p = subprocess.run(
|
|
|
|
p = subprocess.Popen(
|
|
|
|
['towncrier', '--version', 'Unreleased Changes', '--name', name, '--draft'],
|
|
|
|
['towncrier', '--version', 'Unreleased Changes', '--name', name, '--draft'],
|
|
|
|
cwd=tc_path,
|
|
|
|
cwd=tc_path,
|
|
|
|
check=False, # We'll manually check the exit code
|
|
|
|
|
|
|
|
stderr=subprocess.PIPE,
|
|
|
|
stderr=subprocess.PIPE,
|
|
|
|
stdout=subprocess.PIPE,
|
|
|
|
stdout=subprocess.PIPE,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
stdout, stderr = p.communicate()
|
|
|
|
if p.returncode != 0:
|
|
|
|
if p.returncode != 0:
|
|
|
|
# Something broke - dump as much information as we can
|
|
|
|
# Something broke - dump as much information as we can
|
|
|
|
logger.error("Towncrier exited with code %s" % p.returncode)
|
|
|
|
logger.error("Towncrier exited with code %s" % p.returncode)
|
|
|
|
logger.error(p.stdout.decode('UTF-8'))
|
|
|
|
logger.error(stdout.decode('UTF-8'))
|
|
|
|
logger.error(p.stderr.decode('UTF-8'))
|
|
|
|
logger.error(stderr.decode('UTF-8'))
|
|
|
|
raw_log = ""
|
|
|
|
raw_log = ""
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
raw_log = p.stdout.decode('UTF-8')
|
|
|
|
raw_log = stdout.decode('UTF-8')
|
|
|
|
|
|
|
|
|
|
|
|
# This is a bit of a hack, but it does mean that the log at least gets *something*
|
|
|
|
# This is a bit of a hack, but it does mean that the log at least gets *something*
|
|
|
|
# to tell us it broke
|
|
|
|
# to tell us it broke
|
|
|
|