Skip to content

Commit c1f4bd7

Browse files
authored
Use latest HDMF, raise min pandas, dissociate req-min and setup reqs (#1363)
1 parent 49ad17a commit c1f4bd7

File tree

8 files changed

+44
-30
lines changed

8 files changed

+44
-30
lines changed

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ jobs:
354354
command: |
355355
python -m venv ../venv
356356
. ../venv/bin/activate
357+
# use click<8 until https://github.com/j0057/github-release/issues/62 is resolved
357358
pip install "click<8" githubrelease
358359
githubrelease release $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME \
359360
create $CIRCLE_TAG --name $CIRCLE_TAG \
Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
Prepare for release of PyNWB [version]
22

33
### Before merging:
4-
- [ ] Minor releases: Update package versions in `requirements.txt`, `requirements-dev.txt`, `requirements-doc.txt`, `requirements-min.txt` as needed. See https://requires.io/github/NeurodataWithoutBorders/pynwb/requirements/?branch=dev
5-
- [ ] Check legal file dates and information in `Legal.txt`, `license.txt`, `README.rst`, `docs/source/conf.py`, and any other locations as needed
4+
- [ ] Major and minor releases: Update package versions in `requirements.txt`, `requirements-dev.txt`,
5+
`requirements-doc.txt`, `requirements-min.txt`, `setup.py` as needed
6+
See https://requires.io/github/NeurodataWithoutBorders/pynwb/requirements/?branch=dev
7+
- [ ] Check legal file dates and information in `Legal.txt`, `license.txt`, `README.rst`, `docs/source/conf.py`,
8+
and any other locations as needed
69
- [ ] Update `setup.py` as needed
710
- [ ] Update `README.rst` as needed
8-
- [ ] Update `src/pynwb/nwb-schema` submodule as needed. Check the version number manually.
11+
- [ ] Update `src/pynwb/nwb-schema` submodule as needed. Check the version number and commit SHA manually
912
- [ ] Update changelog (set release date) in `CHANGELOG.md` and any other docs as needed
10-
- [ ] Run tests locally including gallery tests and validation tests, and inspect all warnings and outputs (`python test.py -v > out.txt`)
13+
- [ ] Run tests locally including gallery tests and validation tests, and inspect all warnings and outputs
14+
(`python test.py -v > out.txt`)
1115
- [ ] Test docs locally (`make apidoc`, `make html`)
1216
- [ ] Push changes to this PR and make sure all PRs to be included in this release have been merged
1317
- [ ] Check that the readthedocs build for this PR succeeds (build latest to pull the new branch, then activate and
1418
build docs for new branch): https://readthedocs.org/projects/pynwb/builds/
1519

1620
### After merging:
1721
1. Create release by following steps in `docs/source/make_a_release.rst` or use alias `git pypi-release [tag]` if set up
18-
2. After the CI bot creates the new release (wait ~10 min), update the release notes on the [GitHub releases page](https://github.com/NeurodataWithoutBorders/pynwb/releases) with the changelog
22+
2. After the CI bot creates the new release (wait ~10 min), update the release notes on the
23+
[GitHub releases page](https://github.com/NeurodataWithoutBorders/pynwb/releases) with the changelog
1924
3. Check that the readthedocs "latest" and "stable" builds run and succeed
20-
4. Update [conda-forge/pynwb-feedstock](https://github.com/conda-forge/pynwb-feedstock)
25+
4. Update [conda-forge/pynwb-feedstock](https://github.com/conda-forge/pynwb-feedstock) with the latest version number
26+
and SHA256 retrieved from PyPI > PyNWB > Download Files > View hashes for the `.tar.gz` file. Re-render as needed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# PyNWB Changelog
22

3+
## PyNWB 1.5.1 (May 24, 2021)
4+
5+
## Bug fix:
6+
- Raise minimum version of pandas from 0.23 to 1.0.5 to be compatible with numpy 1.20, and raise minimum version of
7+
HDMF to use the corresponding change in HDMF. @rly (#1363)
8+
- Update documentation and update structure of requirements files. @rly (#1363)
9+
310
## PyNWB 1.5.0 (May 17, 2021)
411

512
### New features:

docs/source/software_process.rst

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,27 +43,24 @@ lines are covered by the tests.
4343
Requirement Specifications
4444
--------------------------
4545

46-
There are 4 kinds of requirements specification in PyNWB.
47-
48-
Setup.py Dependencies
49-
---------------------
50-
51-
There are 4 kinds of requirements specification in PyNWB.
46+
There are 5 kinds of requirements specification in PyNWB.
5247

5348
The first one is the requirements-min.txt_ file, which lists the package dependencies and their minimum versions for
54-
installing PyNWB. These dependencies are read by setup.py_ into the `install_requires` key, with the adjustment that
55-
the `'=='` listed in `requirements-min.txt` are replaced with `'>='` to reflect that they are minimum versions.
49+
installing PyNWB.
5650

57-
The second one is requirements.txt_ which contain a list of pinned (concrete) dependencies to reproduce
51+
The second one is requirements.txt_, which lists the pinned (concrete) dependencies to reproduce
5852
an entire development environment to use PyNWB.
5953

60-
The third one is requirements-dev.txt_ which contain a list of pinned (concrete) dependencies to reproduce
54+
The third one is requirements-dev.txt_, which lists the pinned (concrete) dependencies to reproduce
6155
an entire development environment to use PyNWB, run PyNWB tests, check code style, compute coverage, and create test
6256
environments.
6357

64-
The final one is requirements-doc.txt_ which contain a list of dependencies to generate the documentation for PyNWB.
58+
The fourth one is requirements-doc.txt_, which lists the dependencies to generate the documentation for PyNWB.
6559
Both this file and `requirements.txt` are used by ReadTheDocs_ to initialize the local environment for Sphinx to run.
6660

61+
The final one is within setup.py_, which contains a list of package dependencies and their version ranges allowed for
62+
running PyNWB.
63+
6764
In order to check the status of the required packages, requires.io_ is used to create a badge on the project
6865
README_. If all the required packages are up to date, a green badge appears.
6966

docs/source/update_requirements.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ the following scripts:
4646
4747
cd pynwb
4848
49-
# Set the requirements file to update
49+
# Set the requirements file to update: requirements-dev.txt or requirements-doc.txt
5050
target_requirements=requirements-dev.txt
5151
5252
mkvirtualenv pynwb-requirements

requirements-min.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
# package dependencies and their minimum versions for installing PyNWB
2-
# the requirements here specify '==' for testing; setup.py replaces '==' with '>='
3-
h5py==2.9,<3 # support for setting attrs to lists of utf-8 added in 2.9
4-
hdmf==2.5.5,<3
5-
numpy==1.16,<1.21
6-
pandas==0.23,<2
7-
python-dateutil==2.7,<3
1+
# minimum versions of package dependencies for installing PyNWB
2+
h5py==2.9 # support for setting attrs to lists of utf-8 added in 2.9
3+
hdmf==2.5.6
4+
numpy==1.16
5+
pandas==1.0.5
6+
python-dateutil==2.7
87
setuptools

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pinned dependencies to reproduce an entire development environment to use PyNWB
22
h5py==2.10.0
3-
hdmf==2.5.5
3+
hdmf==2.5.6
44
numpy==1.19.3
55
pandas==1.1.5
66
python-dateutil==2.8.1

setup.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,14 @@
1212

1313
schema_dir = 'nwb-schema/core'
1414

15-
with open('requirements-min.txt', 'r') as fp:
16-
# replace == with >= and remove trailing comments and spaces
17-
reqs = [x.replace('==', '>=').split('#')[0].strip() for x in fp]
18-
reqs = [x for x in reqs if x] # remove empty strings
15+
reqs = [
16+
'h5py>=2.9,<3',
17+
'hdmf>=2.5.6,<3',
18+
'numpy>=1.16,<1.21',
19+
'pandas>=1.0.5,<2',
20+
'python-dateutil>=2.7,<3',
21+
'setuptools'
22+
]
1923

2024
print(reqs)
2125

0 commit comments

Comments
 (0)