This is an automated email from the ASF dual-hosted git repository.
sbp pushed a commit to branch sbp
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-releases.git
The following commit(s) were added to refs/heads/sbp by this push:
new 63940c2e Record when votes are resolved
63940c2e is described below
commit 63940c2e5faa0386ff0a099b78fb9ecda23d2123
Author: Sean B. Palmer <[email protected]>
AuthorDate: Wed Mar 4 15:48:24 2026 +0000
Record when votes are resolved
---
atr/storage/writers/release.py | 1 +
atr/storage/writers/vote.py | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/atr/storage/writers/release.py b/atr/storage/writers/release.py
index 963fe9ab..8f244172 100644
--- a/atr/storage/writers/release.py
+++ b/atr/storage/writers/release.py
@@ -347,6 +347,7 @@ class CommitteeParticipant(FoundationCommitter):
.values(
phase=sql.ReleasePhase.RELEASE_CANDIDATE,
vote_started=datetime.datetime.now(datetime.UTC),
+ vote_resolved=None,
vote_manual=vote_manual,
)
)
diff --git a/atr/storage/writers/vote.py b/atr/storage/writers/vote.py
index f221bc1e..4a58b1f2 100644
--- a/atr/storage/writers/vote.py
+++ b/atr/storage/writers/vote.py
@@ -18,6 +18,7 @@
# Removing this will cause circular imports
from __future__ import annotations
+import datetime
from typing import Literal
import atr.construct as construct
@@ -289,6 +290,7 @@ class CommitteeMember(CommitteeParticipant):
if vote_result == "passed":
release.phase = sql.ReleasePhase.RELEASE_PREVIEW
+ release.vote_resolved = datetime.datetime.now(datetime.UTC)
await self.__data.commit()
await self.__data.refresh(release)
success_message = "Vote marked as passed"
@@ -299,6 +301,7 @@ class CommitteeMember(CommitteeParticipant):
)
else:
release.phase = sql.ReleasePhase.RELEASE_CANDIDATE_DRAFT
+ release.vote_resolved = datetime.datetime.now(datetime.UTC)
await self.__data.commit()
await self.__data.refresh(release)
success_message = "Vote marked as failed"
@@ -376,6 +379,7 @@ class CommitteeMember(CommitteeParticipant):
success_message = "Project PPMC vote marked as passed, and
Incubator PMC vote automatically started"
elif vote_result == "passed":
release.phase = sql.ReleasePhase.RELEASE_PREVIEW
+ release.vote_resolved = datetime.datetime.now(datetime.UTC)
await self.__data.commit()
await self.__data.refresh(release)
success_message = "Vote marked as passed"
@@ -391,6 +395,7 @@ class CommitteeMember(CommitteeParticipant):
extra_destination = (round_one_email_address,
round_one_message_id)
else:
release.phase = sql.ReleasePhase.RELEASE_CANDIDATE_DRAFT
+ release.vote_resolved = datetime.datetime.now(datetime.UTC)
await self.__data.commit()
await self.__data.refresh(release)
success_message = "Vote marked as failed"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]