Skip to content

Commit

Permalink
Require Python 3.8+. (#715)
Browse files Browse the repository at this point in the history
* Update CI configuration.

* Update oldest dependencies to versions with Python 3.8 wheels.

* Require Python>=3.8.

* Target Python 3.8 for black and pyupgrade.

* Update docs.

* Update changelog.

* Use Python 3.10 on Windows.

* Rename Windows CI job.

* Call codecov with python -m codecov.

* Update NEP 29 language.

* Add link to NEP 29.

Co-authored-by: Carl Simon Adorf <[email protected]>

Co-authored-by: Carl Simon Adorf <[email protected]>
  • Loading branch information
bdice and csadorf authored Mar 18, 2022
1 parent 4398d6e commit 1d47df2
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 24 deletions.
8 changes: 4 additions & 4 deletions .circleci/ci-oldest-reqs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ click==7.1.2
coverage==5.3.1
deprecation==2.0
filelock==3.0.0
h5py==2.8.0
numpy==1.13.3
h5py==2.9.0
numpy==1.19.0
packaging==15.0
pandas==1.0.0
pymongo==3.0.0
pymongo==3.10.0
pytest-cov==2.10.1
pytest-xdist==2.5.0
pytest==6.2.1
tables==3.4.2
tables==3.6.1
tqdm==4.10.0
24 changes: 12 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:
command: |
. venv/bin/activate
${PYTHON} -m pytest -n 2 --dist loadfile --cov=signac --cov-config=setup.cfg --cov-report=xml tests/ -v
codecov
${PYTHON} -m codecov
- store_artifacts:
path: test-reports
Expand Down Expand Up @@ -123,10 +123,10 @@ jobs:
- image: circleci/mongo:latest
- image: circleci/redis:latest

linux-python-36-oldest:
linux-python-38-oldest:
<<: *linux-template
docker:
- image: cimg/python:3.6
- image: cimg/python:3.8
- image: circleci/mongo:latest
- image: circleci/redis:latest
environment:
Expand All @@ -143,18 +143,18 @@ jobs:
DEPENDENCIES: "NEWEST"
PYTHON: pypy3

windows-python-38:
windows-python-310:
executor:
name: win/default
shell: bash.exe
environment:
PYTHON: python
PYTHON: C:\Python310\python
steps:
- checkout
- run:
name: Install Python
command: |
choco install python --version 3.8.1 --limit-output --no-progress
choco install python --version 3.10.2 --limit-output --no-progress
- run:
name: Install dependencies
command: |
Expand All @@ -172,7 +172,7 @@ jobs:
name: Run tests
command: |
${PYTHON} -m pytest -n 2 --dist loadfile --cov=signac --cov-report=xml tests/ -v
codecov
${PYTHON} -m codecov
macos-python-3:
macos: # executor type
Expand All @@ -196,7 +196,7 @@ jobs:
python -m pip install --progress-bar off -U -r requirements/requirements-test-optional.txt
python -m pip install --progress-bar off -U -e .
python -m pytest -n 2 --dist loadfile --cov=signac --cov-report=xml tests/ -v
codecov
python -m codecov
check-metadata:
docker:
Expand Down Expand Up @@ -245,9 +245,9 @@ workflows:
- linux-python-310-minimal
- linux-python-39
- linux-python-38
- linux-python-36-oldest
- linux-python-38-oldest
- linux-pypy-38
- windows-python-38
- windows-python-310
- macos-python-3
- check-metadata:
filters:
Expand All @@ -262,9 +262,9 @@ workflows:
- linux-python-310-minimal
- linux-python-39
- linux-python-38
- linux-python-36-oldest
- linux-python-38-oldest
- linux-pypy-38
- windows-python-38
- windows-python-310
deploy:
jobs:
- deploy-pypi:
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ repos:
hooks:
- id: pyupgrade
args:
- --py36-plus
- --py38-plus
- repo: https://github.com/PyCQA/isort
rev: '5.10.1'
hooks:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ This makes it easier to operate on large data spaces, streamlines post-processin
## Installation

The recommended installation method for **signac** is through **conda** or **pip**.
The software is tested for Python 3.6+ and is built for all major platforms.
The software is tested for Python 3.8+ and is built for all major platforms.

To install **signac** *via* the [conda-forge](https://conda-forge.github.io/) channel, execute:

Expand Down
5 changes: 5 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@ Fixed
- User-provided path functions now raise an error if not unique (#666).
- ``Collection`` class no longer raises an error when searching by a primary key that does not exist (#676).

Removed
+++++++

- Dropped support for Python 3.6 and Python 3.7 (#715) following the recommended support schedules of `NEP 29 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`__.

[1.7.0] -- 2021-06-08
---------------------

Expand Down
4 changes: 2 additions & 2 deletions doc/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ Installation
============

The recommended installation method for **signac** is via conda_ or pip_.
The software is tested for Python versions 3.6+ and has minimal dependencies.
The software is tested for Python versions 3.8+ and has minimal dependencies.
Some features such as the HDF5 integration require additional packages.
Supported Python and NumPy versions are determined according to the `NEP 29 deprecation policy <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_.
The signac framework uses the `NEP 29 deprecation policy <https://numpy.org/neps/nep-0029-deprecation_policy.html>`__ as a guideline for when to drop support for Python and NumPy versions, and does not guarantee support beyond the versions recommended in that proposal.

.. _conda: https://conda.io/
.. _conda-forge: https://conda-forge.org/
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tool.black]
target-version = ['py36']
target-version = ['py38']
include = '\.pyi?$'
exclude = '''
(
Expand Down
4 changes: 1 addition & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@
"License :: OSI Approved :: BSD License",
"Topic :: Database",
"Topic :: Scientific/Engineering :: Physics",
"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",
Expand All @@ -64,7 +62,7 @@
install_requires=requirements,
# Supported versions are determined according to NEP 29.
# https://numpy.org/neps/nep-0029-deprecation_policy.html
python_requires=">=3.6, <4",
python_requires=">=3.8, <4",
extras_require={"db": ["pymongo>=3.0"], "mpi": ["mpi4py"], "h5": ["h5py"]},
entry_points={"console_scripts": ["signac = signac.__main__:main"]},
)

0 comments on commit 1d47df2

Please sign in to comment.