diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bc48b3c..60bdcb1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,23 +14,30 @@ 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: python-version: - - "3.8" - - "3.9" - "3.10" - "3.11" - "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 @@ -38,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 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 deleted file mode 100644 index a9758b6..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: build-{build}-{branch} - -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" - -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 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 =