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

sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git


The following commit(s) were added to refs/heads/main by this push:
     new 50d5876  Rename distribution platforms to match their official names
50d5876 is described below

commit 50d58769082da45ffa325a5170fc668ff743aa22
Author: Sean B. Palmer <[email protected]>
AuthorDate: Fri Aug 8 17:07:55 2025 +0100

    Rename distribution platforms to match their official names
---
 atr/models/sql.py                               | 12 ++---
 atr/routes/distribution.py                      | 11 ++---
 migrations/versions/0022_2025.08.08_d7b4edf0.py | 61 +++++++++++++++++++++++++
 3 files changed, 71 insertions(+), 13 deletions(-)

diff --git a/atr/models/sql.py b/atr/models/sql.py
index f6d32d0..2bd71a3 100644
--- a/atr/models/sql.py
+++ b/atr/models/sql.py
@@ -94,14 +94,14 @@ class CheckResultStatusIgnore(str, enum.Enum):
 
 
 class DistributionPlatform(enum.Enum):
-    ARTIFACTHUB = DistributionPlatformValue(
-        name="ArtifactHub (Helm)",
+    ARTIFACT_HUB = DistributionPlatformValue(
+        name="Artifact Hub",
         
template_url="https://artifacthub.io/api/v1/packages/helm/{owner_namespace}/{package}/{version}";,
         
template_staging_url="https://staging.artifacthub.io/api/v1/packages/helm/{owner_namespace}/{package}/{version}";,
         requires_owner_namespace=True,
     )
-    DOCKER = DistributionPlatformValue(
-        name="Docker",
+    DOCKER_HUB = DistributionPlatformValue(
+        name="Docker Hub",
         
template_url="https://hub.docker.com/v2/namespaces/{owner_namespace}/repositories/{package}/tags/{version}";,
         # TODO: Need to use staging tags?
         # 
template_staging_url="https://hub.docker.com/v2/namespaces/{owner_namespace}/repositories/{package}/tags/{version}";,
@@ -833,9 +833,7 @@ class CheckResultIgnore(sqlmodel.SQLModel, table=True):
 class Distribution(sqlmodel.SQLModel, table=True):
     release_name: str = sqlmodel.Field(primary_key=True, index=True, 
foreign_key="release.name", ondelete="CASCADE")
     release: Release = sqlmodel.Relationship(back_populates="distributions")
-    platform: DistributionPlatform = sqlmodel.Field(
-        primary_key=True, index=True, default=DistributionPlatform.ARTIFACTHUB
-    )
+    platform: DistributionPlatform = sqlmodel.Field(primary_key=True, 
index=True)
     owner_namespace: str = sqlmodel.Field(primary_key=True, index=True, 
default="")
     package: str = sqlmodel.Field(primary_key=True, index=True)
     version: str = sqlmodel.Field(primary_key=True, index=True)
diff --git a/atr/routes/distribution.py b/atr/routes/distribution.py
index 9e5f7dc..5560f17 100644
--- a/atr/routes/distribution.py
+++ b/atr/routes/distribution.py
@@ -350,11 +350,11 @@ def _distribution_upload_date(  # noqa: C901
     version: str,
 ) -> datetime.datetime | None:
     match platform:
-        case sql.DistributionPlatform.ARTIFACTHUB:
+        case sql.DistributionPlatform.ARTIFACT_HUB:
             if not (versions := 
ArtifactHubResponse.model_validate(data).available_versions):
                 return None
             return datetime.datetime.fromtimestamp(versions[0].ts, 
tz=datetime.UTC)
-        case sql.DistributionPlatform.DOCKER:
+        case sql.DistributionPlatform.DOCKER_HUB:
             if not (pushed_at := 
DockerResponse.model_validate(data).tag_last_pushed):
                 return None
             return datetime.datetime.fromisoformat(pushed_at.rstrip("Z"))
@@ -393,7 +393,7 @@ def _distribution_web_url(  # noqa: C901
     version: str,
 ) -> str | None:
     match platform:
-        case sql.DistributionPlatform.ARTIFACTHUB:
+        case sql.DistributionPlatform.ARTIFACT_HUB:
             ah = ArtifactHubResponse.model_validate(data)
             repo_name = ah.repository.name if ah.repository else None
             pkg_name = ah.name
@@ -408,10 +408,9 @@ def _distribution_web_url(  # noqa: C901
                 if link.url:
                     return link.url
             return None
-        case sql.DistributionPlatform.DOCKER:
+        case sql.DistributionPlatform.DOCKER_HUB:
             # The best we can do on Docker Hub is:
             # f"https://hub.docker.com/_/{package}";
-            # TODO: Rename to DOCKER_HUB and "Docker Hub"
             return None
         case sql.DistributionPlatform.GITHUB:
             gh = GitHubResponse.model_validate(data)
@@ -705,7 +704,7 @@ async def _release_validated_and_committee_and_template(
     if staging is False:
         return release, committee, dd.platform.value.template_url
 
-    supported = {sql.DistributionPlatform.ARTIFACTHUB, 
sql.DistributionPlatform.PYPI}
+    supported = {sql.DistributionPlatform.ARTIFACT_HUB, 
sql.DistributionPlatform.PYPI}
     if dd.platform not in supported:
         div = htm.Block(htpy.div(".alert.alert-danger"))
         div.p["Staging is currently supported only for ArtifactHub and PyPI."]
diff --git a/migrations/versions/0022_2025.08.08_d7b4edf0.py 
b/migrations/versions/0022_2025.08.08_d7b4edf0.py
new file mode 100644
index 0000000..ddc2a3e
--- /dev/null
+++ b/migrations/versions/0022_2025.08.08_d7b4edf0.py
@@ -0,0 +1,61 @@
+"""Rename DistributionPlatform enum fields for precision
+
+Revision ID: 0022_2025.08.08_d7b4edf0
+Revises: 0021_2025.08.08_3e1625a6
+Create Date: 2025-08-08 16:03:59.033106+00:00
+"""
+
+from collections.abc import Sequence
+
+import sqlalchemy as sa
+from alembic import op
+
+# Revision identifiers, used by Alembic
+revision: str = "0022_2025.08.08_d7b4edf0"
+down_revision: str | None = "0021_2025.08.08_3e1625a6"
+branch_labels: str | Sequence[str] | None = None
+depends_on: str | Sequence[str] | None = None
+
+
+def upgrade() -> None:
+    op.execute("UPDATE distribution SET platform='ARTIFACT_HUB' WHERE 
platform='ARTIFACTHUB'")
+    op.execute("UPDATE distribution SET platform='DOCKER_HUB' WHERE 
platform='DOCKER'")
+
+    with op.batch_alter_table("distribution", schema=None) as batch_op:
+        batch_op.alter_column(
+            "platform",
+            existing_type=sa.VARCHAR(length=11),
+            type_=sa.Enum(
+                "ARTIFACT_HUB",
+                "DOCKER_HUB",
+                "GITHUB",
+                "MAVEN",
+                "NPM",
+                "NPM_SCOPED",
+                "PYPI",
+                name="distributionplatform",
+            ),
+            existing_nullable=False,
+        )
+
+
+def downgrade() -> None:
+    with op.batch_alter_table("distribution", schema=None) as batch_op:
+        batch_op.alter_column(
+            "platform",
+            existing_type=sa.Enum(
+                "ARTIFACT_HUB",
+                "DOCKER_HUB",
+                "GITHUB",
+                "MAVEN",
+                "NPM",
+                "NPM_SCOPED",
+                "PYPI",
+                name="distributionplatform",
+            ),
+            type_=sa.VARCHAR(length=11),
+            existing_nullable=False,
+        )
+
+    op.execute("UPDATE distribution SET platform='ARTIFACTHUB' WHERE 
platform='ARTIFACT_HUB'")
+    op.execute("UPDATE distribution SET platform='DOCKER' WHERE 
platform='DOCKER_HUB'")


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to