{% extends "base.html" %} {% block body %}

Readiness

{% for c in checks %} {% endfor %}
checkstatedetail
{{ c.name }}{% if not c.blocking %} (advisory){% endif %} {{ c.state }} {{ c.detail }}
{% if blockers %}

⚠ Release blocked by: {{ blockers | map(attribute='name') | join(', ') }}. Fix these, or tick the override below if you know what you're doing.

{% else %}

All blocking checks pass.

{% endif %}

Versions

{% for v in versions %} {% endfor %}
serverworking treelatest tag
{{ v.target }}{{ v.local or "—" }}{{ v.latest_tag or "—" }}

Release actions

These are irreversible and outward-facingrelease-prepare pushes a tag that triggers publication. Each runs the project's own sanctioned invoke task; the board never invents release mechanics. To proceed you must type the exact confirmation string.

{% for task in tasks %}

{{ task.label }}

{{ task.detail or task.blurb }}

{% set needs_version = task.key in ("py-release-prepare", "py-release-finalize") %} {% if needs_version %} {% else %} {% endif %} {% if blockers %} {% endif %}
{% endfor %}
{% endblock %}