Merge pull request #313 from webknjaz/maintenance/metadata-2.4
Some checks are pending
🏗️ / smoke-test (push) Waiting to run
🏗️ / build-and-push (push) Blocked by required conditions

This patch adds support for uploading dists with metadata v2.4 through bumping the transitive dependency `pkgutil` to v1.12 to enable support for validating metadata v2.4 in Twine. It also integrates a Maturin-based package into the smoke test in CI as a regression check.

Closes #312
Resolves #311
Resolves #310
This commit is contained in:
🇺🇦 Sviatoslav Sydorenko (Святослав Сидоренко) 2024-12-06 19:53:07 +01:00 committed by GitHub
commit f371c3d566
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 33 additions and 3 deletions

View file

@ -96,8 +96,31 @@ jobs:
readme = "README.md" readme = "README.md"
- name: Build the stub package sdist and wheel distributions - name: Build the stub package sdist and wheel distributions
run: python3 -m build run: python3 -m build
- name: Create the Rust package directory
run: mkdir -pv rust-example
- name: Initialize a Rust project
run: cargo init
working-directory: rust-example
- name: Populate the Rust package `pyproject.toml`
run: echo "$CONTENTS" > pyproject.toml
env:
CONTENTS: |
[build-system]
requires = [
"maturin ~=1.0",
]
build-backend = "maturin"
working-directory: rust-example
- name: Build the stub package sdist and wheel distributions
run: python3 -m build -o ../dist/
working-directory: rust-example
- name: Register the stub package in devpi - name: Register the stub package in devpi
run: twine register dist/*.tar.gz run: |
for dist in dist/*.tar.gz
do
echo "Registering ${dist}..."
twine register "${dist}"
done
env: env:
TWINE_USERNAME: ${{ env.devpi-username }} TWINE_USERNAME: ${{ env.devpi-username }}
TWINE_PASSWORD: ${{ env.devpi-password }} TWINE_PASSWORD: ${{ env.devpi-password }}

View file

@ -1,5 +1,10 @@
twine ~= 6.0 twine ~= 6.0
# NOTE: 1.12.0 and later enable support for metadata 2.4
# NOTE: This can be dropped once twine stops using pkginfo
# Ref: https://github.com/pypa/twine/pull/1180
pkginfo ~= 1.12.0
# NOTE: Used to detect an ambient OIDC credential for OIDC publishing, # NOTE: Used to detect an ambient OIDC credential for OIDC publishing,
# NOTE: as well as PEP 740 attestations. # NOTE: as well as PEP 740 attestations.
id ~= 1.0 id ~= 1.0

View file

@ -66,8 +66,10 @@ packaging==24.1
# -r runtime.in # -r runtime.in
# pypi-attestations # pypi-attestations
# twine # twine
pkginfo==1.10.0 pkginfo==1.12.0
# via twine # via
# -r runtime.in
# twine
platformdirs==4.2.2 platformdirs==4.2.2
# via sigstore # via sigstore
pyasn1==0.6.0 pyasn1==0.6.0