diff --git a/.github/workflows/ci-code.yml b/.github/workflows/ci-code.yml index d4517f2226..be5470b5a6 100644 --- a/.github/workflows/ci-code.yml +++ b/.github/workflows/ci-code.yml @@ -49,7 +49,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.10'] + python-version: ['3.8', '3.10'] backend: ['django', 'sqlalchemy'] services: @@ -129,10 +129,10 @@ jobs: .github/workflows/tests.sh - name: Upload coverage report - if: matrix.python-version == 3.7 && github.repository == 'aiidateam/aiida-core' + if: matrix.python-version == 3.8 && github.repository == 'aiidateam/aiida-core' uses: codecov/codecov-action@v1 with: - name: aiida-pytests-py3.7-${{ matrix.backend }} + name: aiida-pytests-py3.8-${{ matrix.backend }} flags: ${{ matrix.backend }} file: ./coverage.xml fail_ci_if_error: false # don't fail job, if coverage upload fails @@ -145,7 +145,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.10'] + python-version: ['3.8', '3.10'] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/post-release.yml b/.github/workflows/post-release.yml index 89354a7dd8..4ad96e7671 100644 --- a/.github/workflows/post-release.yml +++ b/.github/workflows/post-release.yml @@ -23,10 +23,10 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up Python 3.7 + - name: Set up Python 3.8 uses: actions/setup-python@v2 with: - python-version: '3.7' + python-version: '3.8' - name: Install python dependencies run: | diff --git a/.github/workflows/test-install.yml b/.github/workflows/test-install.yml index 39d8721df4..a4744a3703 100644 --- a/.github/workflows/test-install.yml +++ b/.github/workflows/test-install.yml @@ -53,7 +53,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.8', '3.9', '3.10'] steps: - uses: actions/checkout@v2 @@ -139,7 +139,7 @@ jobs: fail-fast: false matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.8', '3.9', '3.10'] # Not being able to install with conda on a specific Python version is # not sufficient to fail the run, but something we want to be aware of. @@ -183,7 +183,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: ['3.8', '3.9', '3.10'] backend: ['django', 'sqlalchemy'] services: diff --git a/.molecule/default/setup_python.yml b/.molecule/default/setup_python.yml index eba59ea303..1c8c7ff9ec 100644 --- a/.molecule/default/setup_python.yml +++ b/.molecule/default/setup_python.yml @@ -13,7 +13,7 @@ pip: chdir: "{{ aiida_core_dir }}" # TODO dynamically change for python version - requirements: requirements/requirements-py-3.7.txt + requirements: requirements/requirements-py-3.8.txt executable: "{{ venv_bin }}/pip" extra_args: --cache-dir {{ aiida_pip_cache }} register: pip_install_deps diff --git a/environment.yml b/environment.yml index ca0a5465d2..d7e6659730 100644 --- a/environment.yml +++ b/environment.yml @@ -5,7 +5,7 @@ channels: - conda-forge - defaults dependencies: -- python~=3.7 +- python~=3.8 - aldjemy~=2.4 - alembic~=1.2 - archive-path~=0.3.6 diff --git a/pyproject.toml b/pyproject.toml index a036f8302c..65a129088a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -131,17 +131,16 @@ ignore_missing_imports = true [tool.tox] legacy_tox_ini = """ [tox] -envlist = py37-django +envlist = py38-django [testenv] usedevelop=True deps = - py37: -rrequirements/requirements-py-3.7.txt py38: -rrequirements/requirements-py-3.8.txt py39: -rrequirements/requirements-py-3.9.txt py310: -rrequirements/requirements-py-3.10.txt -[testenv:py{37,38,39,310}-{django,sqla}] +[testenv:py{38,39,310}-{django,sqla}] passenv = PYTHONASYNCIODEBUG setenv = @@ -150,13 +149,13 @@ setenv = SQLALCHEMY_WARN_20 = 1 commands = pytest {posargs} -[testenv:py{37,38,39,310}-verdi] +[testenv:py{38,39,310}-verdi] setenv = AIIDA_TEST_BACKEND = django AIIDA_PATH = {toxinidir}/.tox/.aiida commands = verdi {posargs} -[testenv:py{37,38,39,310}-docs-{clean,update}] +[testenv:py{38,39,310}-docs-{clean,update}] description = clean: Build the documentation (remove any existing build) update: Build the documentation (modify any existing build) @@ -169,11 +168,10 @@ commands = clean: make clean make debug -[testenv:py{37,38,39,310}-docs-live] +[testenv:py{38,39,310}-docs-live] # tip: remove apidocs before using this feature (`cd docs; make clean`) description = Build the documentation and launch browser (with live updates) deps = - py37: -rrequirements/requirements-py-3.7.txt py38: -rrequirements/requirements-py-3.8.txt py39: -rrequirements/requirements-py-3.9.txt py310: -rrequirements/requirements-py-3.10.txt @@ -186,7 +184,7 @@ commands = --port 0 --open-browser \ -n -b {posargs:html} docs/source/ docs/build/{posargs:html} -[testenv:py{37,38,39,310}-pre-commit] +[testenv:py{38,39,310}-pre-commit] description = Run the pre-commit checks extras = pre-commit commands = pre-commit run {posargs} diff --git a/requirements/requirements-py-3.7.txt b/requirements/requirements-py-3.7.txt deleted file mode 100644 index 61c3cc0557..0000000000 --- a/requirements/requirements-py-3.7.txt +++ /dev/null @@ -1,183 +0,0 @@ -aiida-export-migration-tests==0.9.0 -aio-pika==6.8.0 -aiormq==3.3.1 -alabaster==0.7.12 -aldjemy==2.6 -alembic==1.7.5 -aniso8601==9.0.1 -archive-path==0.3.6 -argcomplete==1.12.3 -argon2-cffi==21.1.0 -ase==3.22.0 -asn1crypto==1.4.0 -async-generator==1.10 -attrs==21.2.0 -Babel==2.9.1 -backcall==0.2.0 -bcrypt==3.2.0 -beautifulsoup4==4.10.0 -bleach==4.1.0 -certifi==2021.10.8 -cffi==1.15.0 -charset-normalizer==2.0.8 -circus==0.17.1 -click==8.0.3 -click-config-file==0.6.0 -click-spinner==0.1.10 -configobj==5.0.6 -coverage==4.5.4 -cryptography==36.0.0 -cycler==0.11.0 -debugpy==1.5.1 -decorator==5.1.0 -defusedxml==0.7.1 -deprecation==2.1.0 -disk-objectstore==0.6.0 -Django==2.2.26 -docutils==0.15.2 -entrypoints==0.3 -Flask==1.1.2 -Flask-Cors==3.0.10 -Flask-RESTful==0.3.9 -fonttools==4.28.2 -future==0.18.2 -graphviz==0.19 -greenlet==1.1.2 -idna==3.3 -imagesize==1.3.0 -importlib-metadata==4.8.2 -importlib-resources==5.4.0 -iniconfig==1.1.1 -ipykernel==6.5.1 -ipython==7.30.0 -ipython-genutils==0.2.0 -ipywidgets==7.6.5 -itsdangerous==2.0.1 -jedi==0.18.1 -Jinja2==3.0.3 -jsonschema==3.2.0 -jupyter==1.0.0 -jupyter-client==6.1.12 -jupyter-console==6.4.0 -jupyter-core==4.9.1 -jupyterlab-pygments==0.1.2 -jupyterlab-widgets==1.0.2 -kiwipy==0.7.4 -kiwisolver==1.3.2 -Mako==1.1.6 -MarkupSafe==2.0.1 -matplotlib==3.5.0 -matplotlib-inline==0.1.3 -mistune==0.8.4 -monty==2021.8.17 -mpmath==1.2.1 -multidict==5.2.0 -nbclient==0.5.9 -nbconvert==6.3.0 -nbformat==5.1.3 -nest-asyncio==1.4.3 -networkx==2.6.3 -notebook==6.4.5 -numpy==1.21.4 -packaging==21.3 -palettable==3.3.0 -pamqp==2.3.0 -pandas==1.3.4 -pandocfilters==1.5.0 -paramiko==2.8.1 -parso==0.8.3 -pexpect==4.8.0 -pg8000==1.23.0 -pgsu==0.2.1 -pgtest==1.3.2 -pickleshare==0.7.5 -Pillow==8.4.0 -plotly==5.4.0 -pluggy==1.0.0 -plumpy==0.20.0 -prometheus-client==0.12.0 -prompt-toolkit==3.0.23 -psutil==5.8.0 -psycopg2-binary==2.8.6 -ptyprocess==0.7.0 -py==1.11.0 -py-cpuinfo==8.0.0 -PyCifRW==4.4.3 -pycparser==2.21 -pydata-sphinx-theme==0.6.3 -Pygments==2.10.0 -pymatgen==2022.0.16 -Pympler==0.9 -PyMySQL==0.9.3 -PyNaCl==1.4.0 -pyparsing==2.4.7 -pyrsistent==0.18.0 -pytest==6.2.5 -pytest-asyncio==0.16.0 -pytest-benchmark==3.4.1 -pytest-cov==2.10.1 -pytest-datadir==1.3.1 -pytest-regressions==2.2.0 -pytest-rerunfailures==9.1.1 -pytest-timeout==1.4.2 -python-dateutil==2.8.2 -python-memcached==1.59 -pytray==0.3.2 -pytz==2021.3 -PyYAML==5.4.1 -pyzmq==22.3.0 -qtconsole==5.2.1 -QtPy==1.11.2 -requests==2.26.0 -ruamel.yaml==0.17.17 -ruamel.yaml.clib==0.2.6 -scipy==1.7.3 -scramp==1.4.1 -seekpath==1.9.7 -Send2Trash==1.8.0 -setuptools-scm==6.3.2 -shortuuid==1.0.8 -simplejson==3.17.6 -six==1.16.0 -snowballstemmer==2.2.0 -soupsieve==2.3.1 -spglib==1.16.1 -Sphinx==3.2.1 -sphinx-copybutton==0.3.3 -sphinx-notfound-page==0.8 -sphinx-panels==0.5.2 -sphinx-sqlalchemy==0.1.1 -sphinxcontrib-applehelp==1.0.2 -sphinxcontrib-details-directive==0.1.0 -sphinxcontrib-devhelp==1.0.2 -sphinxcontrib-htmlhelp==2.0.0 -sphinxcontrib-jsmath==1.0.1 -sphinxcontrib-qthelp==1.0.3 -sphinxcontrib-serializinghtml==1.1.5 -sphinxext-rediraffe==0.2.7 -SQLAlchemy==1.4.27 -sqlalchemy-diff==0.1.5 -SQLAlchemy-Utils==0.37.9 -sqlparse==0.4.2 -sympy==1.9 -tabulate==0.8.9 -tenacity==8.0.1 -terminado==0.12.1 -testpath==0.5.0 -toml==0.10.2 -tomli==1.2.2 -tornado==6.1 -tqdm==4.62.3 -traitlets==5.1.1 -typing_extensions==4.0.1 -tzlocal==2.1 -uncertainties==3.1.6 -upf-to-json==0.9.3 -urllib3==1.26.7 -wcwidth==0.2.5 -webencodings==0.5.1 -Werkzeug==2.0.2 -widgetsnbextension==3.5.2 -wrapt==1.11.2 -yarl==1.7.2 -zipp==3.6.0 diff --git a/setup.json b/setup.json index baa8c5baef..8d2d65e2f6 100644 --- a/setup.json +++ b/setup.json @@ -7,7 +7,7 @@ "author_email": "developers@aiida.net", "description": "AiiDA is a workflow manager for computational science with a strong focus on provenance, performance and extensibility.", "include_package_data": true, - "python_requires": ">=3.7", + "python_requires": ">=3.8", "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: AiiDA", @@ -15,7 +15,6 @@ "Operating System :: POSIX :: Linux", "Operating System :: MacOS :: MacOS X", "Programming Language :: Python", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", diff --git a/utils/dependency_management.py b/utils/dependency_management.py index e0ca84ede1..b1760633c4 100755 --- a/utils/dependency_management.py +++ b/utils/dependency_management.py @@ -141,7 +141,7 @@ def generate_environment_yml(): # python version cannot be overriden from outside environment.yml # (even if it is not specified at all in environment.yml) # https://github.com/conda/conda/issues/9506 - conda_requires = ['python~=3.7'] + conda_requires = ['python~=3.8'] for req in install_requirements: if req.name == 'python' or any(re.match(ignore, str(req)) for ignore in CONDA_IGNORE): continue