From ea2bc9a12c3ecf0f30b20b33752321f6421d258e Mon Sep 17 00:00:00 2001 From: "russell@unturf.com" Date: Tue, 16 Jun 2026 14:19:22 -0400 Subject: [PATCH] cap setuptools<77 in build-system, bump to v0.1.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pipeline #40344 (v0.1.1) failed at twine check with 'Metadata is missing required fields: Name, Version' — twine 5.x doesn't recognize Metadata-Version 2.4 wheels (it caps at 2.3). setuptools 77.0 (March 2025) bumped wheels to 2.4 for PEP 639 license-expression support. Capping the build env's setuptools at <77 keeps wheels on Metadata- Version 2.2 (verified locally — twine 5 PASSED). Long-term fix is Trusted Publishing OIDC, which lets us drop the twine<6 pin AND the setuptools cap. See the migration plan in our next commit / pipeline discussion. --- erldistpy/__init__.py | 2 +- pyproject.toml | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/erldistpy/__init__.py b/erldistpy/__init__.py index 17a408c..8c3d9fe 100644 --- a/erldistpy/__init__.py +++ b/erldistpy/__init__.py @@ -1,6 +1,6 @@ """erldistpy — native Python client for our Erlang distribution protocol.""" -__version__ = "0.1.1" +__version__ = "0.1.2" from erldistpy.channel import Channel, ChannelError, IncomingMessage from erldistpy.epmd import EpmdError, EpmdInfo, lookup diff --git a/pyproject.toml b/pyproject.toml index 42c1932..28bc421 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,10 +1,15 @@ [build-system] -requires = ["setuptools>=68", "wheel"] +# setuptools 77+ emits Metadata-Version 2.4 (PEP 639 license-expression). +# twine <6 caps at metadata 2.3 and rejects 2.4 wheels with "Metadata is +# missing required fields: Name, Version." Until we migrate the build +# runner to Trusted Publishing OIDC (which lets us use twine 6+), keep +# setuptools below 77 so the wheel stays metadata 2.3. +requires = ["setuptools>=68,<77", "wheel"] build-backend = "setuptools.build_meta" [project] name = "erldistpy" -version = "0.1.1" +version = "0.1.2" description = "Native Python client for Erlang distribution protocol — EPMD + v6 handshake + gen_server call(), no asyncio." readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.10"