From 805a797094f36c7d66ff73f5fd259b826aa84ece Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Wed, 29 Oct 2025 10:45:41 +0200 Subject: [PATCH 1/4] Add Python 3.14, drop 3.8 and 3.9 --- .github/workflows/build.yml | 3 +-- CHANGES.rst | 6 ++++-- appveyor.yml | 3 +-- setup.py | 5 ++--- tox.ini | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc48b3c..4fdb793 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,12 +20,11 @@ jobs: strategy: matrix: python-version: - - "3.8" - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" steps: - name: Install OS dependencies diff --git a/CHANGES.rst b/CHANGES.rst index 54c7921..da0a97a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -9,9 +9,11 @@ Changes - Fix :func:`get_leaking_objects` with an ``objects`` argument to not ignore references from other sources. Closes `issue 82 `_. - Also fix ``get_leaking_objects([])`` causing an UnboudLocalError. + Also fix ``get_leaking_objects([])`` causing an UnboundLocalError. -- Drop support for Python 3.7. +- Add support for Python 3.14. + +- Drop support for Python 3.7, 3.8, and 3.9. 3.6.2 (2024-10-10) diff --git a/appveyor.yml b/appveyor.yml index a9758b6..e88f298 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,12 +4,11 @@ environment: matrix: # https://www.appveyor.com/docs/installed-software#python lists available # versions - - PYTHON: "C:\\Python38" - - PYTHON: "C:\\Python39" - PYTHON: "C:\\Python310" - PYTHON: "C:\\Python311" - PYTHON: "C:\\Python312" - PYTHON: "C:\\Python313" + - PYTHON: "C:\\Python314" init: - "echo %PYTHON%" diff --git a/setup.py b/setup.py index 1cfc2f1..583a53b 100755 --- a/setup.py +++ b/setup.py @@ -76,16 +76,15 @@ def build_images(doctests=()): 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', ], keywords='object graph visualization graphviz garbage collection', py_modules=['objgraph'], - python_requires=">=3.8", + python_requires=">=3.10", extras_require={ 'ipython': [ 'graphviz', # just for ipython support currently diff --git a/tox.ini b/tox.ini index 16134f2..99258a1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38, py39, py310, py311, py312, py313 +envlist = py310, py311, py312, py313, py314 [testenv] deps = From 0095c8e83d5d37471985b5bcf0b3a23570cfbf9d Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Wed, 29 Oct 2025 10:48:51 +0200 Subject: [PATCH 2/4] Drop Appveyor, add Windows builds to GHA --- .github/workflows/build.yml | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4fdb793..76db3dd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ on: jobs: build: - name: Python ${{ matrix.python-version }} - runs-on: ubuntu-latest + name: Python ${{ matrix.python-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} strategy: matrix: @@ -25,11 +25,19 @@ jobs: - "3.12" - "3.13" - "3.14" + os: + - ubuntu-latest + - windows-latest steps: - - name: Install OS dependencies + - name: Install OS dependencies (Linux) + if: runner.os == "Linux" run: sudo apt-get update && sudo apt-get install -y graphviz + - name: Install OS dependencies (Windows) + if: runner.os == "Windows" + run: choco install graphviz --version=2.38.0.20190211 + - name: Git clone uses: actions/checkout@v4 @@ -37,22 +45,17 @@ jobs: uses: actions/setup-python@v5 with: python-version: "${{ matrix.python-version }}" + cache: pip + cache-dependency-path: | + setup.py - - name: Pip cache - uses: actions/cache@v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('setup.py') }} - restore-keys: | - ${{ runner.os }}-pip-${{ matrix.python-version }}- - ${{ runner.os }}-pip- - name: Install Python dependencies run: | python -m pip install -U pip python -m pip install -U setuptools wheel python -m pip install -U coverage - python -m pip install -e .[test] + python -m pip install -e '.[test]' - name: Run tests run: coverage run tests.py From 5a5c42c69945be39efadb562be616098b3c7f9a2 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Wed, 29 Oct 2025 10:50:29 +0200 Subject: [PATCH 3/4] I said, drop Appveyor --- appveyor.yml | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index e88f298..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: build-{build}-{branch} - -environment: - matrix: - # https://www.appveyor.com/docs/installed-software#python lists available - # versions - - PYTHON: "C:\\Python310" - - PYTHON: "C:\\Python311" - - PYTHON: "C:\\Python312" - - PYTHON: "C:\\Python313" - - PYTHON: "C:\\Python314" - -init: - - "echo %PYTHON%" - -install: - - ps: | - if (-not (Test-Path $env:PYTHON)) { - curl -o install_python.ps1 https://raw.githubusercontent.com/matthew-brett/multibuild/11a389d78892cf90addac8f69433d5e22bfa422a/install_python.ps1 - .\install_python.ps1 - } - - ps: if (-not (Test-Path $env:PYTHON)) { throw "No $env:PYTHON" } - - "set PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - python --version - - pip install -U virtualenv # upgrade pip in tox's virtualenvs - - pip install tox - - choco install graphviz --version=2.38.0.20190211 - - dot -V - -build: off - -test_script: - - tox -e py From 35c8d88b90a572bb969ca4ecce2872521e5c94e1 Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Wed, 29 Oct 2025 10:55:33 +0200 Subject: [PATCH 4/4] Oh right GHA insists on single-quoted strings What is this, Turbo Pascal? --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 76db3dd..60bdcb1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,11 +31,11 @@ jobs: steps: - name: Install OS dependencies (Linux) - if: runner.os == "Linux" + if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y graphviz - name: Install OS dependencies (Windows) - if: runner.os == "Windows" + if: runner.os == 'Windows' run: choco install graphviz --version=2.38.0.20190211 - name: Git clone