msys2-web/app/templates/queue.html
Christoph Reiter 04fbe06c18 Fix queue sorting for real
It was passing the display text to the sort function, not the
enum value, so only worked by accident. Refactor/rename things a
bit to make this more clear.

Also give the unknown/unprocessed state a higher priority, so it
shows up before the finished builds. Same for manual builds, since
they require user action.
2025-01-17 18:51:34 +01:00

172 lines
6.5 KiB
HTML

{% extends "layout.html" %}
{% block title %}Pending Package Updates{% endblock %}
{% block inner_content %}
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title">Pending Package Updates</h4>
<h6 class="card-subtitle mb-2 text-muted">
{{ updates|length }} packages which have a newer version in the Git
repository than in the pacman repository
</h6>
</div>
<div class="card-body overflow-auto">
<p class="text-muted">
Packages get automatically built via <a
href="https://github.com/msys2/msys2-autobuild/actions/workflows/build.yml">msys2/msys2-autobuild</a> and
<a href="https://github.com/msys2-arm/msys2-autobuild/actions/workflows/build.yml">msys2-arm/msys2-autobuild</a>.
Maintainers can control the build pipeline <a href="https://autobuildcontroller.msys2.org">here</a>.
<br>
After the packages are built they still need to be manually signed and uploaded to the pacman repo, so please be patient :)
</p>
<form class="row g-2 align-items-center" action="{{ url_for('queue') }}" method="get">
<div class="col-auto">
Build Types:
</div>
<div class="col-auto">
<select name="build_type" class="form-select form-select-sm" onchange="this.form.submit()">
<option {{ "selected" if not build_filter or "" }} value="">All</option>
{% for bt in build_types %}
<option value="{{ bt }}" {{ "selected" if build_filter == bt or "" }}>{{ bt }}</option>
{% endfor %}
</select>
</div>
</form>
<br>
{% if cycles %}
<p> Cycles:
{% for (a, b) in cycles %}
<a href="{{ url_for('base', base_name=a) }}">{{ a }}</a><a href="{{ url_for('base', base_name=b) }}">{{ b }}</a>{{ ", " if not loop.last else "" }}
{% endfor %}
</p>
{% endif %}
<table class="table table-hover table-sm">
<thead>
<tr>
<th>Update Date</th>
<th>Base Package</th>
<th>Repo Version</th>
<th></th>
<th>Git Version</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for (srcinfo, s, p, status) in updates %}
<tr>
<td class="mytooltip">
<a href="{{ srcinfo.history_url }}">{{ srcinfo.date.split()[0] }}</a>
<template class="mytooltip-content">
{{ srcinfo.date }} <span class="text-muted">(UTC)</span>
</template>
</td>
{% if s %}
<td><a href="{{ url_for('base', base_name=s.name) }}">{{ srcinfo.pkgbase }}</a></td>
{% else %}
<td><a href="{{ srcinfo.source_url }}">{{ srcinfo.pkgbase }}</a></td>
{% endif %}
{% if p %}
<td class="text-version">{{ p.version }}</td>
{% else %}
<td>-</td>
{% endif %}
<td></td>
<td class="text-version">{{ srcinfo.build_version }}</td>
<td class="mytooltip text-{{ status[0].category or 'muted' }}">
{{ status[0].status_text }}
{% for s in status %}
<small class="text-muted">
{% if s.urls %}
<br>
{{ s.build_type }}:
{% for key, value in s.urls.items() -%}
{% if not loop.first %} / {% endif %}<a href="{{ s.urls[key] }}">{{ key }}</a>
{%- endfor -%}
{% endif %}
</small>
{% endfor %}
<template class="mytooltip-content">
<dl>
{% for s in status %}
<dt>{{ s.build_type }}: <span class="text-{{ s.category or 'muted' }}">{{ s.status_text }}</span></dt>
<dd><small class="text-muted">
{% if s.details %}
{{ s.details }}
{% endif %}</small></dd>
{% endfor %}
</dl>
</template>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<p class="text-muted">
The packages above marked "Ready for upload" are also available in a
special <a href="https://repo.msys2.org/staging/">staging pacman
repo</a>. Note that using the staging repo might result in some packages
being broken from time to time as it can contain partial build results
of multi-package rebuilds. To use it add the following to the top of
<code>/etc/pacman.conf</code>:</p><pre><code>[staging]
Server = https://repo.msys2.org/staging/
SigLevel = Never</code></pre>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h4 class="card-title">Pending Package Removals</h4>
<h6 class="card-subtitle mb-2 text-muted">
{{ removals|length }} packages which are in the pacman repository, but no
longer in the Git repository and can be removed
</h6>
</div>
<div class="card-body overflow-auto">
<table class="table table-hover table-sm">
<thead>
<tr>
<th>Update Date</th>
<th>Repo</th>
<th>Package</th>
<th>Status</th>
</tr>
</thead>
<tbody>
{% for p, rdepends in removals %}
<tr>
<td class="mytooltip">
<a href="{{ p.history_url }}">{{ (p.builddate|timestamp).split()[0] }}</a>
<template class="mytooltip-content">
{{ p.builddate|timestamp }} <span class="text-muted">(UTC)</span>
</template>
</td>
<td>{{ p.repo }}</td>
<td><a href="{{ package_url(p) }}">{{ p.name }}</a></td>
{% if rdepends %}
<td><span class="text-danger">Required by:</span>
<ul class="list-unstyled">
{% for rp, r in rdepends|rdepends_sort %}
<li><a href="{{ package_url(rp) }}">{{ rp.name }}</a>{% if r|rdepends_type %} <span class="text-muted">({{ r|rdepends_type|sort|join(', ') }})</span>{% endif %}</li>
{% endfor %}
</ul>
</td>
{% else %}
<td class="text-success">Ready for removal</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}