mirror of https://github.com/pypa/pip
46 lines
1.6 KiB
ReStructuredText
46 lines
1.6 KiB
ReStructuredText
{# This is a heavily customised version of towncrier's default template. #}
|
|
|
|
{#-
|
|
Only render if there's any changes to show.
|
|
|
|
This serves as a compatibility "hack" since we render unreleased news entries
|
|
in our changelog with ``sphinxcontrib.towncrier``; which triggers a render even
|
|
when there's no entries to be rendered.
|
|
#}
|
|
{% if sections[''] %}
|
|
|
|
{#- Heading for individual version #}
|
|
{{ versiondata.version }} ({{ versiondata.date }})
|
|
{{ top_underline * ((versiondata.version + versiondata.date)|length + 3) }}
|
|
{#
|
|
|
|
The following loop will run exactly once, with ``section_name == ""``.
|
|
|
|
This is due to the undocumented "sections" feature in towncrier.
|
|
See https://github.com/twisted/towncrier/issues/61.
|
|
|
|
We don't use this feature, and this template doesn't render the section
|
|
heading for that reason.
|
|
#}
|
|
{% for section_name, entries_by_type in sections.items() -%}
|
|
{# Only show types with entries and ``showcontent = true``, using the order from pyproject.toml #}
|
|
{% for type_ in definitions if (sections[section_name][type_] and definitions[type_]['showcontent']) %}
|
|
|
|
{# Heading for individual types #}
|
|
{{ definitions[type_]['name'] }}
|
|
{{ underlines[0] * definitions[type_]['name']|length }}
|
|
{# This is the loop that generates individual entries #}
|
|
{% for message, issue_reference in sections[section_name][type_]|dictsort(by='value') %}
|
|
|
|
- {{ message }}
|
|
{%- if type_ not in ["vendor", "process"] %} ({{ issue_reference|sort|join(', ') }}){% endif %}
|
|
{% endfor %}
|
|
|
|
{% else %}
|
|
{# We only have entries where the type has ``showcontent = true``. #}
|
|
No significant changes.
|
|
|
|
{% endfor -%}
|
|
{% endfor -%}
|
|
{% endif -%}
|