From 9edb71981663da2cc8fb705d297fb0fc50ef0137 Mon Sep 17 00:00:00 2001 From: Jaroslav Henner <1187265+jarovo@users.noreply.github.com> Date: Sat, 23 Aug 2025 14:33:59 +0200 Subject: [PATCH 1/5] Remove setup.py and use pyproject.toml --- pyproject.toml | 78 +++++++++++++++++++ setup.py | 78 ------------------- {invoke => src/invoke}/__init__.py | 0 {invoke => src/invoke}/__main__.py | 0 {invoke => src/invoke}/_version.py | 0 {invoke => src/invoke}/collection.py | 0 {invoke => src/invoke}/completion/__init__.py | 0 .../invoke}/completion/bash.completion | 0 {invoke => src/invoke}/completion/complete.py | 0 .../invoke}/completion/fish.completion | 0 .../invoke}/completion/zsh.completion | 0 {invoke => src/invoke}/config.py | 0 {invoke => src/invoke}/context.py | 0 {invoke => src/invoke}/env.py | 0 {invoke => src/invoke}/exceptions.py | 0 {invoke => src/invoke}/executor.py | 0 {invoke => src/invoke}/loader.py | 0 {invoke => src/invoke}/main.py | 0 {invoke => src/invoke}/parser/__init__.py | 0 {invoke => src/invoke}/parser/argument.py | 0 {invoke => src/invoke}/parser/context.py | 0 {invoke => src/invoke}/parser/parser.py | 0 {invoke => src/invoke}/program.py | 0 {invoke => src/invoke}/py.typed | 0 {invoke => src/invoke}/runners.py | 0 {invoke => src/invoke}/tasks.py | 0 {invoke => src/invoke}/terminals.py | 0 {invoke => src/invoke}/util.py | 0 {invoke => src/invoke}/vendor/__init__.py | 0 .../invoke}/vendor/fluidity/LICENSE | 0 .../invoke}/vendor/fluidity/__init__.py | 0 .../vendor/fluidity/backwardscompat.py | 0 .../invoke}/vendor/fluidity/machine.py | 0 {invoke => src/invoke}/vendor/lexicon/LICENSE | 0 .../invoke}/vendor/lexicon/__init__.py | 0 .../invoke}/vendor/lexicon/_version.py | 0 .../invoke}/vendor/lexicon/alias_dict.py | 0 .../invoke}/vendor/lexicon/attribute_dict.py | 0 .../invoke}/vendor/yaml/__init__.py | 0 .../invoke}/vendor/yaml/composer.py | 0 .../invoke}/vendor/yaml/constructor.py | 0 {invoke => src/invoke}/vendor/yaml/cyaml.py | 0 {invoke => src/invoke}/vendor/yaml/dumper.py | 0 {invoke => src/invoke}/vendor/yaml/emitter.py | 0 {invoke => src/invoke}/vendor/yaml/error.py | 0 {invoke => src/invoke}/vendor/yaml/events.py | 0 {invoke => src/invoke}/vendor/yaml/loader.py | 0 {invoke => src/invoke}/vendor/yaml/nodes.py | 0 {invoke => src/invoke}/vendor/yaml/parser.py | 0 {invoke => src/invoke}/vendor/yaml/reader.py | 0 .../invoke}/vendor/yaml/representer.py | 0 .../invoke}/vendor/yaml/resolver.py | 0 {invoke => src/invoke}/vendor/yaml/scanner.py | 0 .../invoke}/vendor/yaml/serializer.py | 0 {invoke => src/invoke}/vendor/yaml/tokens.py | 0 {invoke => src/invoke}/watchers.py | 0 56 files changed, 78 insertions(+), 78 deletions(-) delete mode 100644 setup.py rename {invoke => src/invoke}/__init__.py (100%) rename {invoke => src/invoke}/__main__.py (100%) rename {invoke => src/invoke}/_version.py (100%) rename {invoke => src/invoke}/collection.py (100%) rename {invoke => src/invoke}/completion/__init__.py (100%) rename {invoke => src/invoke}/completion/bash.completion (100%) rename {invoke => src/invoke}/completion/complete.py (100%) rename {invoke => src/invoke}/completion/fish.completion (100%) rename {invoke => src/invoke}/completion/zsh.completion (100%) rename {invoke => src/invoke}/config.py (100%) rename {invoke => src/invoke}/context.py (100%) rename {invoke => src/invoke}/env.py (100%) rename {invoke => src/invoke}/exceptions.py (100%) rename {invoke => src/invoke}/executor.py (100%) rename {invoke => src/invoke}/loader.py (100%) rename {invoke => src/invoke}/main.py (100%) rename {invoke => src/invoke}/parser/__init__.py (100%) rename {invoke => src/invoke}/parser/argument.py (100%) rename {invoke => src/invoke}/parser/context.py (100%) rename {invoke => src/invoke}/parser/parser.py (100%) rename {invoke => src/invoke}/program.py (100%) rename {invoke => src/invoke}/py.typed (100%) rename {invoke => src/invoke}/runners.py (100%) rename {invoke => src/invoke}/tasks.py (100%) rename {invoke => src/invoke}/terminals.py (100%) rename {invoke => src/invoke}/util.py (100%) rename {invoke => src/invoke}/vendor/__init__.py (100%) rename {invoke => src/invoke}/vendor/fluidity/LICENSE (100%) rename {invoke => src/invoke}/vendor/fluidity/__init__.py (100%) rename {invoke => src/invoke}/vendor/fluidity/backwardscompat.py (100%) rename {invoke => src/invoke}/vendor/fluidity/machine.py (100%) rename {invoke => src/invoke}/vendor/lexicon/LICENSE (100%) rename {invoke => src/invoke}/vendor/lexicon/__init__.py (100%) rename {invoke => src/invoke}/vendor/lexicon/_version.py (100%) rename {invoke => src/invoke}/vendor/lexicon/alias_dict.py (100%) rename {invoke => src/invoke}/vendor/lexicon/attribute_dict.py (100%) rename {invoke => src/invoke}/vendor/yaml/__init__.py (100%) rename {invoke => src/invoke}/vendor/yaml/composer.py (100%) rename {invoke => src/invoke}/vendor/yaml/constructor.py (100%) rename {invoke => src/invoke}/vendor/yaml/cyaml.py (100%) rename {invoke => src/invoke}/vendor/yaml/dumper.py (100%) rename {invoke => src/invoke}/vendor/yaml/emitter.py (100%) rename {invoke => src/invoke}/vendor/yaml/error.py (100%) rename {invoke => src/invoke}/vendor/yaml/events.py (100%) rename {invoke => src/invoke}/vendor/yaml/loader.py (100%) rename {invoke => src/invoke}/vendor/yaml/nodes.py (100%) rename {invoke => src/invoke}/vendor/yaml/parser.py (100%) rename {invoke => src/invoke}/vendor/yaml/reader.py (100%) rename {invoke => src/invoke}/vendor/yaml/representer.py (100%) rename {invoke => src/invoke}/vendor/yaml/resolver.py (100%) rename {invoke => src/invoke}/vendor/yaml/scanner.py (100%) rename {invoke => src/invoke}/vendor/yaml/serializer.py (100%) rename {invoke => src/invoke}/vendor/yaml/tokens.py (100%) rename {invoke => src/invoke}/watchers.py (100%) diff --git a/pyproject.toml b/pyproject.toml index 8f10b685f..6d5ebc631 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,61 @@ +[project] +name = "invoke" +description = "Pythonic task execution" +readme = "README.rst" + +# Don't forget to also update invoke/_version.py! +version = "2.2.0" + +license = "BSD-3-Clause" +license-files = [ "LICENSE" ] +authors = [ + { name = "Jeff Forcier", email="jeff@bitprophet.org" }, + { name = "Jaroslav Henner", email = "jaroslav.henner@gmail.com" } +] +requires-python = ">=3.6.2" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Operating System :: POSIX", + "Operating System :: Unix", + "Operating System :: MacOS :: MacOS X", + "Operating System :: Microsoft :: Windows", + "Programming Language :: Python", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Topic :: Software Development", + "Topic :: Software Development :: Build Tools", + "Topic :: Software Development :: Libraries", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: System :: Software Distribution", + "Topic :: System :: Systems Administration" +] + +[project.urls] +Homepage = "https://pyinvoke.org/" +Docs = "https://docs.pyinvoke.org/" +Repository = "https://github.com/pyinvoke/invoke" +Issues = "https://github.com/pyinvoke/invoke/issues" +Changelog = "https://www.pyinvoke.org/changelog.html" +CI = "https://app.circleci.com/pipelines/github/pyinvoke/invoke" + + +[build-system] +requires = ["uv_build >= 0.7.19, <0.9.0"] +build-backend = "uv_build" + +[project.scripts] +invoke = "invoke.main:program.run" +inv = "invoke.main:program.run" + [tool.mypy] # check_untyped_defs = true # follow_imports_for_stubs = true @@ -50,3 +108,23 @@ ignore_missing_imports = true [[tool.mypy.overrides]] module = "pytest_relaxed" ignore_missing_imports = true + +[tool.uv.sources] +invoke = { workspace = true } + +[dependency-groups] +dev = [ + "alabaster==0.7.12", + "black>=22.8,<22.9", + "coverage>=6.2,<7", + "flake8>=4,<5", + "icecream>=2.1", + "invocations>=3.3", + "invoke", + "mypy==0.971", + "pytest-cov>=4", + "pytest-relaxed>=2", + "releases>=2", + "setuptools>56", + "types-pyyaml==6.0.12.4", +] diff --git a/setup.py b/setup.py deleted file mode 100644 index 1bfb53fe2..000000000 --- a/setup.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python - -# Support setuptools only, distutils has a divergent and more annoying API and -# few folks will lack setuptools. -from setuptools import setup, find_packages - -# Version info -- read without importing -_locals = {} -with open("invoke/_version.py") as fp: - exec(fp.read(), None, _locals) -version = _locals["__version__"] - -exclude = [] - -# Frankenstein long_description -long_description = """ -{} - -For a high level introduction, including example code, please see `our main -project website `_; or for detailed API docs, see `the -versioned API website `_. -""".format( - open("README.rst").read() -) - - -setup( - name="invoke", - version=version, - description="Pythonic task execution", - license="BSD", - long_description=long_description, - author="Jeff Forcier", - author_email="jeff@bitprophet.org", - url="https://pyinvoke.org", - project_urls={ - "Docs": "https://docs.pyinvoke.org", - "Source": "https://github.com/pyinvoke/invoke", - "Issues": "https://github.com/pyinvoke/invoke/issues", - "Changelog": "https://www.pyinvoke.org/changelog.html", - "CI": "https://app.circleci.com/pipelines/github/pyinvoke/invoke", - }, - python_requires=">=3.6", - packages=find_packages(exclude=exclude), - include_package_data=True, - entry_points={ - "console_scripts": [ - "invoke = invoke.main:program.run", - "inv = invoke.main:program.run", - ] - }, - classifiers=[ - "Development Status :: 5 - Production/Stable", - "Environment :: Console", - "Intended Audience :: Developers", - "Intended Audience :: System Administrators", - "License :: OSI Approved :: BSD License", - "Operating System :: POSIX", - "Operating System :: Unix", - "Operating System :: MacOS :: MacOS X", - "Operating System :: Microsoft :: Windows", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Topic :: Software Development", - "Topic :: Software Development :: Build Tools", - "Topic :: Software Development :: Libraries", - "Topic :: Software Development :: Libraries :: Python Modules", - "Topic :: System :: Software Distribution", - "Topic :: System :: Systems Administration", - ], -) diff --git a/invoke/__init__.py b/src/invoke/__init__.py similarity index 100% rename from invoke/__init__.py rename to src/invoke/__init__.py diff --git a/invoke/__main__.py b/src/invoke/__main__.py similarity index 100% rename from invoke/__main__.py rename to src/invoke/__main__.py diff --git a/invoke/_version.py b/src/invoke/_version.py similarity index 100% rename from invoke/_version.py rename to src/invoke/_version.py diff --git a/invoke/collection.py b/src/invoke/collection.py similarity index 100% rename from invoke/collection.py rename to src/invoke/collection.py diff --git a/invoke/completion/__init__.py b/src/invoke/completion/__init__.py similarity index 100% rename from invoke/completion/__init__.py rename to src/invoke/completion/__init__.py diff --git a/invoke/completion/bash.completion b/src/invoke/completion/bash.completion similarity index 100% rename from invoke/completion/bash.completion rename to src/invoke/completion/bash.completion diff --git a/invoke/completion/complete.py b/src/invoke/completion/complete.py similarity index 100% rename from invoke/completion/complete.py rename to src/invoke/completion/complete.py diff --git a/invoke/completion/fish.completion b/src/invoke/completion/fish.completion similarity index 100% rename from invoke/completion/fish.completion rename to src/invoke/completion/fish.completion diff --git a/invoke/completion/zsh.completion b/src/invoke/completion/zsh.completion similarity index 100% rename from invoke/completion/zsh.completion rename to src/invoke/completion/zsh.completion diff --git a/invoke/config.py b/src/invoke/config.py similarity index 100% rename from invoke/config.py rename to src/invoke/config.py diff --git a/invoke/context.py b/src/invoke/context.py similarity index 100% rename from invoke/context.py rename to src/invoke/context.py diff --git a/invoke/env.py b/src/invoke/env.py similarity index 100% rename from invoke/env.py rename to src/invoke/env.py diff --git a/invoke/exceptions.py b/src/invoke/exceptions.py similarity index 100% rename from invoke/exceptions.py rename to src/invoke/exceptions.py diff --git a/invoke/executor.py b/src/invoke/executor.py similarity index 100% rename from invoke/executor.py rename to src/invoke/executor.py diff --git a/invoke/loader.py b/src/invoke/loader.py similarity index 100% rename from invoke/loader.py rename to src/invoke/loader.py diff --git a/invoke/main.py b/src/invoke/main.py similarity index 100% rename from invoke/main.py rename to src/invoke/main.py diff --git a/invoke/parser/__init__.py b/src/invoke/parser/__init__.py similarity index 100% rename from invoke/parser/__init__.py rename to src/invoke/parser/__init__.py diff --git a/invoke/parser/argument.py b/src/invoke/parser/argument.py similarity index 100% rename from invoke/parser/argument.py rename to src/invoke/parser/argument.py diff --git a/invoke/parser/context.py b/src/invoke/parser/context.py similarity index 100% rename from invoke/parser/context.py rename to src/invoke/parser/context.py diff --git a/invoke/parser/parser.py b/src/invoke/parser/parser.py similarity index 100% rename from invoke/parser/parser.py rename to src/invoke/parser/parser.py diff --git a/invoke/program.py b/src/invoke/program.py similarity index 100% rename from invoke/program.py rename to src/invoke/program.py diff --git a/invoke/py.typed b/src/invoke/py.typed similarity index 100% rename from invoke/py.typed rename to src/invoke/py.typed diff --git a/invoke/runners.py b/src/invoke/runners.py similarity index 100% rename from invoke/runners.py rename to src/invoke/runners.py diff --git a/invoke/tasks.py b/src/invoke/tasks.py similarity index 100% rename from invoke/tasks.py rename to src/invoke/tasks.py diff --git a/invoke/terminals.py b/src/invoke/terminals.py similarity index 100% rename from invoke/terminals.py rename to src/invoke/terminals.py diff --git a/invoke/util.py b/src/invoke/util.py similarity index 100% rename from invoke/util.py rename to src/invoke/util.py diff --git a/invoke/vendor/__init__.py b/src/invoke/vendor/__init__.py similarity index 100% rename from invoke/vendor/__init__.py rename to src/invoke/vendor/__init__.py diff --git a/invoke/vendor/fluidity/LICENSE b/src/invoke/vendor/fluidity/LICENSE similarity index 100% rename from invoke/vendor/fluidity/LICENSE rename to src/invoke/vendor/fluidity/LICENSE diff --git a/invoke/vendor/fluidity/__init__.py b/src/invoke/vendor/fluidity/__init__.py similarity index 100% rename from invoke/vendor/fluidity/__init__.py rename to src/invoke/vendor/fluidity/__init__.py diff --git a/invoke/vendor/fluidity/backwardscompat.py b/src/invoke/vendor/fluidity/backwardscompat.py similarity index 100% rename from invoke/vendor/fluidity/backwardscompat.py rename to src/invoke/vendor/fluidity/backwardscompat.py diff --git a/invoke/vendor/fluidity/machine.py b/src/invoke/vendor/fluidity/machine.py similarity index 100% rename from invoke/vendor/fluidity/machine.py rename to src/invoke/vendor/fluidity/machine.py diff --git a/invoke/vendor/lexicon/LICENSE b/src/invoke/vendor/lexicon/LICENSE similarity index 100% rename from invoke/vendor/lexicon/LICENSE rename to src/invoke/vendor/lexicon/LICENSE diff --git a/invoke/vendor/lexicon/__init__.py b/src/invoke/vendor/lexicon/__init__.py similarity index 100% rename from invoke/vendor/lexicon/__init__.py rename to src/invoke/vendor/lexicon/__init__.py diff --git a/invoke/vendor/lexicon/_version.py b/src/invoke/vendor/lexicon/_version.py similarity index 100% rename from invoke/vendor/lexicon/_version.py rename to src/invoke/vendor/lexicon/_version.py diff --git a/invoke/vendor/lexicon/alias_dict.py b/src/invoke/vendor/lexicon/alias_dict.py similarity index 100% rename from invoke/vendor/lexicon/alias_dict.py rename to src/invoke/vendor/lexicon/alias_dict.py diff --git a/invoke/vendor/lexicon/attribute_dict.py b/src/invoke/vendor/lexicon/attribute_dict.py similarity index 100% rename from invoke/vendor/lexicon/attribute_dict.py rename to src/invoke/vendor/lexicon/attribute_dict.py diff --git a/invoke/vendor/yaml/__init__.py b/src/invoke/vendor/yaml/__init__.py similarity index 100% rename from invoke/vendor/yaml/__init__.py rename to src/invoke/vendor/yaml/__init__.py diff --git a/invoke/vendor/yaml/composer.py b/src/invoke/vendor/yaml/composer.py similarity index 100% rename from invoke/vendor/yaml/composer.py rename to src/invoke/vendor/yaml/composer.py diff --git a/invoke/vendor/yaml/constructor.py b/src/invoke/vendor/yaml/constructor.py similarity index 100% rename from invoke/vendor/yaml/constructor.py rename to src/invoke/vendor/yaml/constructor.py diff --git a/invoke/vendor/yaml/cyaml.py b/src/invoke/vendor/yaml/cyaml.py similarity index 100% rename from invoke/vendor/yaml/cyaml.py rename to src/invoke/vendor/yaml/cyaml.py diff --git a/invoke/vendor/yaml/dumper.py b/src/invoke/vendor/yaml/dumper.py similarity index 100% rename from invoke/vendor/yaml/dumper.py rename to src/invoke/vendor/yaml/dumper.py diff --git a/invoke/vendor/yaml/emitter.py b/src/invoke/vendor/yaml/emitter.py similarity index 100% rename from invoke/vendor/yaml/emitter.py rename to src/invoke/vendor/yaml/emitter.py diff --git a/invoke/vendor/yaml/error.py b/src/invoke/vendor/yaml/error.py similarity index 100% rename from invoke/vendor/yaml/error.py rename to src/invoke/vendor/yaml/error.py diff --git a/invoke/vendor/yaml/events.py b/src/invoke/vendor/yaml/events.py similarity index 100% rename from invoke/vendor/yaml/events.py rename to src/invoke/vendor/yaml/events.py diff --git a/invoke/vendor/yaml/loader.py b/src/invoke/vendor/yaml/loader.py similarity index 100% rename from invoke/vendor/yaml/loader.py rename to src/invoke/vendor/yaml/loader.py diff --git a/invoke/vendor/yaml/nodes.py b/src/invoke/vendor/yaml/nodes.py similarity index 100% rename from invoke/vendor/yaml/nodes.py rename to src/invoke/vendor/yaml/nodes.py diff --git a/invoke/vendor/yaml/parser.py b/src/invoke/vendor/yaml/parser.py similarity index 100% rename from invoke/vendor/yaml/parser.py rename to src/invoke/vendor/yaml/parser.py diff --git a/invoke/vendor/yaml/reader.py b/src/invoke/vendor/yaml/reader.py similarity index 100% rename from invoke/vendor/yaml/reader.py rename to src/invoke/vendor/yaml/reader.py diff --git a/invoke/vendor/yaml/representer.py b/src/invoke/vendor/yaml/representer.py similarity index 100% rename from invoke/vendor/yaml/representer.py rename to src/invoke/vendor/yaml/representer.py diff --git a/invoke/vendor/yaml/resolver.py b/src/invoke/vendor/yaml/resolver.py similarity index 100% rename from invoke/vendor/yaml/resolver.py rename to src/invoke/vendor/yaml/resolver.py diff --git a/invoke/vendor/yaml/scanner.py b/src/invoke/vendor/yaml/scanner.py similarity index 100% rename from invoke/vendor/yaml/scanner.py rename to src/invoke/vendor/yaml/scanner.py diff --git a/invoke/vendor/yaml/serializer.py b/src/invoke/vendor/yaml/serializer.py similarity index 100% rename from invoke/vendor/yaml/serializer.py rename to src/invoke/vendor/yaml/serializer.py diff --git a/invoke/vendor/yaml/tokens.py b/src/invoke/vendor/yaml/tokens.py similarity index 100% rename from invoke/vendor/yaml/tokens.py rename to src/invoke/vendor/yaml/tokens.py diff --git a/invoke/watchers.py b/src/invoke/watchers.py similarity index 100% rename from invoke/watchers.py rename to src/invoke/watchers.py From 8880116b68a50a3312a7bcd5e11bb1651d2a4738 Mon Sep 17 00:00:00 2001 From: Jaroslav Henner <1187265+jarovo@users.noreply.github.com> Date: Mon, 25 Aug 2025 06:21:52 +0200 Subject: [PATCH 2/5] Try adding uv as dev dependency --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 6d5ebc631..be52fb1d2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -127,4 +127,5 @@ dev = [ "releases>=2", "setuptools>56", "types-pyyaml==6.0.12.4", + "uv" ] From 55e09f6d9e431e89345288be2dc7cd0b007bf2b1 Mon Sep 17 00:00:00 2001 From: Jaroslav Henner <1187265+jarovo@users.noreply.github.com> Date: Mon, 25 Aug 2025 06:27:05 +0200 Subject: [PATCH 3/5] Fixup --- pyproject.toml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index be52fb1d2..32f813833 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,10 +47,9 @@ Issues = "https://github.com/pyinvoke/invoke/issues" Changelog = "https://www.pyinvoke.org/changelog.html" CI = "https://app.circleci.com/pipelines/github/pyinvoke/invoke" - [build-system] -requires = ["uv_build >= 0.7.19, <0.9.0"] -build-backend = "uv_build" +requires = ["setuptools >= 77.0.3"] +build-backend = "setuptools.build_meta" [project.scripts] invoke = "invoke.main:program.run" @@ -109,8 +108,6 @@ ignore_missing_imports = true module = "pytest_relaxed" ignore_missing_imports = true -[tool.uv.sources] -invoke = { workspace = true } [dependency-groups] dev = [ @@ -125,7 +122,6 @@ dev = [ "pytest-cov>=4", "pytest-relaxed>=2", "releases>=2", - "setuptools>56", "types-pyyaml==6.0.12.4", "uv" ] From a62a876fb1fa7d80286698a7a111485b12877576 Mon Sep 17 00:00:00 2001 From: Jaroslav Henner <1187265+jarovo@users.noreply.github.com> Date: Mon, 25 Aug 2025 06:38:30 +0200 Subject: [PATCH 4/5] Dropping Py<3.9 --- .circleci/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fa71df8f8..dde257fd9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -10,7 +10,7 @@ jobs: coverage: executor: name: orb/default - version: "3.6" + version: "3.9" steps: - orb/setup - run: inv ci.make-sudouser @@ -20,7 +20,7 @@ jobs: regression: executor: name: orb/default - version: "3.6" + version: "3.9" steps: - orb/setup - run: inv regression @@ -29,7 +29,7 @@ jobs: doctests: executor: name: orb/default - version: "3.6" + version: "3.9" steps: - orb/setup - run: inv www.doctest @@ -38,7 +38,7 @@ jobs: typecheck: executor: name: orb/default - version: "3.6" + version: "3.9" steps: - orb/setup - run: mypy . @@ -65,7 +65,7 @@ workflows: requires: ["Test"] matrix: parameters: - version: ["3.7", "3.8", "3.9", "3.10", "3.11"] + version: ["3.9", "3.10", "3.11", "3.12", "3.13"] - orb/docs: name: "Docs" requires: ["Test"] From 58bd18fa9df86509371d91bef689108a472e2802 Mon Sep 17 00:00:00 2001 From: Jaroslav Henner <1187265+jarovo@users.noreply.github.com> Date: Mon, 25 Aug 2025 06:44:33 +0200 Subject: [PATCH 5/5] Fixup tox --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 0cdda0531..c31c91ae3 100644 --- a/tox.ini +++ b/tox.ini @@ -4,9 +4,9 @@ # and then run "tox" from this directory. [tox] -envlist = py36, py37, py38, py39, 'py310', py311 +envlist = py39, 'py310', py311, py312, py313 [testenv] commands = - pip install -r dev-requirements.txt + pip install -e .[dev] spec