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
commit 7e92d3d49933d40ba8811dad84270047c173d152 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 | 7 +++++++ 2 files changed, 8 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..d8925418 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,8 @@ class CommitteeMember(CommitteeParticipant): ) else: release.phase = sql.ReleasePhase.RELEASE_CANDIDATE_DRAFT + # The vote_resolved property refers to when the vote succeeded only + release.vote_resolved = None await self.__data.commit() await self.__data.refresh(release) success_message = "Vote marked as failed" @@ -376,6 +380,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 +396,8 @@ class CommitteeMember(CommitteeParticipant): extra_destination = (round_one_email_address, round_one_message_id) else: release.phase = sql.ReleasePhase.RELEASE_CANDIDATE_DRAFT + # The vote_resolved property refers to when the vote succeeded only + release.vote_resolved = None 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]
