You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by sb...@apache.org on 2025/04/23 13:51:27 UTC
(tooling-trusted-release) branch main updated: Add a placeholder page for refining a release preview
This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git
The following commit(s) were added to refs/heads/main by this push:
new 8f6fef7 Add a placeholder page for refining a release preview
8f6fef7 is described below
commit 8f6fef70719e208bfde376d266b1a29a6d01d89c
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Wed Apr 23 14:51:03 2025 +0100
Add a placeholder page for refining a release preview
---
atr/routes/mapping.py | 4 +-
atr/routes/preview.py | 17 +++++++-
atr/templates/preview-announce-release.html | 3 +-
atr/templates/preview-refine-release.html | 60 +++++++++++++++++++++++++++++
playwright/test.py | 6 +--
5 files changed, 82 insertions(+), 8 deletions(-)
diff --git a/atr/routes/mapping.py b/atr/routes/mapping.py
index 878bbc7..8bf94b8 100644
--- a/atr/routes/mapping.py
+++ b/atr/routes/mapping.py
@@ -29,7 +29,7 @@ def release_as_url(release: models.Release) -> str:
resolve_release = candidate.resolve_release # type: ignore[has-type]
return util.as_url(resolve_release, project_name=release.project.name, version_name=release.version)
elif release.phase.value == "release_preview":
- announce_release = preview.announce_release # type: ignore[has-type]
- return util.as_url(announce_release, project_name=release.project.name, version_name=release.version)
+ refine_release = preview.refine_release # type: ignore[has-type]
+ return util.as_url(refine_release, project_name=release.project.name, version_name=release.version)
else:
raise ValueError(f"Unknown release phase: {release.phase}")
diff --git a/atr/routes/preview.py b/atr/routes/preview.py
index 65924d6..dac409d 100644
--- a/atr/routes/preview.py
+++ b/atr/routes/preview.py
@@ -148,7 +148,7 @@ async def announce(session: routes.CommitterSession) -> str | response.Response:
)
-@routes.committer("/preview/announce/<project_name>/<version_name>")
+@routes.committer("/announce/<project_name>/<version_name>")
async def announce_release(
session: routes.CommitterSession, project_name: str, version_name: str
) -> str | response.Response:
@@ -226,6 +226,21 @@ async def previews(session: routes.CommitterSession) -> str:
)
+@routes.committer("/refine/<project_name>/<version_name>")
+async def refine_release(
+ session: routes.CommitterSession, project_name: str, version_name: str
+) -> response.Response | str:
+ """Refine a release preview."""
+ async with db.session() as data:
+ release = await data.release(name=models.release_name(project_name, version_name), _project=True).demand(
+ base.ASFQuartException("Release does not exist", errorcode=404)
+ )
+ if release.phase != models.ReleasePhase.RELEASE_PREVIEW:
+ return await session.redirect(previews, error="Release is not in the preview phase")
+
+ return await quart.render_template("preview-refine-release.html", release=release)
+
+
@routes.committer("/preview/view/<project_name>/<version_name>")
async def view(session: routes.CommitterSession, project_name: str, version_name: str) -> response.Response | str:
"""View all the files in the rsync upload directory for a release."""
diff --git a/atr/templates/preview-announce-release.html b/atr/templates/preview-announce-release.html
index ff8c287..c38628d 100644
--- a/atr/templates/preview-announce-release.html
+++ b/atr/templates/preview-announce-release.html
@@ -25,7 +25,8 @@
{% block content %}
<p>
- <a href="{{ as_url(routes.root.index) }}" class="atr-back-link">← Back to Select a release</a>
+ <a href="{{ as_url(routes.preview.refine_release, project_name=release.project.name, version_name=release.version) }}"
+ class="atr-back-link">← Back to Refine {{ release.short_display_name }}</a>
</p>
<h1>
diff --git a/atr/templates/preview-refine-release.html b/atr/templates/preview-refine-release.html
new file mode 100644
index 0000000..e5166f5
--- /dev/null
+++ b/atr/templates/preview-refine-release.html
@@ -0,0 +1,60 @@
+{% extends "layouts/base.html" %}
+
+{% block title %}
+ Refine {{ release.project.display_name }} {{ release.version }} ~ ATR
+{% endblock title %}
+
+{% block description %}
+ Refine {{ release.project.display_name }} {{ release.version }} as a release preview.
+{% endblock description %}
+
+{% block content %}
+ <p>
+ <a href="{{ as_url(routes.root.index) }}" class="atr-back-link">← Back to Select a release</a>
+ </p>
+
+ <h1>
+ Refine <strong>{{ release.project.short_display_name }}</strong> <em>{{ release.version }}</em>
+ </h1>
+
+ <div id="{{ release.name }}" class="card mb-4 shadow-sm">
+ <div class="card-header bg-light">
+ <h3 class="card-title mb-0">About this release preview</h3>
+ </div>
+ <div class="card-body">
+ <div class="d-flex flex-wrap gap-3 pb-3 mb-3 border-bottom text-secondary fs-6">
+ <span class="page-preview-meta-item">Phase: <strong class="atr-phase-three">③ REFINE</strong></span>
+ <span class="page-preview-meta-item">Revision: {{ release.revision }}</span>
+ <span class="page-preview-meta-item">Created: {{ release.created.strftime("%Y-%m-%d %H:%M:%S UTC") }}</span>
+ </div>
+ <div>
+ <a title="Announce and distribute {{ release.name }}"
+ href="{{ as_url(routes.preview.announce_release, project_name=release.project.name, version_name=release.version) }}"
+ class="btn btn-sm btn-primary me-2">
+ <i class="fas fa-check-circle"></i>
+ Announce and distribute
+ </a>
+ <a title="Show files for {{ release.name }}"
+ href="{{ as_url(routes.preview.view, project_name=release.project.name, version_name=release.version) }}"
+ class="btn btn-sm btn-secondary">
+ <i class="fas fa-file-archive"></i>
+ Show files
+ </a>
+ </div>
+ </div>
+ </div>
+
+ <div class="card mb-4 shadow-sm">
+ <div class="card-header bg-light">
+ <h3 class="card-title mb-0">TODO</h3>
+ </div>
+ <div class="card-body">
+ <p>We plan to allow moving files and removing "RC" tags from files on this page.</p>
+ <p>For now, you can only move straight to the announce page.</p>
+ </div>
+ </div>
+{% endblock content %}
+
+{% block javascripts %}
+ {{ super() }}
+{% endblock javascripts %}
diff --git a/playwright/test.py b/playwright/test.py
index 658efd2..b1ffafc 100644
--- a/playwright/test.py
+++ b/playwright/test.py
@@ -206,10 +206,8 @@ def lifecycle_05_resolve_vote(page: sync_api.Page, credentials: Credentials, ver
sync_api.expect(submit_button_locator).to_be_enabled()
submit_button_locator.click()
- logging.info(
- f"Waiting for navigation to /preview/announce/tooling-test-example/{version_name} after resolving the vote"
- )
- wait_for_path(page, f"/preview/announce/tooling-test-example/{version_name}")
+ logging.info(f"Waiting for navigation to /announce/tooling-test-example/{version_name} after resolving the vote")
+ wait_for_path(page, f"/announce/tooling-test-example/{version_name}")
logging.info("Vote resolution actions completed successfully")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org