Skip to content

Commit ebf50b8

Browse files
authored
feat: release vote email template (#2533)
1 parent c3d06b0 commit ebf50b8

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

.github/workflows/stage-release-candidate.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ on:
2828
description: "Stage the binary jars to nexus"
2929
default: true
3030
type: boolean
31+
email-template:
32+
description: "Generate vote email template"
33+
default: true
34+
type: boolean
3135

3236
permissions:
3337
contents: read
@@ -162,3 +166,113 @@ jobs:
162166
PEKKO_GPG_SECRET_KEY: ${{ secrets.PEKKO_GPG_SECRET_KEY }}
163167
SONATYPE_USERNAME: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }}
164168
SONATYPE_PASSWORD: ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }}
169+
170+
email-template:
171+
runs-on: ubuntu-24.04
172+
if: ${{ inputs.email-template }}
173+
steps:
174+
- name: Generate vote email template
175+
run: |-
176+
export MODULE="Pekko (Core)"
177+
export VERSION=$(echo $REF | sed -e "s/.\(.*\)-.*/\\1/")
178+
export RC_VERSION=$(echo $REF | tail -c +2)
179+
echo "VERSION=$VERSION"
180+
echo "RC_VERSION=$RC_VERSION"
181+
182+
export DISCUSS=$(curl 'https://lists.apache.org/api/stats.lua?list=dev&domain=pekko.apache.org' | jq ".emails.[] | .subject, .mid" | grep -A1 "$MODULE $VERSION" | tail -1 | tr -d \")
183+
echo "DISCUSS=$DISCUSS"
184+
export DISCUSS_THREAD=https://lists.apache.org/thread/$(curl "https://lists.apache.org/api/thread.lua?id=$DISCUSS&find_parent=true" | jq .thread.mid | tr -d \")
185+
echo "DISCUSS_THREAD=$DISCUSS_THREAD"
186+
187+
export RELEASE_NOTES=https://github.com/apache/pekko/pull/$(curl https://api.github.com/repos/apache/pekko/pulls?state=all | jq ".[] | .title, .number" | grep -A1 "Release notes for $VERSION" | tail -1)
188+
echo "RELEASE_NOTES=$RELEASE_NOTES"
189+
190+
export SENDER=$(curl "https://api.github.com/users/$ACTOR" | jq .name | tr -d \")
191+
echo "SENDER=$SENDER"
192+
193+
echo "This template can be used to start a vote, either via manual email or via https://release-test.apache.org/compose/pekko/$VERSION"
194+
echo
195+
cat <<EOF;
196+
Subject: [VOTE] Release Apache $MODULE $RC_VERSION
197+
198+
Hello Pekko Community,
199+
200+
This is a call for a vote to release Apache $MODULE version $RC_VERSION
201+
202+
The discussion thread:
203+
204+
$DISCUSS_THREAD
205+
206+
The release candidate:
207+
208+
https://dist.apache.org/repos/dist/dev/pekko/$RC_VERSION
209+
https://release-test.apache.org/vote/pekko/$VERSION
210+
211+
This release has been signed with a PGP key available here:
212+
213+
https://downloads.apache.org/pekko/KEYS
214+
215+
Release Notes:
216+
217+
$RELEASE_NOTES
218+
219+
Git branch for the release:
220+
221+
https://github.com/apache/pekko/tree/v$RC_VERSION
222+
Git commit ID: $COMMIT_SHA
223+
224+
Please download, verify, and test.
225+
226+
We have also staged jars in the Apache Nexus Repository. These were built with the same code
227+
as appears in this Source Release Candidate. We would appreciate if users could test with these too.
228+
If anyone finds any serious problems with these jars, please also notify us on this thread.
229+
230+
https://repository.apache.org/content/groups/staging/org/apache/pekko/
231+
232+
You can add this resolver to sbt with 'resolvers += Resolver.ApacheMavenStagingRepo'
233+
234+
The VOTE will pass if we have more positive votes than negative votes
235+
and there must be a minimum of 3 approvals from Pekko PMC members.
236+
Anyone voting in favour of the release, could you please provide a list of the checks you have done?
237+
The vote will be left open until <insert date/time here>.
238+
239+
[ ] +1 approve
240+
[ ] +0 no opinion
241+
[ ] -1 disapprove with the reason
242+
243+
To learn more about Apache Pekko, please see https://pekko.apache.org/
244+
245+
Checklist for reference:
246+
247+
[ ] Download links are valid.
248+
[ ] Checksums and signatures.
249+
[ ] LICENSE/NOTICE files exist
250+
[ ] No unexpected binary files
251+
[ ] All source files have ASF headers
252+
[ ] Can compile from source
253+
[ ] Can verify the binary build
254+
255+
To compile from the source, please refer to:
256+
257+
https://github.com/apache/pekko/blob/main/README.md#building-from-source
258+
259+
To verify the binary build, please refer to:
260+
261+
https://github.com/apache/pekko-site/wiki/Pekko-Release-Process#verifying-the-binary-build
262+
263+
Some notes about verifying downloads can be found at:
264+
265+
https://pekko.apache.org/download.html#verifying-downloads
266+
267+
You can vote on ATR at https://release-test.apache.org/vote/pekko/$VERSION
268+
or manually by replying to this email.
269+
270+
271+
Thanks,
272+
273+
$SENDER (Apache Pekko PMC member)
274+
EOF
275+
env:
276+
REF: ${{ github.ref_name }}
277+
COMMIT_SHA: ${{ github.sha }}
278+
ACTOR: ${{ github.actor }}

0 commit comments

Comments
 (0)