From edeba8b6d37ba600cd04942ea92613809e3b2224 Mon Sep 17 00:00:00 2001 From: kaokab33 Date: Wed, 25 Feb 2026 06:22:43 +0200 Subject: [PATCH 1/2] Update purldb to support Python 3.13 - Add Python 3.10, 3.11, 3.12, 3.13 version classifiers in setup.cfg - Add python_requires >= 3.10 in setup.cfg - Update pypi-release workflow to use Python 3.13 - Update pypi-release-minecode-pipeline workflow to use Python 3.13 - Add CI test workflow to run tests across Python 3.10-3.13 All 633 existing tests pass on Python 3.13 with no new failures. Signed-off-by: kaokab33 --- .../pypi-release-minecode-pipeline.yml | 2 +- .github/workflows/pypi-release.yml | 2 +- .github/workflows/test-python-3.13.yml | 83 +++++++++++++++++++ setup.cfg | 5 ++ 4 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/test-python-3.13.yml diff --git a/.github/workflows/pypi-release-minecode-pipeline.yml b/.github/workflows/pypi-release-minecode-pipeline.yml index 7b1bd284..44135023 100644 --- a/.github/workflows/pypi-release-minecode-pipeline.yml +++ b/.github/workflows/pypi-release-minecode-pipeline.yml @@ -19,7 +19,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.11 + python-version: 3.13 - name: Install flot run: python -m pip install flot --user diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index 79f8ead9..f66042ca 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -28,7 +28,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: 3.12 + python-version: 3.13 - name: Install pypa/build and twine run: python -m pip install --user --upgrade build twine pkginfo diff --git a/.github/workflows/test-python-3.13.yml b/.github/workflows/test-python-3.13.yml new file mode 100644 index 00000000..317497b4 --- /dev/null +++ b/.github/workflows/test-python-3.13.yml @@ -0,0 +1,83 @@ +name: CI Tests + +on: + push: + branches: [main] + pull_request: + branches: [main] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: Python ${{ matrix.python-version }} - Tests + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + python-version: ["3.10", "3.11", "3.12", "3.13"] + + services: + postgres: + image: postgres:16 + env: + POSTGRES_DB: packagedb + POSTGRES_USER: packagedb + POSTGRES_PASSWORD: packagedb + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + env: + DJANGO_SETTINGS_MODULE: purldb_project.settings + DATABASE_URL: postgres://packagedb:packagedb@localhost:5432/packagedb + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + bzip2 \ + xz-utils \ + zlib1g \ + libxml2-dev \ + libxslt1-dev \ + libgomp1 \ + libsqlite3-0 \ + libgcrypt20 \ + libpopt0 \ + libzstd1 \ + git \ + universal-ctags \ + gettext \ + tar \ + unzip \ + zip \ + libsasl2-dev \ + libldap-dev \ + openssl + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + pip install -e .[dev] + + - name: Run purldb tests + run: | + pytest -vvs minecode packagedb purl2vcs purldb_project purldb_public_project \ + --ignore packagedb/tests/test_throttling.py \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 06ea0724..1f9613c5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,6 +19,10 @@ classifiers = Intended Audience :: Developers Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Programming Language :: Python :: 3.13 Topic :: Utilities keywords = @@ -34,6 +38,7 @@ keywords = packages = find: include_package_data = true zip_safe = false +python_requires = >=3.10 install_requires = aboutcode.pipeline >= 0.2.1 arrow >= 1.3.0 From af78ad1223621d4f6f1c961d7392d141cada24a0 Mon Sep 17 00:00:00 2001 From: kareem kaokab <93781327+kaokab33@users.noreply.github.com> Date: Sat, 7 Mar 2026 02:21:01 +0200 Subject: [PATCH 2/2] Delete .github/workflows/test-python-3.13.yml Signed-off-by: kaokab33 Signed-off-by: kaokb <93781327+kaokab33@users.noreply.github.com> --- .github/workflows/test-python-3.13.yml | 83 -------------------------- 1 file changed, 83 deletions(-) delete mode 100644 .github/workflows/test-python-3.13.yml diff --git a/.github/workflows/test-python-3.13.yml b/.github/workflows/test-python-3.13.yml deleted file mode 100644 index 317497b4..00000000 --- a/.github/workflows/test-python-3.13.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: CI Tests - -on: - push: - branches: [main] - pull_request: - branches: [main] - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - test: - name: Python ${{ matrix.python-version }} - Tests - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - python-version: ["3.10", "3.11", "3.12", "3.13"] - - services: - postgres: - image: postgres:16 - env: - POSTGRES_DB: packagedb - POSTGRES_USER: packagedb - POSTGRES_PASSWORD: packagedb - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - - env: - DJANGO_SETTINGS_MODULE: purldb_project.settings - DATABASE_URL: postgres://packagedb:packagedb@localhost:5432/packagedb - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Install system dependencies - run: | - sudo apt-get update - sudo apt-get install -y \ - bzip2 \ - xz-utils \ - zlib1g \ - libxml2-dev \ - libxslt1-dev \ - libgomp1 \ - libsqlite3-0 \ - libgcrypt20 \ - libpopt0 \ - libzstd1 \ - git \ - universal-ctags \ - gettext \ - tar \ - unzip \ - zip \ - libsasl2-dev \ - libldap-dev \ - openssl - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip setuptools wheel - pip install -e .[dev] - - - name: Run purldb tests - run: | - pytest -vvs minecode packagedb purl2vcs purldb_project purldb_public_project \ - --ignore packagedb/tests/test_throttling.py \ No newline at end of file