use yamlutils.dumps() in new-release command

This will give us standard formatting for new releases.

Change-Id: I86936a9e0cc64dfb84ac5ac011f6f4240069cb5b
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
Doug Hellmann
2017-07-28 17:08:20 -04:00
parent 25ea1d8ecd
commit 8ca9ccc26a

View File

@@ -21,14 +21,10 @@ import shutil
import tempfile
from openstack_releases import gitutils
from openstack_releases import yamlutils
import yaml
RELEASE_TEMPLATE = '''
- version: {version}
projects:
'''.lstrip('\n')
PROJECT_TEMPLATE = '''
- repo: {repo}
hash: {hash}
@@ -93,14 +89,16 @@ def main():
parser.error(e)
# Determine the new version number.
add_releases_key = False
try:
last_release = deliverable_info['releases'][-1]
except KeyError:
print('No releases for %s in %s, yet.' % (
args.deliverable, series))
if args.release_type == 'bugfix':
parser.error('The first release for a series must be at least a feature release to allow for stable releases from the previous series.') # noqa
parser.error(
'The first release for a series must '
'be at least a feature release to allow '
'for stable releases from the previous series.')
# Look for the version of the previous series.
all_series = sorted(os.listdir('deliverables'))
prev_series = all_series[all_series.index(series) - 1]
@@ -108,7 +106,7 @@ def main():
prev_info = get_deliverable_data(
prev_series, args.deliverable)
last_release = prev_info['releases'][-1]
add_releases_key = True
deliverable_info['releases'] = []
except (IOError, OSError, KeyError) as e:
parser.error('Could not determine previous version: %s' % (e,))
last_version = last_release['version'].split('.')
@@ -152,15 +150,13 @@ def main():
'hash': sha,
})
# The YAML dump formatter produces results that aren't very nice
# to read, so we format the output ourselves. The file is only
# regenerated if there are in fact changes to be made.
deliverable_info['releases'].append({
'version': new_version,
'projects': projects,
})
if changes > 0:
deliverable_filename = 'deliverables/%s/%s.yaml' % (
series, args.deliverable)
with open(deliverable_filename, 'a') as f:
if add_releases_key:
f.write('releases:\n')
f.write(RELEASE_TEMPLATE.format(version=new_version))
for p in projects:
f.write(PROJECT_TEMPLATE.format(**p))
with open(deliverable_filename, 'w', encoding='utf-8') as f:
f.write(yamlutils.dumps(deliverable_info))