From 3628c33079738a754617e8019c72f82b698cf8db Mon Sep 17 00:00:00 2001 From: Lukas Burgholzer Date: Sat, 7 Sep 2024 01:30:03 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20drop=20Python=203.8=20support=20?= =?UTF-8?q?(#454)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 +- README.md | 4 ++-- docs/source/Installation.rst | 2 +- noxfile.py | 9 ++++----- pyproject.toml | 8 +++----- 5 files changed, 11 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cf209872..fec1dcaf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ if(BUILD_MQT_QCEC_BINDINGS) # top-level call to find Python find_package( - Python 3.8 REQUIRED + Python 3.9 REQUIRED COMPONENTS Interpreter Development.Module OPTIONAL_COMPONENTS Development.SABIModule) endif() diff --git a/README.md b/README.md index 72fe2c8b..4408b752 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ If you have any questions, feel free to contact us via [quantum.cda@xcit.tum.de] ## Getting Started -QCEC is available via [PyPI](https://pypi.org/project/mqt.qcec/) for Linux, macOS, and Windows and supports Python 3.8 to 3.12. +QCEC is available via [PyPI](https://pypi.org/project/mqt.qcec/) for Linux, macOS, and Windows and supports Python 3.9 to 3.13. ```console (venv) $ pip install mqt.qcec @@ -52,7 +52,7 @@ print(result.equivalence) ## System Requirements and Building -The implementation is compatible with any C++17 compiler, a minimum CMake version of 3.19, and Python 3.8+. +The implementation is compatible with any C++17 compiler, a minimum CMake version of 3.19, and Python 3.9+. Please refer to the [documentation](https://mqt.readthedocs.io/projects/qcec) on how to build the project. Building (and running) is continuously tested under Linux, macOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/virtual-environments). diff --git a/docs/source/Installation.rst b/docs/source/Installation.rst index e0f22239..257287e6 100644 --- a/docs/source/Installation.rst +++ b/docs/source/Installation.rst @@ -34,7 +34,7 @@ In most practical cases (under 64-bit Linux, MacOS incl. Apple Silicon, and Wind (venv) $ pip install --upgrade pip setuptools wheel .. warning:: - As of version 2.2.0, support for Python 3.7 has been officially dropped. + As of version 2.8.0, support for Python 3.8 has been officially dropped. We strongly recommend that users upgrade to a more recent version of Python to ensure compatibility and continue receiving updates and support. Thank you for your understanding. diff --git a/noxfile.py b/noxfile.py index 2f7ee0f4..4374dca0 100644 --- a/noxfile.py +++ b/noxfile.py @@ -18,7 +18,7 @@ nox.options.sessions = ["lint", "tests", "minimums"] -PYTHON_ALL_VERSIONS = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] +PYTHON_ALL_VERSIONS = ["3.9", "3.10", "3.11", "3.12", "3.13"] # The following lists all the build requirements for building the package. # Note that this includes transitive build dependencies of package dependencies, @@ -105,18 +105,17 @@ def docs(session: nox.Session) -> None: extra_installs = ["sphinx-autobuild"] if serve else [] session.install(*BUILD_REQUIREMENTS, *extra_installs) session.install("--no-build-isolation", "-ve.[docs]", "--reinstall-package", "mqt.qcec") - session.chdir("docs") if args.builder == "linkcheck": - session.run("sphinx-build", "-b", "linkcheck", "source", "_build/linkcheck", *posargs) + session.run("sphinx-build", "-b", "linkcheck", "docs", "docs/_build/linkcheck", *posargs) return shared_args = ( "-n", # nitpicky mode "-T", # full tracebacks f"-b={args.builder}", - "source", - f"_build/{args.builder}", + "docs", + f"docs/_build/{args.builder}", *posargs, ) diff --git a/pyproject.toml b/pyproject.toml index 1332f899..7e64c37e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,6 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -38,7 +37,7 @@ classifiers = [ "Development Status :: 5 - Production/Stable", "Typing :: Typed", ] -requires-python = ">=3.8" +requires-python = ">=3.9" dependencies = [ "importlib_resources>=5.0; python_version < '3.10'", "typing_extensions>=4.2; python_version < '3.11'", # used for typing.Unpack @@ -144,7 +143,6 @@ filterwarnings = [ "error", 'ignore:.*encountered in det.*:RuntimeWarning:numpy.linalg:', 'ignore:.*datetime\.datetime\.utcfromtimestamp.*:DeprecationWarning:', - 'ignore:.*Qiskit with Python 3.8.*:DeprecationWarning:', ] [tool.coverage] @@ -161,7 +159,7 @@ report.exclude_also = [ [tool.mypy] files = ["src/mqt", "test/python", "noxfile.py"] mypy_path = ["$MYPY_CONFIG_FILE_DIR/src"] -python_version = "3.8" +python_version = "3.9" warn_unused_configs = true enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"] strict = true @@ -284,7 +282,7 @@ build = "cp3*" skip = "*-musllinux_*" archs = "auto64" test-command = "python -c \"from mqt import qcec\"" -test-skip = ["cp38-macosx_arm64", "cp313*"] # skip testing on Python 3.13 until our dependencies are ready +test-skip = ["cp313*"] # skip testing on Python 3.13 until our dependencies are ready build-frontend = "build[uv]" free-threaded-support = true manylinux-x86_64-image = "manylinux_2_28"