You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tooling.apache.org by "sbp (via GitHub)" <gi...@apache.org> on 2026/05/06 18:58:06 UTC
[I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
sbp opened a new issue, #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226
Part of #1216.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "dave2wave (via GitHub)" <gi...@apache.org>.
dave2wave commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4409369407
Podlings need to understand the process. Making them manually move the vote to step two is good. It also gives them a pause to double check. I would make the second round vote with `general@incubator` be automatically resolved.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "dave2wave (via GitHub)" <gi...@apache.org>.
dave2wave commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4410276247
Only automatically resolve when the vote is successful. Do not automatically fail, that action needs the RM to decide how long to wait.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "sbp (via GitHub)" <gi...@apache.org>.
sbp commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4409398244
Ack. I'll make it so that only the second round is automatically resolved.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "sbp (via GitHub)" <gi...@apache.org>.
sbp closed issue #1226: Add the option, on by default, to automatically resolve hybrid votes
URL: https://github.com/apache/tooling-trusted-releases/issues/1226
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "sbp (via GitHub)" <gi...@apache.org>.
sbp commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4409334595
Commit 2da7807a0a3ddf5a98ea3c38ff2e7e52e715e48b adds this functionality for non-podling votes. I had originally planned to support this for podling votes too, but left it out of this commit to make review easier. Now that I've done so, however, I am wondering whether podlings should be doing this manually or not. The argument for making podlings do this manually is that it helps them to understand the voting process. On the other hand, this is the opposite to the logic that we used for fully manual votes, which we also disallow podlings from using. I recall that the rationale there was simply that it was more difficult for us to implement in ATR, but we already had the normal vote mode working for podlings.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "sbp (via GitHub)" <gi...@apache.org>.
sbp commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4444226038
Resolved by 8ad2cca77e025ef3f005c32ff80500d078cb5f74. Only successful votes are automatically resolved.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org
Re: [I] Add the option, on by default, to automatically resolve hybrid votes (tooling-trusted-releases)
Posted by "asf-tooling (via GitHub)" <gi...@apache.org>.
asf-tooling commented on issue #1226:
URL: https://github.com/apache/tooling-trusted-releases/issues/1226#issuecomment-4409655113
<!-- gofannon-issue-triage-bot v2 -->
**Automated triage** — analyzed at `main@2da7807a`
**Type:** `new_feature` • **Classification:** `actionable` • **Confidence:** `medium`
**Application domain(s):** `voting`
### Summary
Issue #1226 requests automatic resolution of hybrid votes. Commit 2da7807a (current HEAD) already implements this for non-podling votes. The discussion between @sbp and @dave2wave concluded that for podlings, only the second round (general@incubator) should be automatically resolved, while the first round should remain manual. @sbp acknowledged this and committed to implementing it. The change requires modifying the podling check in `CommitteeParticipant.start()` and passing `automatic_resolve_when_finished=True` when starting the second-round vote from `resolve_release`.
### Where this lives in the code today
#### `atr/storage/writers/vote.py` — `CommitteeMember.resolve_release` (lines 620-632)
_needs modification_
When the first round passes for a podling and the second round is started, `automatic_resolve_when_finished=True` should be passed to the `start()` call.
```python
async def resolve_release( # noqa: C901
self,
project_key: safe.ProjectKey,
release: sql.Release,
voting_round: int | None,
vote_result: Literal["passed", "failed", "cancelled"],
latest_vote_task: sql.Task,
asf_fullname: str,
resolution_body: str,
) -> tuple[sql.Release, int | None, str, str | None]:
if (voting_round == 1) and (vote_result == "passed"):
await self.__data.commit()
await self.__data.begin_immediate()
```
### Proposed approach
Two changes are needed:
1. In `CommitteeParticipant.start()`, replace the blanket `committee.is_podling` block with a conditional that checks `release.podling_thread_id`. If `podling_thread_id is None`, it's the first round and automatic resolution should be blocked. If `podling_thread_id is not None`, it's the second round and automatic resolution should be allowed.
2. In the section of `CommitteeMember.resolve_release()` that starts the second-round Incubator PMC vote (when `voting_round == 1` and `vote_result == 'passed'`), pass `automatic_resolve_when_finished=True` to the `self.start(...)` call. The committee member permission check may also need adjustment since the second-round vote is initiated programmatically by the system on behalf of the user who resolved round one, who is a PPMC member but might not be an Incubator PMC member.
Since @sbp is actively working on this (acknowledged in the discussion 0 days ago), the diff below is illustrative of the approach rather than a finalized implementation.
### Suggested patches
#### `atr/storage/writers/vote.py`
Allow automatic resolution for podling second-round votes only, blocking first-round.
````diff
--- a/atr/storage/writers/vote.py
+++ b/atr/storage/writers/vote.py
@@ -270,9 +270,11 @@
if automatic_resolve_when_finished and (vote_mode != sql.VoteMode.TRUSTED):
raise storage.AccessError(
"Automatic vote resolution is only available in Trusted Vote mode", status=403
)
- if automatic_resolve_when_finished and committee.is_podling:
- raise storage.AccessError(
- "Automatic vote resolution is not yet available for podling votes", status=403
- )
+ if automatic_resolve_when_finished and committee.is_podling:
+ # Allow automatic resolution for the second round (Incubator PMC vote)
+ # but not for the first round (PPMC vote), so podlings learn the process
+ if release.podling_thread_id is None:
+ raise storage.AccessError(
+ "Automatic vote resolution is not available for the first round of podling votes", status=403
+ )
if automatic_resolve_when_finished and (self.__asf_uid not in committee.committee_members):
# TODO: Maybe we should modularise all of this?
# Then we could use the relevant permissions class
````
### Open questions
- The `resolve_release` method is truncated in the source provided, so I cannot identify the exact line where `self.start(...)` is called for the second-round vote to confirm where `automatic_resolve_when_finished=True` should be added.
- The committee member check (`self.__asf_uid not in committee.committee_members`) may need adjustment for the second round: the `committee` variable at that point would be the podling committee, but the vote is being sent to Incubator. Need to verify whether the committee variable is updated before the check when starting the second round programmatically.
- Should the `automatic_resolve_when_finished` flag be inherited from the first-round task args, or should it always be True for the second round regardless of the first-round setting?
### Files examined
- `atr/post/resolve.py`
- `atr/shared/resolve.py`
- `atr/tabulate.py`
- `atr/get/resolve.py`
- `atr/storage/writers/vote.py`
- `atr/models/tabulate.py`
- `atr/post/vote.py`
- `atr/get/vote.py`
### Related issues
This issue appears related to: #1216.
_Both address improvements to Trusted Vote mode, with #1226 being a specific sub-task of #1216_
---
*Draft from a triage agent. A human reviewer should validate before merging any change. The agent did not run tests or verify diffs apply.*
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tooling.apache.org
For additional commands, e-mail: dev-help@tooling.apache.org