From 9a7e939880027190e81a1f4d7ce942483b4c9ade Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:41:04 +0100 Subject: [PATCH 01/13] pinning ubuntu version --- .github/workflows/codeql-analysis.yml | 72 +++++++++++++-------------- .github/workflows/tests.yml | 10 ++-- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e49e5daa9..43e354684 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,55 +2,55 @@ name: "CodeQL" on: push: - branches: [ master, 0.9.x, 1.0.x, 1.1.x ] + branches: [master, 0.9.x, 1.0.x, 1.1.x] pull_request: # The branches below must be a subset of the branches above - branches: [ master ] + branches: [master] schedule: - - cron: '45 9 * * 0' + - cron: "45 9 * * 0" jobs: analyze: name: Analyze - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - language: [ 'javascript', 'python' ] + language: ["javascript", "python"] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed steps: - - name: Checkout repository - uses: actions/checkout@v4 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v3 - - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v3 + + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2fd0d90d8..2038c41d6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,15 +2,15 @@ name: Run tests on: push: - branches: [ master, 1.0.x, 1.1.x ] + branches: [master, 1.0.x, 1.1.x] pull_request: # The branches below must be a subset of the branches above - branches: [ master, 1.0.x, 1.1.x ] + branches: [master, 1.0.x, 1.1.x] workflow_dispatch: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 services: redis: @@ -38,7 +38,7 @@ jobs: strategy: matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -102,4 +102,4 @@ jobs: codecov - name: Upload coverage to Codecov if: ${{ matrix.python-version==3.13 }} - uses: codecov/codecov-action@v5 \ No newline at end of file + uses: codecov/codecov-action@v5 From 106b30a962737a1d9ea11f35cb281de637688fda Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:42:37 +0100 Subject: [PATCH 02/13] adding python 3.14 --- .github/workflows/tests.yml | 2 +- tox.ini | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2038c41d6..bc50dc1bf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/tox.ini b/tox.ini index 26b50f68c..7ed5436b1 100644 --- a/tox.ini +++ b/tox.ini @@ -5,10 +5,11 @@ python = 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [tox] envlist = - py{39,310,311,312,313},lint,docs + py{39,310,311,312,313,314},lint,docs [testenv] whitelist_externals = From 1b51f5ce7395182efd95822db9d3d450019e53b7 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:45:00 +0100 Subject: [PATCH 03/13] removing python 3.14 --- .github/workflows/tests.yml | 2 +- tox.ini | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bc50dc1bf..2038c41d6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 diff --git a/tox.ini b/tox.ini index 7ed5436b1..26b50f68c 100644 --- a/tox.ini +++ b/tox.ini @@ -5,11 +5,10 @@ python = 3.11: py311 3.12: py312 3.13: py313 - 3.14: py314 [tox] envlist = - py{39,310,311,312,313,314},lint,docs + py{39,310,311,312,313},lint,docs [testenv] whitelist_externals = From c423ffcbbf680e37c09c52721e3bc945ae66c055 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:48:00 +0100 Subject: [PATCH 04/13] adding distutils to dep --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index 26b50f68c..2d300658a 100644 --- a/tox.ini +++ b/tox.ini @@ -27,6 +27,7 @@ commands = coverage report deps = coverage + distutils cairocffi django-tagging pytz From 2bd4219e639617958d6964048c0fb0e54588641a Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:50:36 +0100 Subject: [PATCH 05/13] trying ubuntu 24.04 --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 43e354684..e7fc4dd4c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -12,7 +12,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: fail-fast: false diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2038c41d6..b4ebd8f03 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 services: redis: From 1431b6ec47c0762ba8ac3a2d460d811d62f1a88f Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:53:13 +0100 Subject: [PATCH 06/13] rollback to ubuntu 22.04 --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/tests.yml | 4 ++-- tox.ini | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index e7fc4dd4c..43e354684 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -12,7 +12,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b4ebd8f03..fc749f0a8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,7 +10,7 @@ on: jobs: build: - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 services: redis: @@ -67,7 +67,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip 'setuptools<58' --force-reinstall - pip install 'tox<4' tox-gh-actions flake8 pytest pytz + pip install 'tox<4' tox-gh-actions flake8 pytest pytz distutils if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with tox env: diff --git a/tox.ini b/tox.ini index 2d300658a..26b50f68c 100644 --- a/tox.ini +++ b/tox.ini @@ -27,7 +27,6 @@ commands = coverage report deps = coverage - distutils cairocffi django-tagging pytz From 32de775954f5a93e0ac4b6f494197361463ab021 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 17:59:58 +0100 Subject: [PATCH 07/13] adding python 3.14, removing 3.9 --- .github/workflows/tests.yml | 2 +- tox.ini | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fc749f0a8..1add0b018 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/tox.ini b/tox.ini index 26b50f68c..d1882d929 100644 --- a/tox.ini +++ b/tox.ini @@ -1,14 +1,14 @@ [gh-actions] python = - 3.9: py39 3.10: py310 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [tox] envlist = - py{39,310,311,312,313},lint,docs + py{310,311,312,313,314},lint,docs [testenv] whitelist_externals = From 09e876cce9b64eeef3be69384721dd9cab06e317 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:03:28 +0100 Subject: [PATCH 08/13] trying python3-distutils-extra --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1add0b018..05b4c36ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/checkout@v4 - name: Install global dependencies run: | - sudo apt-get -y install libcairo2-dev librrd-dev libboost-python-dev redis-tools + sudo apt-get -y install libcairo2-dev librrd-dev libboost-python-dev redis-tools python3-distutils-extra - name: Verify Redis connection env: REDIS_PORT: ${{ job.services.redis.ports[6379] }} @@ -67,7 +67,7 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip 'setuptools<58' --force-reinstall - pip install 'tox<4' tox-gh-actions flake8 pytest pytz distutils + pip install 'tox<4' tox-gh-actions flake8 pytest pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with tox env: From 642a105dab37299f8d763a2300ce83041f217be1 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:09:32 +0100 Subject: [PATCH 09/13] trying distutils-precedence --- .github/workflows/tests.yml | 2 +- setup.py | 159 ++++++++++++++++++++---------------- 2 files changed, 89 insertions(+), 72 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 05b4c36ad..93f3eb889 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -66,7 +66,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip 'setuptools<58' --force-reinstall + python -m pip install --upgrade pip 'setuptools<58' distutils-precedence --force-reinstall pip install 'tox<4' tox-gh-actions flake8 pytest pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with tox diff --git a/setup.py b/setup.py index 508ae6117..d159f0a99 100644 --- a/setup.py +++ b/setup.py @@ -18,48 +18,58 @@ # required for installations from a source tarball because running # ``python setup.py sdist`` will re-add the prefix to the tarball's # ``setup.cfg``. -with open('setup.cfg', 'r') as f: +with open("setup.cfg", "r") as f: orig_setup_cfg = f.read() cf = ConfigParser() -cf.read_file(StringIO(orig_setup_cfg), 'setup.cfg') +cf.read_file(StringIO(orig_setup_cfg), "setup.cfg") -if os.environ.get('GRAPHITE_NO_PREFIX') or os.environ.get('READTHEDOCS'): - cf.remove_section('install') +if os.environ.get("GRAPHITE_NO_PREFIX") or os.environ.get("READTHEDOCS"): + cf.remove_section("install") else: try: - cf.add_section('install') + cf.add_section("install") except DuplicateSectionError: pass - if not cf.has_option('install', 'prefix'): - cf.set('install', 'prefix', '/opt/graphite') - if not cf.has_option('install', 'install-lib'): - cf.set('install', 'install_lib', '%(prefix)s/webapp') + if not cf.has_option("install", "prefix"): + cf.set("install", "prefix", "/opt/graphite") + if not cf.has_option("install", "install-lib"): + cf.set("install", "install_lib", "%(prefix)s/webapp") -with open('setup.cfg', 'w') as f: +with open("setup.cfg", "w") as f: cf.write(f) -if os.environ.get('USE_DISTUTILS'): +if os.environ.get("USE_DISTUTILS"): # skipcq: PYL-W0402 from distutils.core import setup + setup_kwargs = dict() else: - from setuptools import setup + try: + from setuptools import setup + except ImportError: + from distutils.core import setup setup_kwargs = dict(zip_safe=0) storage_dirs = [] -for subdir in ('whisper/dummy.txt', 'ceres/dummy.txt', 'rrd/dummy.txt', 'log/dummy.txt', 'log/webapp/dummy.txt'): - storage_dirs.append( ('storage/%s' % subdir, []) ) +for subdir in ( + "whisper/dummy.txt", + "ceres/dummy.txt", + "rrd/dummy.txt", + "log/dummy.txt", + "log/webapp/dummy.txt", +): + storage_dirs.append(("storage/%s" % subdir, [])) webapp_content = defaultdict(list) -for root, dirs, files in os.walk('webapp/content'): +for root, dirs, files in os.walk("webapp/content"): for filename in files: filepath = os.path.join(root, filename) webapp_content[root].append(filepath) -conf_files = [('conf', glob('conf/*.example'))] -examples = [('examples', glob('examples/example-*'))] +conf_files = [("conf", glob("conf/*.example"))] +examples = [("examples", glob("examples/example-*"))] def read(fname): @@ -70,60 +80,67 @@ def read(fname): try: setup( - name='graphite-web', - version='1.2.0', - url='http://graphiteapp.org/', - author='Chris Davis', - author_email='chrismd@gmail.com', - license='Apache Software License 2.0', - description='Enterprise scalable realtime graphing', - long_description=read('README.md'), - long_description_content_type='text/markdown', - package_dir={'' : 'webapp'}, - packages=[ - 'graphite', - 'graphite.account', - 'graphite.account.migrations', - 'graphite.browser', - 'graphite.composer', - 'graphite.dashboard', - 'graphite.dashboard.migrations', - 'graphite.events', - 'graphite.events.migrations', - 'graphite.finders', - 'graphite.functions', - 'graphite.functions.custom', - 'graphite.metrics', - 'graphite.readers', - 'graphite.render', - 'graphite.tags', - 'graphite.tags.migrations', - 'graphite.url_shortener', - 'graphite.url_shortener.migrations', - 'graphite.version', - 'graphite.whitelist', - 'graphite.worker_pool', - ], - package_data={'graphite': ['templates/*', 'local_settings.py.example']}, - scripts=glob('bin/*'), - data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples, - install_requires=['Django>=4.2,<6', 'django-tagging', 'pytz', - 'pyparsing', 'cairocffi', 'urllib3', 'six'], - classifiers=[ - 'Intended Audience :: Developers', - 'Natural Language :: English', - 'License :: OSI Approved :: Apache Software License', - 'Programming Language :: Python', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: PyPy', - ], - **setup_kwargs + name="graphite-web", + version="1.2.0", + url="http://graphiteapp.org/", + author="Chris Davis", + author_email="chrismd@gmail.com", + license="Apache Software License 2.0", + description="Enterprise scalable realtime graphing", + long_description=read("README.md"), + long_description_content_type="text/markdown", + package_dir={"": "webapp"}, + packages=[ + "graphite", + "graphite.account", + "graphite.account.migrations", + "graphite.browser", + "graphite.composer", + "graphite.dashboard", + "graphite.dashboard.migrations", + "graphite.events", + "graphite.events.migrations", + "graphite.finders", + "graphite.functions", + "graphite.functions.custom", + "graphite.metrics", + "graphite.readers", + "graphite.render", + "graphite.tags", + "graphite.tags.migrations", + "graphite.url_shortener", + "graphite.url_shortener.migrations", + "graphite.version", + "graphite.whitelist", + "graphite.worker_pool", + ], + package_data={"graphite": ["templates/*", "local_settings.py.example"]}, + scripts=glob("bin/*"), + data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples, + install_requires=[ + "Django>=4.2,<6", + "django-tagging", + "pytz", + "pyparsing", + "cairocffi", + "urllib3", + "six", + ], + classifiers=[ + "Intended Audience :: Developers", + "Natural Language :: English", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + ], + **setup_kwargs ) finally: - with open('setup.cfg', 'w') as f: + with open("setup.cfg", "w") as f: f.write(orig_setup_cfg) From b13f1c2512032136bb098dde1f09e0c176a63e76 Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:12:25 +0100 Subject: [PATCH 10/13] redo --- .github/workflows/tests.yml | 2 +- setup.py | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 93f3eb889..05b4c36ad 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -66,7 +66,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip 'setuptools<58' distutils-precedence --force-reinstall + python -m pip install --upgrade pip 'setuptools<58' --force-reinstall pip install 'tox<4' tox-gh-actions flake8 pytest pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with tox diff --git a/setup.py b/setup.py index d159f0a99..ddd145e10 100644 --- a/setup.py +++ b/setup.py @@ -44,10 +44,8 @@ setup_kwargs = dict() else: - try: - from setuptools import setup - except ImportError: - from distutils.core import setup + from setuptools import setup + setup_kwargs = dict(zip_safe=0) storage_dirs = [] From 7429afc5ee633c67700eae4ec14a3cb9a0ef678d Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:16:40 +0100 Subject: [PATCH 11/13] redo --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 05b4c36ad..8ab092929 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -66,7 +66,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - python -m pip install --upgrade pip 'setuptools<58' --force-reinstall + python -m pip install --upgrade pip 'setuptools>=67.0.0' wheel --force-reinstall pip install 'tox<4' tox-gh-actions flake8 pytest pytz if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - name: Test with tox From 3b925a148d54ca2f580ae3db41f7e3ff97d3d03a Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:20:02 +0100 Subject: [PATCH 12/13] redo --- tox.ini | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index d1882d929..b7cb0b352 100644 --- a/tox.ini +++ b/tox.ini @@ -4,11 +4,10 @@ python = 3.11: py311 3.12: py312 3.13: py313 - 3.14: py314 [tox] envlist = - py{310,311,312,313,314},lint,docs + py{310,311,312,313},lint,docs [testenv] whitelist_externals = From 156559efae6ef16a1389bbea015d8eb10c15a2fc Mon Sep 17 00:00:00 2001 From: Denys Zhdanov Date: Tue, 13 Jan 2026 18:22:24 +0100 Subject: [PATCH 13/13] removing 3.14 --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ab092929..07c06fadd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -38,7 +38,7 @@ jobs: strategy: matrix: - python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4