You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by sb...@apache.org on 2026/09/03 18:03:49 UTC
(tooling-trusted-releases) 01/02: Change user to users in incorrectly named mailing list addresses
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 2ff645f93097a874dba1f6cd54443314f896f740
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Thu Sep 3 16:57:10 2026 +0100
Change user to users in incorrectly named mailing list addresses
---
atr/util.py | 75 +++++++++++++++++++++++++++++++++++++++++++++++--
tests/unit/test_util.py | 14 +++++++++
2 files changed, 87 insertions(+), 2 deletions(-)
diff --git a/atr/util.py b/atr/util.py
index b17f9938..8638bfbd 100644
--- a/atr/util.py
+++ b/atr/util.py
@@ -113,6 +113,75 @@ PRIVATE_KEY_UPLOAD_WARNING: Final[str] = (
"immediately, remove it anywhere that it grants access, and generate a new key before signing releases."
)
USER_TESTS_ADDRESS: Final[str] = "user-tests@tooling.apache.org"
+USERS_LIST_COMMITTEES: Final[frozenset[str]] = frozenset(
+ {
+ "activemq",
+ "age",
+ "airavata",
+ "airflow",
+ "allura",
+ "artemis",
+ "asterixdb",
+ "burr",
+ "camel",
+ "causeway",
+ "cloudstack",
+ "cxf",
+ "daffodil",
+ "datasketches",
+ "deltaspike",
+ "directory",
+ "dolphinscheduler",
+ "druid",
+ "eventmesh",
+ "felix",
+ "flex",
+ "grails",
+ "groovy",
+ "hamilton",
+ "hop",
+ "httpd",
+ "hudi",
+ "jackrabbit",
+ "jena",
+ "kafka",
+ "kie",
+ "libcloud",
+ "linkis",
+ "maven",
+ "mina",
+ "myfaces",
+ "netbeans",
+ "nifi",
+ "openjpa",
+ "opennlp",
+ "openoffice",
+ "pdfbox",
+ "pekko",
+ "pinot",
+ "ponymail",
+ "pulsar",
+ "qpid",
+ "rocketmq",
+ "royale",
+ "seatunnel",
+ "sling",
+ "solr",
+ "spamassassin",
+ "streampipes",
+ "subversion",
+ "tapestry",
+ "tomcat",
+ "tomee",
+ "tooling",
+ "trafficserver",
+ "uniffle",
+ "unomi",
+ "wicket",
+ "ws",
+ "zeppelin",
+ }
+)
LISTS_APACHE_TIMEOUT: Final[aiohttp.ClientTimeout] = aiohttp.ClientTimeout(total=30, connect=10)
CAP_TIMEOUT: Final[aiohttp.ClientTimeout] = aiohttp.ClientTimeout(total=30, connect=10)
PROPAGATION_TIMEOUT: Final[aiohttp.ClientTimeout] = aiohttp.ClientTimeout(total=10, connect=5)
@@ -581,11 +650,12 @@ def configurable_recipients(action: sql.RecipientAction, committee_key: str, *,
# These don't depend on the sender or on ALPHA test addresses, so a stored
# default stays valid for whoever later sends the email.
if action == sql.RecipientAction.ANNOUNCE:
+ user_list_name = "users" if (committee_key in USERS_LIST_COMMITTEES) else "user"
return [
"announce@apache.org",
f"announce@{committee_key}.apache.org",
f"dev@{committee_key}.apache.org",
- f"user@{committee_key}.apache.org",
+ f"{user_list_name}@{committee_key}.apache.org",
f"private@{committee_key}.apache.org",
]
if is_podling:
@@ -1248,11 +1318,12 @@ def permitted_announce_recipients(
return [USER_TESTS_ADDRESS, f"{asf_uid}@apache.org"]
recipients = ["announce@apache.org"]
if committee_key is not None:
+ user_list_name = "users" if (committee_key in USERS_LIST_COMMITTEES) else "user"
recipients.extend(
[
f"announce@{committee_key}.apache.org",
f"dev@{committee_key}.apache.org",
- f"user@{committee_key}.apache.org",
+ f"{user_list_name}@{committee_key}.apache.org",
f"private@{committee_key}.apache.org",
]
)
diff --git a/tests/unit/test_util.py b/tests/unit/test_util.py
index 02ac2112..dc3bdc50 100644
--- a/tests/unit/test_util.py
+++ b/tests/unit/test_util.py
@@ -19,15 +19,29 @@ import json
import os
import pathlib
import stat
+import types
import unittest.mock as mock
import aiohttp
import pytest
import atr.models.safe as safe
+import atr.models.sql as sql
import atr.util as util
+def test_announce_recipients_use_users_list_for_maven(monkeypatch: pytest.MonkeyPatch):
+ monkeypatch.setattr("atr.config.get", lambda: types.SimpleNamespace(ATR_STATUS="PRODUCTION"))
+
+ configurable = util.configurable_recipients(sql.RecipientAction.ANNOUNCE, "maven", is_podling=False)
+ permitted = util.permitted_announce_recipients("testuser", "maven")
+
+ assert "users@maven.apache.org" in configurable
+ assert "users@maven.apache.org" in permitted
+ assert "user@maven.apache.org" not in configurable
+ assert "user@maven.apache.org" not in permitted
+
+
def test_chmod_files_does_not_change_directory_permissions(tmp_path: pathlib.Path):
subdir = tmp_path / "subdir"
subdir.mkdir()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org