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]