-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCHANGES.rst.template
More file actions
80 lines (72 loc) · 2.94 KB
/
CHANGES.rst.template
File metadata and controls
80 lines (72 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
{#- macro: render_commit -#}
{%- macro render_commit(commit) -%}
- {{ commit.convention.subject|default(commit.subject) }} (`{{ commit.hash|truncate(7, True, '') }} <{{ commit.url }}>`_ by {{ commit.author_name }}).
{%- if commit.text_refs.issues_not_in_subject %} Related issues/PRs: {% for issue in commit.text_refs.issues_not_in_subject -%}
{% if issue.url %}`{{ issue.ref }}<{{ issue.url }}>`_{% else %}{{ issue.ref }}{% endif %}{% if not loop.last %}, {% endif -%}
{%- endfor -%}{%- endif -%}
{%- for trailer_name, trailer_value in commit.trailers.items() -%}
{%- if trailer_value|is_url %} [{{ trailer_name }}]({{ trailer_value }})
{%- else %} {{ trailer_name }}: {{ trailer_value }}{% endif %}
{%- if not loop.last %},{% endif %}
{%- endfor -%}
{%- endmacro -%}
{#- macro: remove_prefix -#}
{%- macro remove_prefix(s, prefix) -%}
{%- if s.startswith(prefix) -%}
{{ s[prefix.__len__():] }}
{%- else -%}
{{ s }}
{%- endif -%}
{%- endmacro -%}
{#- macro: render_dashes_for -#}
{%- macro render_dashes_for(count) -%}
{{ '-' * (count + 2) }}
{%- endmacro -%}
{#- macro: render_section -#}
{%- macro render_section(section, default_type_name="") -%}
{%- if section.type or default_type_name -%}
{{ section.type or default_type_name }}
{% endif %}
{% for commit in section.commits|sort(attribute='author_date',reverse=true)|unique(attribute='subject') -%}
{{ render_commit(commit) }}
{% endfor %}
{%- endmacro -%}
{#- macro: render_version -#}
{%- macro render_version(version, show_unreleased=False) -%}
{%- if version.tag or version.planned_tag -%}
{{ _render_version(version) }}
{%- elif show_unreleased -%}
{{ _render_version(version) }}
{%- endif-%}
{%- endmacro -%}
{%- macro _render_version(version) -%}
{%- if version.tag or version.planned_tag -%}
Version `{{ version.tag or version.planned_tag }} <{{ version.url }}>`_
{{ render_dashes_for(9 + (version.tag or version.planned_tag).__len__() + 2 + (version.url).__len__() + 3) }}
Released {% if version.date %}{{ version.date }}{%else%}YYYY-MM-DD{% endif %}
`Compare with {{ version.previous_version.tag|default("first commit") }} <{{ version.compare_url }}>`_ ({{ version.commits | length }} commits since)
{%- else -%}
Unreleased Version
-------------------
Released ????-??-?? {% if not (version.tag or version.planned_tag) %}(`latest <{{ version.compare_url }}>`_){% endif %}
{%- endif %}
{% for type in changelog.sections %}
{%- if type in version.sections_dict %}
{%- with section = version.sections_dict[type] %}
{{ render_section(section) }}
{%- endwith %}
{%- endif %}
{%- endfor %}
{%- if '' in version.sections_dict and version.sections_dict[''].commits %}
{{ render_section(version.sections_dict[''], 'Other') }}
{%- endif %}
{%- if not (version.tag or version.planned_tag) %}
.. |Changes|
{% endif %}
{% endmacro -%}
{#- template -#}
{%- if not in_place -%}
{% endif %}.. |Changes|
{% for version in changelog.versions_list -%}
{{ render_version(version, jinja_context.emit_unreleased|default(False)) }}
{%- endfor -%}