From 12869a89d5b12dc07cab7595e6c8091dfe54ce2a Mon Sep 17 00:00:00 2001 From: Scott Moser Date: Wed, 9 Oct 2024 18:24:28 -0400 Subject: [PATCH] python/multi-version batch 13 (#30471) Convert packages to python multi-version. This is part of a series of programatic changes to add the ability to support python packages for multiple python versions. --- py3-awslambdaric.yaml | 68 +++++++++++++++++----- py3-babel.yaml | 114 +++++++++++++++++++++++++++---------- py3-cli-helpers.yaml | 69 +++++++++++++++++------ py3-docker.yaml | 71 +++++++++++++++++------ py3-gcloud-aio-auth.yaml | 93 +++++++++++++++++++++--------- py3-glom.yaml | 119 +++++++++++++++++++++++++++++---------- py3-jedi.yaml | 67 +++++++++++++++++----- py3-knack.yaml | 70 +++++++++++++++++------ py3-libclang.yaml | 63 ++++++++++++++++----- py3-lxml.yaml | 65 ++++++++++++++++----- py3-msal-extensions.yaml | 66 +++++++++++++++++----- py3-mwoauth.yaml | 76 ++++++++++++++++++------- py3-pickleshare.yaml | 66 +++++++++++++++++----- py3-rdflib.yaml | 108 ++++++++++++++++++++++++++++------- py3-stack-data.yaml | 70 +++++++++++++++++------ py3-testtools.yaml | 69 ++++++++++++++++++----- py3-twython.yaml | 68 +++++++++++++++++----- 17 files changed, 1013 insertions(+), 309 deletions(-) diff --git a/py3-awslambdaric.yaml b/py3-awslambdaric.yaml index 6d2eb23121..1418197fa2 100644 --- a/py3-awslambdaric.yaml +++ b/py3-awslambdaric.yaml @@ -1,30 +1,38 @@ package: name: py3-awslambdaric version: 2.2.1 - epoch: 1 + epoch: 2 description: AWS Lambda Runtime Interface Client for Python copyright: - license: Apache-2.0 dependencies: - runtime: - - python-3.12 + provider-priority: 0 + +vars: + pypi-package: awslambdaric + import: awslambdaric + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: + - autoconf + - automake - aws-crt-cpp-dev - - build-base - - busybox - - ca-certificates-bundle - cmake + - libtool - make - openssf-compiler-options - openssl-dev - - py3-gpep517 - - py3-setuptools - - py3-wheel - - python3-dev - - wolfi-base + - py3-supported-build-base-dev + - py3-supported-gpep517 pipeline: - uses: git-checkout @@ -33,10 +41,42 @@ pipeline: tag: ${{package.version}} expected-commit: 2fe3ecab9c184667a9633095dded480c4ca9c147 - - name: make build - runs: make build +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-babel.yaml b/py3-babel.yaml index 884ab103c5..44a4588ec4 100644 --- a/py3-babel.yaml +++ b/py3-babel.yaml @@ -1,23 +1,29 @@ package: name: py3-babel version: 2.16.0 - epoch: 0 + epoch: 1 description: Python3 i18n tool copyright: - license: BSD-3-Clause dependencies: - runtime: - - python3 + provider-priority: 0 + +vars: + pypi-package: babel + import: babel + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: fetch @@ -25,33 +31,81 @@ pipeline: uri: https://files.pythonhosted.org/packages/source/B/Babel/babel-${{package.version}}.tar.gz expected-sha256: d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316 - - name: Python Build - runs: python setup.py build +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - name: move usr/bin executables for -bin + runs: | + mkdir -p ./cleanup/${{range.key}}/ + mv ${{targets.contextdir}}/usr/bin ./cleanup/${{range.key}}/ + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - name: Python Install - runs: python setup.py install --prefix=/usr --root="${{targets.destdir}}" + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}}-bin + description: Executable binaries for ${{vars.pypi-package}} installed for python${{range.key}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + - py3-${{vars.pypi-package}}-bin + runtime: + - py${{range.key}}-${{vars.pypi-package}} + pipeline: + - runs: | + mkdir -p ${{targets.contextdir}}/usr/ + mv ./cleanup/${{range.key}}/bin ${{targets.contextdir}}/usr/ + test: + environment: + contents: + packages: + - apk-tools + pipeline: + - runs: | + apk info -L py${{range.key}}-${{vars.pypi-package}}-bin > "pkg.list" + echo "Please write a test for these:" + grep usr/bin/ pkg.list > bins.list + sed 's,^,> ,' bins.list - - uses: strip + while read line; do + echo == /$line == + /$line --help && echo exited 0 || echo "exited $?" + done < bins.list -update: - enabled: true - shared: true - release-monitor: - identifier: 11984 + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} - runs: | - LIBRARY="babel" - IMPORT_STATEMENT="import babel" - - if ! python -c "$IMPORT_STATEMENT"; then - echo "Failed to import library '$LIBRARY'." - python -c "$IMPORT_STATEMENT" 2>&1 - exit 1 - else - echo "Library '$LIBRARY' is installed and can be imported successfully." - exit 0 - fi pybabel --version pybabel --help + +update: + enabled: true + shared: true + release-monitor: + identifier: 11984 diff --git a/py3-cli-helpers.yaml b/py3-cli-helpers.yaml index 6e80c5835c..9739a2bb30 100644 --- a/py3-cli-helpers.yaml +++ b/py3-cli-helpers.yaml @@ -1,26 +1,29 @@ -# Generated from https://pypi.org/project/cli-helpers/ package: name: py3-cli-helpers version: 2.3.1 - epoch: 0 + epoch: 1 description: Helpers for building command-line apps copyright: - license: BSD-3-Clause dependencies: - runtime: - - py3-configobj - - py3-tabulate - - python3 + provider-priority: 0 + +vars: + pypi-package: cli-helpers + import: cli_helpers + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -29,13 +32,45 @@ pipeline: tag: v${{package.version}} expected-commit: 75e1b3af90c06f0138cd70bb2a4df39eed372d74 - - name: Python Build - runs: python setup.py build +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-configobj + - py${{range.key}}-tabulate + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - name: Python Install - runs: python setup.py install --prefix=/usr --root="${{targets.destdir}}" + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-docker.yaml b/py3-docker.yaml index d633dfdfb6..e6b56ce5aa 100644 --- a/py3-docker.yaml +++ b/py3-docker.yaml @@ -1,28 +1,31 @@ -# Generated from https://pypi.org/project/docker/ package: name: py3-docker version: 7.1.0 - epoch: 1 + epoch: 2 description: A Python library for the Docker Engine API. copyright: - license: Apache-2.0 dependencies: - runtime: - - py3-packaging - - py3-requests - - py3-urllib3 - - py3-websocket-client + provider-priority: 0 + +vars: + pypi-package: docker + import: docker + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - wolfi-base - environment: - # This is needed to work around the error "ValueError: ZIP does not support timestamps before 1980" - SOURCE_DATE_EPOCH: 315532800 + - py3-supported-build-base + - py3-supported-hatch-vcs + - py3-supported-hatchling pipeline: - uses: git-checkout @@ -31,13 +34,47 @@ pipeline: repository: https://github.com/docker/docker-py tag: ${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-packaging + - py${{range.key}}-requests + - py${{range.key}}-urllib3 + - py${{range.key}}-websocket-client + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - uses: strip + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} - uses: python/import with: imports: | diff --git a/py3-gcloud-aio-auth.yaml b/py3-gcloud-aio-auth.yaml index cb852c76ea..5bc5ab1d4f 100644 --- a/py3-gcloud-aio-auth.yaml +++ b/py3-gcloud-aio-auth.yaml @@ -1,32 +1,33 @@ -# Generated from https://pypi.org/project/gcloud-aio-auth/ package: name: py3-gcloud-aio-auth version: 5.3.2 - epoch: 1 + epoch: 2 description: Python Client for Google Cloud Auth copyright: - license: MIT dependencies: - runtime: - - py3-aiohttp - - py3-backoff - - py3-chardet - - py3-cryptography - - py3-pyjwt + provider-priority: 0 + +vars: + pypi-package: gcloud-aio-auth + import: gcloud.aio.auth + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - poetry - - py3-gpep517 - - py3-pip - - py3-setuptools - - py3-wheel - - python3 - - wolfi-base + - py3-supported-build-base + - py3-supported-gpep517 + - py3-supported-pip + - py3-supported-poetry pipeline: - uses: git-checkout @@ -35,25 +36,61 @@ pipeline: repository: https://github.com/talkiq/gcloud-aio tag: auth-${{package.version}} - - name: remove py.typed to avoid conflict with py3-gcloud-aio-* - runs: | - rm auth/gcloud/py.typed auth/gcloud/aio/py.typed - - - uses: py/pip-build-install - working-directory: auth +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-aiohttp + - py${{range.key}}-backoff + - py${{range.key}}-chardet + - py${{range.key}}-cryptography + - py${{range.key}}-pyjwt + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + working-directory: auth + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + environment: + contents: + packages: + - openssl-provider-legacy - - uses: strip + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: - environment: - contents: - packages: - - openssl-provider-legacy # needed for 'from gcloud.aio import auth' pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} - uses: python/import with: imports: | from gcloud.aio import auth + environment: + contents: + packages: + - openssl-provider-legacy update: enabled: true diff --git a/py3-glom.yaml b/py3-glom.yaml index 2d57a76460..49deb025c1 100644 --- a/py3-glom.yaml +++ b/py3-glom.yaml @@ -1,28 +1,31 @@ package: name: py3-glom version: 23.5.0 - epoch: 1 - description: "Python's nested data operator (and CLI), for all your declarative restructuring needs. Got data? Glom it!" + epoch: 2 + description: Python's nested data operator (and CLI), for all your declarative restructuring needs. Got data? Glom it! copyright: - license: BSD-3-Clause dependencies: - runtime: - - py3-attrs - - py3-boltons - - py3-face - - python3 + provider-priority: 0 + +vars: + pypi-package: glom + import: glom + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - busybox - - ca-certificates-bundle - - py3-gpep517 - - py3-importlib-metadata - - py3-setuptools - - py3-wheel - - python3 - - wolfi-base + - py3-supported-build-base + - py3-supported-gpep517 + - py3-supported-importlib-metadata pipeline: - uses: fetch @@ -30,25 +33,81 @@ pipeline: uri: https://files.pythonhosted.org/packages/source/g/glom/glom-${{package.version}}.tar.gz expected-sha256: 06af5e3486aacc59382ba34e53ebeabd7a9345d78f7dbcbee26f03baa4b83bac - - runs: | - python3 -m gpep517 build-wheel \ - --wheel-dir dist \ - --output-fd 3 3>&1 >&2 - python3 -m installer \ - -d "${{targets.destdir}}" \ - dist/glom-${{package.version}}-*.whl +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + runtime: + - py${{range.key}}-attrs + - py${{range.key}}-boltons + - py${{range.key}}-face + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - name: move usr/bin executables for -bin + runs: | + mkdir -p ./cleanup/${{range.key}}/ + mv ${{targets.contextdir}}/usr/bin ./cleanup/${{range.key}}/ + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - uses: strip + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}}-bin + description: Executable binaries for ${{vars.pypi-package}} installed for python${{range.key}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + - py3-${{vars.pypi-package}}-bin + runtime: + - py${{range.key}}-${{vars.pypi-package}} + pipeline: + - runs: | + mkdir -p ${{targets.contextdir}}/usr/ + mv ./cleanup/${{range.key}}/bin ${{targets.contextdir}}/usr/ + test: + environment: + contents: + packages: + - apk-tools + pipeline: + - runs: | + apk info -L py${{range.key}}-${{vars.pypi-package}}-bin > "pkg.list" + echo "Please write a test for these:" + grep usr/bin/ pkg.list > bins.list + sed 's,^,> ,' bins.list -update: - enabled: true - release-monitor: - identifier: 120576 + while read line; do + echo == /$line == + /$line --help && echo exited 0 || echo "exited $?" + done < bins.list + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: - uses: python/import with: - import: glom - runs: | - glom --help + imports: | + import ${{vars.import}} + +update: + enabled: true + release-monitor: + identifier: 120576 diff --git a/py3-jedi.yaml b/py3-jedi.yaml index 857b6b1342..ec9d20e963 100644 --- a/py3-jedi.yaml +++ b/py3-jedi.yaml @@ -1,25 +1,29 @@ -# Generated from https://pypi.org/project/jedi/ package: name: py3-jedi version: 0.19.1 - epoch: 1 + epoch: 2 description: An autocompletion tool for Python that can be used for text editors. copyright: - license: MIT dependencies: - runtime: - - py3-parso - - python-3 + provider-priority: 0 + +vars: + pypi-package: jedi + import: jedi + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -27,13 +31,46 @@ pipeline: expected-commit: 4e175ca82bbd680cb90f462545c10a8b1c0b5f2e repository: https://github.com/davidhalter/jedi tag: v${{package.version}} + recurse-submodules: true - - runs: git submodule update --init +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-parso + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - name: Python Build - uses: python/build-wheel + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-knack.yaml b/py3-knack.yaml index ed69384bfa..3604099cfe 100644 --- a/py3-knack.yaml +++ b/py3-knack.yaml @@ -1,27 +1,29 @@ -# Generated from https://pypi.org/project/knack/ package: name: py3-knack version: 0.12.0 - epoch: 0 + epoch: 1 description: A Command-Line Interface framework copyright: - license: MIT dependencies: - runtime: - - py3-argcomplete - - py3-jmespath - - py3-packaging - - py3-pygments - - py3-pyyaml - - py3-tabulate + provider-priority: 0 + +vars: + pypi-package: knack + import: knack + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -30,13 +32,49 @@ pipeline: repository: https://github.com/microsoft/knack tag: v${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-argcomplete + - py${{range.key}}-jmespath + - py${{range.key}}-packaging + - py${{range.key}}-pygments + - py${{range.key}}-pyyaml + - py${{range.key}}-tabulate + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - uses: strip + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} - uses: python/import with: imports: | diff --git a/py3-libclang.yaml b/py3-libclang.yaml index a3ca8067a8..04d95db821 100644 --- a/py3-libclang.yaml +++ b/py3-libclang.yaml @@ -1,24 +1,29 @@ -# Generated from https://pypi.org/project/libclang/ package: name: py3-libclang version: 18.1.1 - epoch: 0 + epoch: 1 description: 'Clang Python Bindings, mirrored from the official LLVM repo: https://github.com/llvm/llvm-project/tree/main/clang/bindings/python, to make the installation process easier.' copyright: - license: Apache-2.0 dependencies: - runtime: - - python-3 + provider-priority: 0 + +vars: + pypi-package: libclang + import: clang + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -27,10 +32,42 @@ pipeline: repository: https://github.com/sighingnow/libclang tag: llvm-${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-lxml.yaml b/py3-lxml.yaml index da53efc10a..08b11c02c8 100644 --- a/py3-lxml.yaml +++ b/py3-lxml.yaml @@ -1,28 +1,34 @@ -# Generated from https://pypi.org/project/lxml/ package: name: py3-lxml version: 5.3.0 - epoch: 0 + epoch: 1 description: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API. copyright: - license: BSD-3-Clause dependencies: - runtime: - - python3 + provider-priority: 0 + +vars: + pypi-package: lxml + import: lxml + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - cython - gcc - libxml2-dev - libxslt-dev - - py3-setuptools - - python3-dev - - wolfi-base + - py3-supported-build-base-dev + - py3-supported-cython pipeline: - uses: git-checkout @@ -31,13 +37,42 @@ pipeline: repository: https://github.com/lxml/lxml tag: lxml-${{package.version}} - - name: Python Build - runs: python setup.py build --with-cython +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - name: Python Install - runs: python setup.py install --prefix=/usr --root="${{targets.destdir}}" + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-msal-extensions.yaml b/py3-msal-extensions.yaml index 1cb87fa274..c0fcd0ce78 100644 --- a/py3-msal-extensions.yaml +++ b/py3-msal-extensions.yaml @@ -1,25 +1,29 @@ -# Generated from https://pypi.org/project/msal-extensions/ package: name: py3-msal-extensions version: 1.2.0 - epoch: 0 + epoch: 1 description: Microsoft Authentication Library extensions (MSAL EX) provides a persistence API that can save your data on disk, encrypted on Windows, macOS and Linux. Concurrent data access will be coordinated by a file lock mechanism. copyright: - license: MIT dependencies: - runtime: - - py3-msal - - py3-pathlib2 - - py3-portalocker - - py3-packaging + provider-priority: 0 + +vars: + pypi-package: msal-extensions + import: msal_extensions + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - wolfi-base + - py3-supported-build-base pipeline: - uses: fetch @@ -27,13 +31,47 @@ pipeline: expected-sha256: 6f41b320bfd2933d631a215c91ca0dd3e67d84bd1a2f50ce917d5874ec646bef uri: https://files.pythonhosted.org/packages/source/m/msal-extensions/msal_extensions-${{package.version}}.tar.gz - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-msal + - py${{range.key}}-pathlib2 + - py${{range.key}}-portalocker + - py${{range.key}}-packaging + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - uses: strip + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} - uses: python/import with: imports: | diff --git a/py3-mwoauth.yaml b/py3-mwoauth.yaml index 14f51975ff..65834a18ce 100644 --- a/py3-mwoauth.yaml +++ b/py3-mwoauth.yaml @@ -1,33 +1,32 @@ -# Generated from https://pypi.org/project/mwoauth/ package: name: py3-mwoauth # Upstream released v0.4.0 on PyPI, but no source tarball was uploaded. Also repository does not provide neither tags nor releases for 0.4.0. # TODO: Use semver and enable `update`, once the issue is resolved: https://github.com/mediawiki-utilities/python-mwoauth/issues/50 version: 0.0_git20231018 - epoch: 0 + epoch: 1 description: A generic MediaWiki OAuth handshake helper. copyright: - license: MIT dependencies: - runtime: - - py3-pyjwt - - py3-oauthlib - - py3-requests - - py3-requests-oauthlib - - python-3 + provider-priority: 0 + +vars: + commit: 2cb6b7107e5fb80353a390c9ff4b74566ced679a + pypi-package: mwoauth + import: mwoauth + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base - -vars: - commit: 2cb6b7107e5fb80353a390c9ff4b74566ced679a + - py3-supported-build-base pipeline: - uses: fetch @@ -36,10 +35,47 @@ pipeline: expected-sha256: de31a42aae05d86fb8d02c0523556281a46da364f19c1b0d4386eb8a14b4b8f5 strip-components: 1 - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-pyjwt + - py${{range.key}}-oauthlib + - py${{range.key}}-requests + - py${{range.key}}-requests-oauthlib + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: false diff --git a/py3-pickleshare.yaml b/py3-pickleshare.yaml index 0e07dcddfe..e73a689483 100644 --- a/py3-pickleshare.yaml +++ b/py3-pickleshare.yaml @@ -1,25 +1,29 @@ -# Generated from https://pypi.org/project/pickleshare/ package: name: py3-pickleshare version: 0.7.5 - epoch: 1 + epoch: 2 description: Tiny 'shelve'-like database with concurrency support copyright: - license: MIT dependencies: - runtime: - - py3-pathlib2 - - python-3 + provider-priority: 0 + +vars: + pypi-package: pickleshare + import: pickleshare + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -28,10 +32,44 @@ pipeline: repository: https://github.com/pickleshare/pickleshare tag: ${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-pathlib2 + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-rdflib.yaml b/py3-rdflib.yaml index a264e2b4d9..1e78b67933 100644 --- a/py3-rdflib.yaml +++ b/py3-rdflib.yaml @@ -1,26 +1,30 @@ -# Generated from https://pypi.org/project/rdflib/ package: name: py3-rdflib version: 7.0.0 - epoch: 1 + epoch: 2 description: RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information. copyright: - license: BSD-3-Clause dependencies: - runtime: - - py3-isodate - - py3-pyparsing - - python-3 + provider-priority: 0 + +vars: + pypi-package: rdflib + import: rdflib + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base + - py3-supported-poetry pipeline: - uses: git-checkout @@ -29,20 +33,84 @@ pipeline: tag: ${{package.version}} expected-commit: 708aecdd7c5c771fb90937e0966ebe20dba66ea2 - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + runtime: + - py${{range.key}}-isodate + - py${{range.key}}-pyparsing + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - name: move usr/bin executables for -bin + runs: | + mkdir -p ./cleanup/${{range.key}}/ + mv ${{targets.contextdir}}/usr/bin ./cleanup/${{range.key}}/ + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} - - uses: strip + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}}-bin + description: Executable binaries for ${{vars.pypi-package}} installed for python${{range.key}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + - py3-${{vars.pypi-package}}-bin + runtime: + - py${{range.key}}-${{vars.pypi-package}} + pipeline: + - runs: | + mkdir -p ${{targets.contextdir}}/usr/ + mv ./cleanup/${{range.key}}/bin ${{targets.contextdir}}/usr/ + test: + environment: + contents: + packages: + - apk-tools + pipeline: + - runs: | + apk info -L py${{range.key}}-${{vars.pypi-package}}-bin > "pkg.list" + echo "Please write a test for these:" + grep usr/bin/ pkg.list > bins.list + sed 's,^,> ,' bins.list -update: - enabled: true - github: - identifier: RDFLib/rdflib + while read line; do + echo == /$line == + /$line --help && echo exited 0 || echo "exited $?" + done < bins.list + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} test: pipeline: - # AUTOGENERATED + - uses: python/import + with: + imports: | + import ${{vars.import}} - runs: | rdfgraphisomorphism --help rdfpipe --version rdfpipe --help + +update: + enabled: true + github: + identifier: RDFLib/rdflib diff --git a/py3-stack-data.yaml b/py3-stack-data.yaml index 86b56118f4..79cc2c7d75 100644 --- a/py3-stack-data.yaml +++ b/py3-stack-data.yaml @@ -1,27 +1,29 @@ -# Generated from https://pypi.org/project/stack-data/ package: name: py3-stack-data version: 0.6.3 - epoch: 1 + epoch: 2 description: Extract data from python stack frames and tracebacks for informative displays copyright: - license: MIT dependencies: - runtime: - - py3-executing - - py3-asttokens - - py3-pure-eval - - python-3 + provider-priority: 0 + +vars: + pypi-package: stack-data + import: stack_data + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -30,10 +32,46 @@ pipeline: repository: https://github.com/alexmojaki/stack_data tag: v${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-executing + - py${{range.key}}-asttokens + - py${{range.key}}-pure-eval + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-testtools.yaml b/py3-testtools.yaml index e562f48be0..1c3636e51b 100644 --- a/py3-testtools.yaml +++ b/py3-testtools.yaml @@ -1,26 +1,31 @@ package: name: py3-testtools version: 2.7.2 - epoch: 0 + epoch: 1 description: Extensions to the Python standard library unit testing framework copyright: - license: MIT dependencies: - runtime: - - py3-setuptools - - python-3 + provider-priority: 0 + +vars: + pypi-package: testtools + import: testtools + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - python-3 - - wolfi-base - environment: - # This is needed to work around the error "ValueError: ZIP does not support timestamps before 1980" - SOURCE_DATE_EPOCH: 315532800 + - py3-supported-build-base + - py3-supported-hatch-vcs + - py3-supported-hatchling pipeline: - uses: git-checkout @@ -29,10 +34,44 @@ pipeline: repository: https://github.com/testing-cabal/testtools tag: ${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-setuptools + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true diff --git a/py3-twython.yaml b/py3-twython.yaml index 4711eb3efe..925fe688a5 100644 --- a/py3-twython.yaml +++ b/py3-twython.yaml @@ -1,26 +1,29 @@ -# Generated from https://pypi.org/project/twython/ package: name: py3-twython version: 3.9.1 - epoch: 0 + epoch: 1 description: Actively maintained, pure Python wrapper for the Twitter API. Supports both normal and streaming Twitter APIs copyright: - license: MIT dependencies: - runtime: - - py3-requests - - py3-requests-oauthlib - - python-3 + provider-priority: 0 + +vars: + pypi-package: twython + import: twython + +data: + - name: py-versions + items: + 3.10: '310' + 3.11: '311' + 3.12: '312' + 3.13: '300' environment: contents: packages: - - build-base - - busybox - - ca-certificates-bundle - - py3-setuptools - - python-3 - - wolfi-base + - py3-supported-build-base pipeline: - uses: git-checkout @@ -29,10 +32,45 @@ pipeline: expected-commit: 0c405604285364457f3c309969f11ba68163bd05 tag: v${{package.version}} - - name: Python Build - uses: python/build-wheel +subpackages: + - range: py-versions + name: py${{range.key}}-${{vars.pypi-package}} + description: python${{range.key}} version of ${{vars.pypi-package}} + dependencies: + provider-priority: ${{range.value}} + provides: + - py3-${{vars.pypi-package}} + runtime: + - py${{range.key}}-requests + - py${{range.key}}-requests-oauthlib + pipeline: + - uses: py/pip-build-install + with: + python: python${{range.key}} + - uses: strip + test: + pipeline: + - uses: python/import + with: + python: python${{range.key}} + imports: | + import ${{vars.import}} + + - name: py3-supported-${{vars.pypi-package}} + description: meta package providing ${{vars.pypi-package}} for supported python versions. + dependencies: + runtime: + - py3.10-${{vars.pypi-package}} + - py3.11-${{vars.pypi-package}} + - py3.12-${{vars.pypi-package}} + - py3.13-${{vars.pypi-package}} - - uses: strip +test: + pipeline: + - uses: python/import + with: + imports: | + import ${{vars.import}} update: enabled: true