Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add oldest & minimal CI configurations. #436

Merged
merged 25 commits into from
Jan 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
375865e
Add directory for requirements files
kidrahahjo Jan 22, 2021
76e9415
Update path for requirements files
kidrahahjo Jan 22, 2021
7d4c80d
Make versions for ruamel.yaml consitent
kidrahahjo Jan 22, 2021
dcc1c03
Add configuration for testing oldest dependencies for python 3.6
kidrahahjo Jan 22, 2021
a8aeb5e
Add the minimum version required for cloudpickle
kidrahahjo Jan 22, 2021
67a8057
Update changelog
kidrahahjo Jan 22, 2021
689b2a6
Add reference to test_template in linux-python-36-oldest job
kidrahahjo Jan 22, 2021
bd4db12
Remove reference to external variable for 'oldest' if block
kidrahahjo Jan 22, 2021
e0107a4
Update cloudpickle version to 1.4.0
kidrahahjo Jan 22, 2021
560ba66
Skip checks for testing
kidrahahjo Jan 22, 2021
c755898
Update cloudpickle version to 1.5.0
kidrahahjo Jan 22, 2021
8fa0bed
Revert version changes in requirements file
kidrahahjo Jan 22, 2021
379d16e
Fix syntax errors
kidrahahjo Jan 22, 2021
65d2fc4
Uncomment jobs
kidrahahjo Jan 22, 2021
7fb5a1f
Drop support for tqdm versions older than 4.42.0
kidrahahjo Jan 22, 2021
582effd
Remove duplicate requirements file
kidrahahjo Jan 22, 2021
7ceff06
Pin versions of Jinja2 and cloudpickle
kidrahahjo Jan 22, 2021
190200d
Update tqdm version to 4.43.0
kidrahahjo Jan 22, 2021
fcfcdc3
update changelog
kidrahahjo Jan 22, 2021
8e7254c
Pin signac version and add file for oldest requirements
kidrahahjo Jan 23, 2021
e391104
Use more specific minimum version for deprecation.
bdice Jan 23, 2021
8e6cf12
Update .circleci/config.yml
bdice Jan 23, 2021
25a876a
Add oldest requirements to environment cache key.
bdice Jan 23, 2021
a7b4d0d
Update CI configurations.
bdice Jan 23, 2021
0ded6e9
Re-trigger CI.
bdice Jan 23, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .circleci/ci-oldest-reqs.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
cloudpickle==1.1.1
deprecation==2.0.0
jinja2==2.10
tqdm==4.43.0
53 changes: 29 additions & 24 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ version: 2.1
references:
restore_keys: &restore_keys
keys:
- python-env-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "requirements-test.txt" }}-{{ checksum "requirements-precommit.txt" }}-{{ checksum ".pre-commit-config.yaml" }}
- python-env-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "requirements/requirements-test.txt" }}-{{ checksum "requirements/requirements-precommit.txt" }}-{{ checksum ".circleci/ci-oldest-reqs.txt" }}-{{ checksum ".pre-commit-config.yaml" }}

save_key: &save_key
key: python-env-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "requirements-test.txt" }}-{{ checksum "requirements-precommit.txt" }}-{{ checksum ".pre-commit-config.yaml" }}
key: python-env-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "requirements/requirements-test.txt" }}-{{ checksum "requirements/requirements-precommit.txt" }}-{{ checksum ".circleci/ci-oldest-reqs.txt" }}-{{ checksum ".pre-commit-config.yaml" }}

jobs:
pre-checks:
Expand All @@ -28,7 +28,7 @@ jobs:
- run:
name: Install pre-check dependencies
command: |
pip install --progress-bar off --user -U -r requirements-precommit.txt
pip install --progress-bar off --user -U -r requirements/requirements-precommit.txt

- run:
name: Run pre-checks
Expand All @@ -42,6 +42,7 @@ jobs:

