Skip to content

ci: keep the ATR email templates in .asf.yaml - #353

Merged
orthur2 merged 5 commits into
apache:mainfrom
orthur2:chore/atr-email-templates
Oct 8, 2026
Merged

orthur2 merged 5 commits into
apache:mainfrom
orthur2:chore/atr-email-templates

Conversation

@orthur2

@orthur2 orthur2 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Summary

This follows up the review of #338 and is part of #352. It moves the ATR email templates into .asf.yaml, so changes to them go through review here and atr_sync applies them to ATR on merge. I split it into two commits so they can be reviewed separately.

The first commit adds the vote subject and template. The template carries the candidate page, the ATR revision, the commit, the manifest with checksums, the changelog at that commit, KEYS, and the fingerprint of the automated signing key. ATR uses the same template for the Incubator round, so general@ gets these details too, and the follow-up reply there only needs the PPMC result and the carried votes. Step 3 of the ATR guide now only lists what the release manager still adds, which is the RC in the subject, the RC tag and its signer, and the verification notes. It also says to edit the templates in .asf.yaml, because syncing overwrites changes made in ATR's settings. The template uses {{COMMIT}}, so it relies on the commit being set in ATR, which step 1 already asks for.

The second commit does the same for the announcement, which I also had to edit by hand for 0.7.3. It sends to dev@ with announce@apache.org in CC, sets the Downloads page in the project metadata, adds "Apache" to the subject, and uses the body we sent for 0.7.3 with ATR filling in the version and links. The disclaimer is written out because ATR's {{PODLING_DISCLAIMER}} currently renders "Apache Apache Asyncband".

At each commit the project block passes the asfyaml project schema, and every template variable is one ATR accepts for that field. The templates will first be used in the next release.

Comment thread .asf.yaml Outdated
min_hours: 72
vote_recipients:
to: dev@asyncband.apache.org
start_vote_subject: "[VOTE] Release Apache {{PROJECT_NAME}} {{VERSION}}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you add a link in the comments to the document for these vote templates?

We may need to know what properties can be interpolated and what templates are relevant.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
start_vote_subject: "[VOTE] Release Apache {{PROJECT_NAME}} {{VERSION}}"
start_vote_subject: "[VOTE] Release Apache Asyncband (Incubating) {{VERSION}}"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added comments linking the ATR docs for these templates. The docs don't actually list the variables, they only say each template field in the project settings shows which ones it accepts, so I also linked atr/construct.py where they're defined.

While reading the docs I noticed ATR recently added start_vote_template_url and announce_release_template_url (apache/tooling-trusted-releases#1704), which landed after I drafted this PR, so I missed them. They let the templates live as plain text files fetched from a URL. From the discussion there, the main use is letting PMCs with many projects share one set of templates, which doesn't really apply to us, and the subjects would still have to stay in .asf.yaml. So I kept them inline for now.

Comment thread .asf.yaml Outdated
Comment thread .asf.yaml Outdated
to: dev@asyncband.apache.org
# Vote email templates. See https://releases.apache.org/docs/project-configuration#vote.
# ATR lists the variables each template accepts next to the field in the project settings,
# and in https://github.com/apache/tooling-trusted-releases/blob/main/atr/construct.py.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's try to pin a commit of apache/tooling-trusted-releases to avoid 404 when the upstream make some refactorings.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I didn't think about that. I've pinned it to 13289acf, which is the version ATR is currently deployed from.

@orthur2

orthur2 commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

I also noticed ATR recently added a {{FIRST_ROUND_THREAD}} variable, which adds a link to the first round thread in the Incubator vote. I've added it to the vote template, so we don't need to post that link by hand anymore. The PPMC result and the carried votes still need a reply there.

@tisonkun tisonkun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! Let's try this setup out.

@orthur2
orthur2 merged commit c9dff9e into apache:main Oct 8, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants