This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new fd7ac131553 Clarify how the providers vote result lists voters (#73883)
fd7ac131553 is described below

commit fd7ac131553540b687403d103764b38daa3d4f99
Author: Shahar Epstein <[email protected]>
AuthorDate: Mon Oct 5 23:14:51 2026 +0300

    Clarify how the providers vote result lists voters (#73883)
    
    * Clarify how the providers vote result lists voters
    
    The providers [RESULT][VOTE] template did not say how to report votes
    cast for only some providers of a wave, or the -1 votes behind a
    provider's exclusion, and it repeated "(binding)" under a heading that
    already says the votes are binding. Release managers and agents drafting
    the result had to work these rules out per wave.
    
    The vote-tally override applies the same rules for agents running the
    magpie release-management skill, and adapts the skill to waves, which
    have no planning issue or RC labels.
    
    Generated-by: Claude Code (Opus 5.5)
    
    * Drop the whole-set qualifier from the non-binding vote heading
    
    Generated-by: Claude Code (Opus 5.5)
---
 .apache-magpie-overrides/release-vote-tally.md | 63 ++++++++++++++++++++++++++
 dev/README_RELEASE_PROVIDERS.md                | 30 +++++++++---
 2 files changed, 87 insertions(+), 6 deletions(-)

diff --git a/.apache-magpie-overrides/release-vote-tally.md 
b/.apache-magpie-overrides/release-vote-tally.md
new file mode 100644
index 00000000000..85912f0c681
--- /dev/null
+++ b/.apache-magpie-overrides/release-vote-tally.md
@@ -0,0 +1,63 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+ -->
+
+# Override: release-vote-tally — Airflow providers waves
+
+## What this overrides
+
+Adapts the `release-vote-tally` skill to Airflow provider waves, which are 
voted on as a set
+and can drop single providers during the vote. Everything else in the skill, 
including its
+golden rules and hard rules, still applies.
+
+## Identifying the wave
+
+- A wave is identified by its preparation date (`YYYY-MM-DD`), not by 
`<version>-rcN`. Find the
+  thread by the `vote_subject_template` in
+  [`release-management-config.md`](release-management-config.md).
+- Providers waves have no planning issue and no `vote-open`, `vote-passed` or 
`rc-rolled` labels.
+  Skip the planning-issue checks and the label proposal. The "Status of 
testing Providers" issue
+  is not a planning issue.
+
+## Classifying votes
+
+- A vote line that names providers, for example `+1 (non-binding) for amazon 
and google` or
+  `-1 for edge3`, counts for those providers only. Record the providers with 
the vote. It is a
+  scoped vote, not an `AMBIGUOUS` one.
+- A plain `+1` counts for the whole set, even when the voter adds that they 
only tested their own
+  changes.
+- A single reply can hold several scoped votes, such as `+1` for some 
providers and `-1` for
+  another. Record each one.
+- The pass rule applies to the whole set. A scoped `-1` does not count against 
the set. It counts
+  against its provider, and the release manager decides on the thread whether 
to exclude that
+  provider.
+
+## Drafting the `[RESULT][VOTE]` email
+
+Use the email template and listing rules in
+[`dev/README_RELEASE_PROVIDERS.md` § Summarize the 
voting](../dev/README_RELEASE_PROVIDERS.md#summarize-the-voting-for-the-apache-airflow-release)
+instead of the skill's default body. In short:
+
+- List binding `+1` voters by name only, without `(binding)` after each name.
+- List non-binding `+1` voters for specific providers separately from the main 
non-binding
+  list, with the providers in brackets after each name.
+- For every excluded provider, give its binding and non-binding `-1` counts 
with the voters'
+  names, and leave out a part whose count is zero.
+- Keep the exclusion reason and the plan for the next RC, and let the release 
manager choose
+  between the next wave and an ad-hoc release.
+- Link the vote thread as `https://lists.apache.org/thread/<id of the [VOTE] 
email>`.
diff --git a/dev/README_RELEASE_PROVIDERS.md b/dev/README_RELEASE_PROVIDERS.md
index eb8097f93e0..11fb728286f 100644
--- a/dev/README_RELEASE_PROVIDERS.md
+++ b/dev/README_RELEASE_PROVIDERS.md
@@ -1716,9 +1716,20 @@ Once the vote has been passed, you will need to send a 
result vote to dev@airflo
 > binding `+1` votes from PMC members are already present in the vote thread — 
 > the email reports a
 > decision the PMC has already made, it does not make that decision.
 
-In both subject and message update DATE OF RELEASE, FIRST/LAST NAMES and 
numbers). In case
-some providers were  excluded, explain why they were excluded and what is the 
plan for them
-(otherwise remove the optional part of the message). There are two options for 
releasing
+In both subject and message update DATE OF RELEASE, FIRST/LAST NAMES and 
numbers. List the
+voters as follows:
+
+* Binding `+1` votes are listed by name only. The heading already says they 
are binding, so do not
+  add `(binding)` after each name.
+* Non-binding `+1` votes for specific providers go in a separate list, with 
the providers in
+  brackets after the voter's name. A vote counts for specific providers only 
when its vote line
+  names them, for example `+1 (non-binding) for amazon and google`. A plain 
`+1` goes in the main
+  non-binding list, even when the voter adds that they only tested their own 
changes.
+* For every excluded provider, tally its `-1` votes, both binding and 
non-binding, with the voters'
+  names. Leave out a part whose count is zero.
+
+Remove each optional part of the message that does not apply. In case some 
providers were excluded,
+explain why they were excluded and what is the plan for them. There are two 
options for releasing
 the next RC candidates:
 
 * They will be released as an ad-hoc release with accelerated vote
@@ -1746,14 +1757,21 @@ Hello,
 Apache Airflow Providers prepared on ${RELEASE_DATE} have been accepted.
 
 3 "+1" binding votes received:
-- FIRST LAST NAME (binding)
-- FIRST LAST NAME (binding)
-- FIRST LAST NAME (binding)
+- FIRST LAST NAME
+- FIRST LAST NAME
+- FIRST LAST NAME
 
 2 "+1" non-binding votes received:
 - FIRST LAST NAME
 - FIRST LAST NAME
 
+[optional] 1 "+1" non-binding vote received for specific providers:
+- FIRST LAST NAME (PROVIDER, PROVIDER)
+
+[optional] "-1" votes received for specific providers:
+- PROVIDER: 1 binding (FIRST LAST NAME), 1 non-binding (FIRST LAST NAME)
+- PROVIDER: 1 binding (FIRST LAST NAME)
+
 [optional] The providers PROVIDER, PROVIDER have been excluded from the 
release.
 This is due to REASON HERE.
 The next RC candidates for those providers will be released [in the next wave

Reply via email to