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 6a64a62 Ensure that release policy template defaults are set properly
6a64a62 is described below
commit 6a64a62ed02ee16766a47e3594c9e68cc94734a8
Author: Sean B. Palmer <[email protected]>
AuthorDate: Thu May 29 16:47:47 2025 +0100
Ensure that release policy template defaults are set properly
---
atr/routes/projects.py | 43 +++++++++++++++++++++++++++++++++++++----
atr/templates/project-view.html | 3 ++-
2 files changed, 41 insertions(+), 5 deletions(-)
diff --git a/atr/routes/projects.py b/atr/routes/projects.py
index bf02907..5fbb9a1 100644
--- a/atr/routes/projects.py
+++ b/atr/routes/projects.py
@@ -50,6 +50,8 @@ class ReleasePolicyForm(util.QuartFormTyped):
"""
project_name = wtforms.HiddenField("project_name")
+ default_start_vote_template_hash = wtforms.HiddenField()
+ default_announce_release_template_hash = wtforms.HiddenField()
mailto_addresses = wtforms.FieldList(
wtforms.StringField(
@@ -230,10 +232,37 @@ async def view(session: routes.CommitterSession, name:
str) -> response.Response
project.release_policy.manual_vote =
util.unwrap(form.manual_vote.data)
project.release_policy.min_hours =
util.unwrap(form.min_hours.data)
project.release_policy.release_checklist =
util.unwrap(form.release_checklist.data)
- project.release_policy.start_vote_template =
util.unwrap(form.start_vote_template.data)
- project.release_policy.announce_release_template =
util.unwrap(form.announce_release_template.data)
- # TODO: Add default handling here
+ # Handle start_vote_template
+ submitted_start_template =
str(util.unwrap(form.start_vote_template.data))
+ submitted_start_template =
submitted_start_template.replace("\r\n", "\n")
+ rendered_default_start_hash =
str(util.unwrap(form.default_start_vote_template_hash.data))
+ current_default_start_text =
project.policy_start_vote_default
+ current_default_start_hash =
util.compute_sha3_256(current_default_start_text.encode())
+ submitted_start_hash =
util.compute_sha3_256(submitted_start_template.encode())
+
+ if (submitted_start_hash == rendered_default_start_hash)
or (
+ submitted_start_hash == current_default_start_hash
+ ):
+ project.release_policy.start_vote_template = ""
+ else:
+ project.release_policy.start_vote_template =
submitted_start_template
+
+ # Handle announce_release_template
+ submitted_announce_template =
str(util.unwrap(form.announce_release_template.data))
+ submitted_announce_template =
submitted_announce_template.replace("\r\n", "\n")
+ rendered_default_announce_hash =
str(util.unwrap(form.default_announce_release_template_hash.data))
+ current_default_announce_text =
project.policy_announce_release_default
+ current_default_announce_hash =
util.compute_sha3_256(current_default_announce_text.encode())
+ submitted_announce_hash =
util.compute_sha3_256(submitted_announce_template.encode())
+
+ if (submitted_announce_hash ==
rendered_default_announce_hash) or (
+ submitted_announce_hash ==
current_default_announce_hash
+ ):
+ project.release_policy.announce_release_template = ""
+ else:
+ project.release_policy.announce_release_template =
submitted_announce_template
+
project.release_policy.pause_for_rm =
util.unwrap(form.pause_for_rm.data)
await data.commit()
await quart.flash("Release policy updated successfully.",
"success")
@@ -252,7 +281,13 @@ async def view(session: routes.CommitterSession, name:
str) -> response.Response
form.start_vote_template.data =
project.policy_start_vote_template
form.announce_release_template.data =
project.policy_announce_release_template
form.pause_for_rm.data = project.policy_pause_for_rm
- ...
+ # Set the hashes of the current defaults
+ form.default_start_vote_template_hash.data =
util.compute_sha3_256(
+ project.policy_start_vote_default.encode()
+ )
+ form.default_announce_release_template_hash.data =
util.compute_sha3_256(
+ project.policy_announce_release_default.encode()
+ )
return await template.render(
"project-view.html",
diff --git a/atr/templates/project-view.html b/atr/templates/project-view.html
index b8ca151..296f379 100644
--- a/atr/templates/project-view.html
+++ b/atr/templates/project-view.html
@@ -66,7 +66,8 @@
novalidate>
{{ form.hidden_tag() if form.hidden_tag }}
{{ form.project_name(value=project.name) }}
- {# TODO: Add default handling here #}
+ {{ form.default_start_vote_template_hash() }}
+ {{ form.default_announce_release_template_hash() }}
<div class="mb-3 pb-3 row border-bottom">
{{ forms.label(form.mailto_addresses.entries[0], col="md3") }}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]