Merge "Fix release-note parsing of deliverable files"

This commit is contained in:
Zuul
2019-04-18 09:21:37 +00:00
committed by Gerrit Code Review
3 changed files with 17 additions and 12 deletions

View File

@@ -596,7 +596,7 @@ def main():
include_pypi_link=False, include_pypi_link=False,
changes_only=False, changes_only=False,
first_release=deliv.is_first_release, first_release=deliv.is_first_release,
repo_name=project.repo.name, deliverable_file=filename,
description='', description='',
publishing_dir_name=project.repo.name, publishing_dir_name=project.repo.name,
) )

View File

@@ -122,7 +122,7 @@ def main():
include_pypi_link=args.include_pypi_link, include_pypi_link=args.include_pypi_link,
changes_only=args.changes_only, changes_only=args.changes_only,
first_release=args.first_release, first_release=args.first_release,
repo_name=args.repo_name, deliverable_file=None,
description=args.description, description=args.description,
publishing_dir_name=args.publishing_dir_name or args.repo_name, publishing_dir_name=args.publishing_dir_name or args.repo_name,
) )

View File

@@ -183,20 +183,24 @@ release crew's attention.
""" """
def parse_deliverable(series, repo): def parse_deliverable(series, repo, deliverable_file=None):
"""Parse useful information out of the deliverable file. """Parse useful information out of the deliverable file.
Currently only parses the bug URL, but could potentially be expanded to get Currently only parses the bug URL, but could potentially be expanded to get
other useful settings. other useful settings.
:param series: The release series being processed. :param series: The release series being processed.
:param repo: The name of the deliverable. :param repo: The name of the repo.
:param deliverable_file: The deliverable file.
""" """
release_repo = os.path.realpath( release_repo = os.path.realpath(
os.path.join(os.path.dirname(os.path.abspath(__file__)), '..')) os.path.join(os.path.dirname(os.path.abspath(__file__)), '..'))
deliverable_path = os.path.join( if deliverable_file is None:
release_repo, 'deliverables', series.lower(), "%s.yaml" % repo) deliverable_file = os.path.join(
'deliverables', series.lower(), '%s.yaml' % repo)
deliverable_path = os.path.join(release_repo, deliverable_file)
# Hard coding source URL for now # Hard coding source URL for now
sections = { sections = {
@@ -252,7 +256,7 @@ def generate_release_notes(repo, repo_path,
include_pypi_link, include_pypi_link,
changes_only, changes_only,
first_release, first_release,
repo_name, description, deliverable_file, description,
publishing_dir_name, publishing_dir_name,
): ):
"""Return the text of the release notes. """Return the text of the release notes.
@@ -280,12 +284,12 @@ def generate_release_notes(repo, repo_path,
the list of changes, without any extra data. the list of changes, without any extra data.
:param first_release: Boolean indicating whether this is the first :param first_release: Boolean indicating whether this is the first
release of the project release of the project
:param repo_name: Name of the repo :param deliverable_file: The deliverable file path from the repo root.
:param description: Description of the repo :param description: Description of the repo
:param publishing_dir_name: The directory on publishings.openstack.org :param publishing_dir_name: The directory on publishings.openstack.org
containing the package. containing the package.
""" """
repo_name = repo.split('/')[-1]
# Determine if this is a release candidate or not. # Determine if this is a release candidate or not.
is_release_candidate = 'rc' in end_revision is_release_candidate = 'rc' in end_revision
@@ -335,8 +339,9 @@ def generate_release_notes(repo, repo_path,
diff_stats.append(line) diff_stats.append(line)
# Extract + valdiate needed sections... # Extract + valdiate needed sections...
sections = parse_deliverable(series, publishing_dir_name) sections = parse_deliverable(
change_header = ["Changes in %s %s" % (repo_name, git_range)] series, repo_name, deliverable_file=deliverable_file)
change_header = ["Changes in %s %s" % (repo, git_range)]
change_header.append("-" * len(change_header[0])) change_header.append("-" * len(change_header[0]))
# Look for reno notes for this version. # Look for reno notes for this version.
@@ -378,7 +383,7 @@ def generate_release_notes(repo, repo_path,
params = dict(sections) params = dict(sections)
params.update({ params.update({
'project': repo_name, 'project': repo,
'description': description, 'description': description,
'end_rev': end_revision, 'end_rev': end_revision,
'range': git_range, 'range': git_range,