| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | from __future__ import print_function |
| |
|
| | import re |
| |
|
| |
|
| | def create_introduced_in_text(version, bug_number = None): |
| | """Generate text to paste in to documentation file""" |
| | if bug_number: |
| | return '> [Introduced](https://github.com/catchorg/Catch2/issues/%s) in Catch %s.' % (bug_number, version) |
| | else: |
| | |
| | return '> Introduced in Catch %s.' % version |
| |
|
| |
|
| | def link_to_changes_in_release(release, releases): |
| | """ |
| | Markdown text for a hyperlink showing all edits in a release, or empty string |
| | |
| | :param release: A release version, as a string |
| | :param releases: A container of releases, in descending order - newest to oldest |
| | :return: Markdown text for a hyperlink showing the differences between the give release and the prior one, |
| | or empty string, if the previous release is not known |
| | """ |
| |
|
| | if release == releases[-1]: |
| | |
| | return '' |
| | index = releases.index(release) |
| | previous_release = releases[index + 1] |
| | return '\n[Changes in %s](https://github.com/catchorg/Catch2/compare/v%s...v%s)' % (release, previous_release, release) |
| |
|
| |
|
| | def write_recent_release_notes_with_introduced_text(): |
| | current_version = None |
| | release_toc_regex = r'\[(\d.\d.\d)\]\(#\d+\)<br>' |
| | issue_number_regex = r'#[0-9]+' |
| | releases = [] |
| | with open('../docs/release-notes.md') as release_notes: |
| | for line in release_notes: |
| | line = line[:-1] |
| | print(line) |
| |
|
| | |
| | match = re.search(release_toc_regex, line) |
| | if match: |
| | release_name = match.group(1) |
| | releases.append(release_name) |
| |
|
| | if line.startswith('## '): |
| | |
| | current_version = line.replace('## ', '') |
| |
|
| | |
| | if current_version == 'Older versions': |
| | break |
| |
|
| | print(create_introduced_in_text(current_version)) |
| | print(link_to_changes_in_release(current_version, releases)) |
| |
|
| | |
| | |
| | if not current_version: |
| | continue |
| |
|
| | for bug_link in re.findall(issue_number_regex, line): |
| | bug_number = bug_link.replace('#', '') |
| | print(create_introduced_in_text(current_version, bug_number)) |
| |
|
| |
|
| | if __name__ == '__main__': |
| | write_recent_release_notes_with_introduced_text() |
| |
|