linux-python-39: &test-template
environment:
DEPENDENCIES: "NEWEST"
SIGNAC_VERSION: "signac"
docker:
- image: circleci/python:3.9
Expand All @@ -54,14 +55,20 @@ jobs:
- run:
name: Install dependencies
command: |
pip install -U virtualenv --user
python -m pip install --progress-bar off -U virtualenv --user
mkdir -p ./venv
python -m virtualenv ./venv
python -m virtualenv ./venv --clear
. venv/bin/activate
python -m pip install --progress-bar off ${SIGNAC_VERSION}
python -m pip install --progress-bar off -r requirements.txt
python -m pip install --progress-bar off -r requirements-test.txt
python -m pip install --progress-bar off -U pip>=20.3
python -m pip install --progress-bar off -U codecov
python -m pip install --progress-bar off ${SIGNAC_VERSION}
# DEPENDENCIES can be "OLDEST" or "NEWEST"
if [ "${DEPENDENCIES}" == "OLDEST" ]; then
python -m pip install --progress-bar off -r .circleci/ci-oldest-reqs.txt
else
python -m pip install --progress-bar off -r requirements/requirements.txt
fi
python -m pip install --progress-bar off -r requirements/requirements-test.txt

- run:
name: Run tests
Expand All @@ -74,21 +81,20 @@ jobs:
path: test-reports
destination: test-reports

linux-python-39-signac-10:
<<: *test-template
environment:
SIGNAC_VERSION: "signac~=1.0.0"
linux-python-39-signac-13:
linux-python-39-signac-15:
<<: *test-template
environment:
SIGNAC_VERSION: "signac~=1.3.0"
DEPENDENCIES: "NEWEST"
SIGNAC_VERSION: "signac~=1.5.0"
linux-python-39-signac-14:
<<: *test-template
environment:
DEPENDENCIES: "NEWEST"
SIGNAC_VERSION: "signac~=1.4.0"
linux-python-39-signac-latest:
<<: *test-template
environment:
DEPENDENCIES: "NEWEST"
SIGNAC_VERSION: "git+ssh://[email protected]/glotzerlab/signac.git"
linux-python-38:
<<: *test-template
Expand All @@ -98,8 +104,11 @@ jobs:
<<: *test-template
docker:
- image: circleci/python:3.7
linux-python-36:
linux-python-36-oldest:
<<: *test-template
environment:
DEPENDENCIES: "OLDEST"
SIGNAC_VERSION: "signac==1.0.0"
docker:
- image: circleci/python:3.6

Expand All @@ -115,7 +124,7 @@ jobs:
- run:
name: install-dev-requirements
command: |
pip install --user -U -r requirements-test.txt
pip install --user -U -r requirements/requirements-test.txt

- run:
name: check-citation-metadata
Expand Down Expand Up @@ -159,13 +168,10 @@ workflows:
- linux-python-37:
requires:
- pre-checks
- linux-python-36:
- linux-python-36-oldest:
requires:
- pre-checks
- linux-python-39-signac-10:
requires:
- linux-python-39
- linux-python-39-signac-13:
- linux-python-39-signac-15:
requires:
- linux-python-39
- linux-python-39-signac-14:
Expand All @@ -183,9 +189,8 @@ workflows:
- linux-python-39
- linux-python-38
- linux-python-37
- linux-python-36
- linux-python-39-signac-10
- linux-python-39-signac-13
- linux-python-36-oldest
- linux-python-39-signac-15
- linux-python-39-signac-14
nightly:
triggers:
Expand Down
3 changes: 3 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ Changed
- ``Scheduler`` is now an abstract base class (#426).
- ``flow.scheduling.fakescheduler`` has been renamed to ``flow.scheduling.fake_scheduler`` (#426).
- Arguments to ``submit`` have been changed for all scheduler classes (#426).
- Python 3.6 is only tested with oldest dependencies (#436).
- Drop support for `tqdm <https://github.com/tqdm/tqdm>`__ versions older than `4.43.0` (#436).
- Drop support for `Jinja2 <https://palletsprojects.com/p/jinja/>`__ versions older than `2.10.0` (#436).

Fixed
+++++
Expand Down
2 changes: 0 additions & 2 deletions requirements-dev.txt

This file was deleted.

2 changes: 2 additions & 0 deletions requirements/requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
click>=7.0
ruamel.yaml>=0.16.12
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions requirements/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
signac>=1.0.0
jinja2>=2.10
cloudpickle>=1.1.1
deprecation>=2.0.0
tqdm>=4.43.0
8 changes: 4 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
# The core package.
"signac>=1.0.0",
# For the templated generation of (submission) scripts.
"jinja2>=2.8",
"jinja2>=2.10",
# To enable the parallelized execution of operations across processes.
"cloudpickle",
"cloudpickle>=1.1.1",
# Deprecation management
"deprecation>=2",
"deprecation>=2.0.0",
# Progress bars
"tqdm>=4.35.0",
"tqdm>=4.43.0",
]

description = "Simple workflow management for signac projects."
Expand Down