Skip to content

Commit c0ad3e7

Browse files
authored
Merge pull request #1365 from NeurodataWithoutBorders/rc/2.0.0
2 parents 441c64f + 0ef954f commit c0ad3e7

File tree

91 files changed

+4797
-481
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+4797
-481
lines changed

.circleci/config.yml

Lines changed: 52 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,6 @@ references:
3838
username: hdmf
3939
password: $DOCKERHUB_PASSWORD
4040

41-
py36: &py36
42-
docker:
43-
- image: circleci/python:3.6.13-buster
44-
auth:
45-
username: hdmf
46-
password: $DOCKERHUB_PASSWORD
47-
4841
conda-image: &conda-image
4942
docker:
5043
- image: continuumio/miniconda3:4.9.2
@@ -161,14 +154,6 @@ jobs:
161154
- run:
162155
<<: *run-style-check
163156

164-
python36:
165-
<<: *py36
166-
environment:
167-
- TEST_TOX_ENV: "py36"
168-
- BUILD_TOX_ENV: "build-py36"
169-
- TEST_WHEELINSTALL_ENV: "wheelinstall"
170-
<<: *ci-steps
171-
172157
python37:
173158
<<: *py37
174159
environment:
@@ -183,7 +168,6 @@ jobs:
183168
- TEST_TOX_ENV: "py38"
184169
- BUILD_TOX_ENV: "build-py38"
185170
- TEST_WHEELINSTALL_ENV: "wheelinstall"
186-
- UPLOAD_WHEELS: "true"
187171
<<: *ci-steps
188172

189173
python39:
@@ -192,41 +176,33 @@ jobs:
192176
- TEST_TOX_ENV: "py39"
193177
- BUILD_TOX_ENV: "build-py39"
194178
- TEST_WHEELINSTALL_ENV: "wheelinstall"
179+
- UPLOAD_WHEELS: "true" # upload distributions from only this job to pypi
195180
<<: *ci-steps
196181

197-
python38-upgrade-dev:
198-
<<: *py38
182+
python39-upgrade-dev:
183+
<<: *py39
199184
environment:
200-
- TEST_TOX_ENV: "py38-upgrade-dev"
201-
- BUILD_TOX_ENV: "build-py38-upgrade-dev"
185+
- TEST_TOX_ENV: "py39-upgrade-dev"
186+
- BUILD_TOX_ENV: "build-py39-upgrade-dev"
202187
- TEST_WHEELINSTALL_ENV: "wheelinstall"
203188
<<: *ci-steps
204189

205-
python38-upgrade-dev-pre:
206-
<<: *py38
190+
python39-upgrade-dev-pre:
191+
<<: *py39
207192
environment:
208-
- TEST_TOX_ENV: "py38-upgrade-dev-pre"
209-
- BUILD_TOX_ENV: "build-py38-upgrade-dev-pre"
193+
- TEST_TOX_ENV: "py39-upgrade-dev-pre"
194+
- BUILD_TOX_ENV: "build-py39-upgrade-dev-pre"
210195
- TEST_WHEELINSTALL_ENV: "wheelinstall"
211196
<<: *ci-steps
212197

213-
python36-min-req:
214-
<<: *py36
198+
python37-min-req:
199+
<<: *py37
215200
environment:
216-
- TEST_TOX_ENV: "py36-min-req"
217-
- BUILD_TOX_ENV: "build-py36-min-req"
201+
- TEST_TOX_ENV: "py37-min-req"
202+
- BUILD_TOX_ENV: "build-py37-min-req"
218203
- TEST_WHEELINSTALL_ENV: "wheelinstall"
219204
<<: *ci-steps
220205

221-
miniconda36:
222-
<<: *conda-image
223-
environment:
224-
- CONDA_PYTHON_VER: "3.6.*=*_cpython" # avoid using pypy compiler
225-
- TEST_TOX_ENV: "py36"
226-
- BUILD_TOX_ENV: "build-py36"
227-
- TEST_WHEELINSTALL_ENV: "wheelinstall"
228-
<<: *conda-steps
229-
230206
miniconda37:
231207
<<: *conda-image
232208
environment:
@@ -254,12 +230,6 @@ jobs:
254230
- TEST_WHEELINSTALL_ENV: "wheelinstall"
255231
<<: *conda-steps
256232

257-
gallery36:
258-
<<: *py36
259-
environment:
260-
- TEST_TOX_ENV: "gallery-py36"
261-
<<: *gallery-steps
262-
263233
gallery37:
264234
<<: *py37
265235
environment:
@@ -278,26 +248,26 @@ jobs:
278248
- TEST_TOX_ENV: "gallery-py39"
279249
<<: *gallery-steps
280250

281-
gallery38-upgrade-dev:
282-
<<: *py38
251+
gallery39-upgrade-dev:
252+
<<: *py39
283253
environment:
284-
- TEST_TOX_ENV: "gallery-py38-upgrade-dev"
254+
- TEST_TOX_ENV: "gallery-py39-upgrade-dev"
285255
<<: *gallery-steps
286256

287-
gallery38-upgrade-dev-pre:
288-
<<: *py38
257+
gallery39-upgrade-dev-pre:
258+
<<: *py39
289259
environment:
290-
- TEST_TOX_ENV: "gallery-py38-upgrade-dev-pre"
260+
- TEST_TOX_ENV: "gallery-py39-upgrade-dev-pre"
291261
<<: *gallery-steps
292262

293-
gallery36-min-req:
294-
<<: *py36
263+
gallery37-min-req:
264+
<<: *py37
295265
environment:
296-
- TEST_TOX_ENV: "gallery-py36-min-req"
266+
- TEST_TOX_ENV: "gallery-py37-min-req"
297267
<<: *gallery-steps
298268

299269
test-validation:
300-
<<: *py38
270+
<<: *py39
301271
steps:
302272
- checkout
303273
- run: git submodule sync
@@ -309,13 +279,13 @@ jobs:
309279
command: |
310280
. ../venv/bin/activate
311281
pip install tox
312-
tox -e validation-py38
282+
tox -e validation-py39
313283
# Install is expected to be quick. Increase timeout in case there are some network issues.
314284
# While pip installing tox does not output by default. Circle thinks task is dead after 10 min.
315285
no_output_timeout: 30m
316286

317287
deploy-dev:
318-
<<: *py38
288+
<<: *py39
319289
steps:
320290
- checkout
321291
- attach_workspace:
@@ -336,7 +306,7 @@ jobs:
336306
--exit-success-if-missing-token
337307
338308
deploy-release:
339-
<<: *py38
309+
<<: *py39
340310
steps:
341311
- attach_workspace:
342312
at: ./
@@ -366,27 +336,27 @@ workflows:
366336
jobs:
367337
- flake8:
368338
<<: *no_filters
369-
- python38:
339+
- python37-min-req:
370340
<<: *no_filters
371-
- python36-min-req:
341+
- python39:
372342
<<: *no_filters
373-
- miniconda36:
343+
- miniconda37:
374344
<<: *no_filters
375-
- miniconda38:
345+
- miniconda39:
376346
<<: *no_filters
377-
- gallery38:
347+
- gallery37-min-req:
378348
<<: *no_filters
379-
- gallery36-min-req:
349+
- gallery38: # TODO replace with gallery39 after allensdk support py39
380350
<<: *no_filters
381351
- deploy-dev:
382352
requires:
383353
- flake8
384-
- python38
385-
- python36-min-req
386-
- miniconda36
387-
- miniconda38
388-
- gallery38
389-
- gallery36-min-req
354+
- python37-min-req
355+
- python39
356+
- miniconda37
357+
- miniconda39
358+
- gallery37-min-req
359+
- gallery38 # gallery39
390360
filters:
391361
tags:
392362
ignore:
@@ -400,12 +370,12 @@ workflows:
400370
- deploy-release:
401371
requires:
402372
- flake8
403-
- python38
404-
- python36-min-req
405-
- miniconda36
406-
- miniconda38
407-
- gallery38
408-
- gallery36-min-req
373+
- python37-min-req
374+
- python39
375+
- miniconda37
376+
- miniconda39
377+
- gallery37-min-req
378+
- gallery38 # gallery39
409379
filters:
410380
tags:
411381
only: /^[0-9]+(\.[0-9]+)*(\.post[0-9]+)?$/
@@ -424,41 +394,33 @@ workflows:
424394
jobs:
425395
- flake8:
426396
<<: *no_filters
427-
- python36:
428-
<<: *no_filters
429397
- python37:
430398
<<: *no_filters
399+
- python37-min-req:
400+
<<: *no_filters
431401
- python38:
432402
<<: *no_filters
433403
- python39:
434404
<<: *no_filters
435-
- python38-upgrade-dev:
436-
<<: *no_filters
437-
- python36-min-req:
405+
- python39-upgrade-dev:
438406
<<: *no_filters
439-
- miniconda36:
407+
- python39-upgrade-dev-pre:
440408
<<: *no_filters
441409
- miniconda37:
442410
<<: *no_filters
443411
- miniconda38:
444412
<<: *no_filters
445413
- miniconda39:
446414
<<: *no_filters
447-
- gallery36:
448-
<<: *no_filters
449415
- gallery37:
450416
<<: *no_filters
417+
- gallery37-min-req:
418+
<<: *no_filters
451419
- gallery38:
452420
<<: *no_filters
453421
- gallery39:
454422
<<: *no_filters
455-
- gallery38-upgrade-dev:
456-
<<: *no_filters
457-
- gallery36-min-req:
458-
<<: *no_filters
459-
- python38-upgrade-dev-pre:
460-
<<: *no_filters
461-
- gallery38-upgrade-dev-pre:
423+
- gallery39-upgrade-dev:
462424
<<: *no_filters
463-
- test-validation:
425+
- gallery39-upgrade-dev-pre:
464426
<<: *no_filters

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ assignees: ''
2020
<!--Please describe your environment according to the following bullet points.-->
2121

2222
Python Executable: Conda or Python
23-
Python Version: Python 3.6, 3.7, or 3.8
23+
Python Version: Python 3.7, 3.8, or 3.9
2424
Operating System: Windows, macOS or Linux
2525
HDMF Version:
2626
PyNWB Version:

.github/workflows/workflow.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
os: [ubuntu-latest, macos-latest, windows-latest]
1616
env:
1717
OS: ${{ matrix.os }}
18-
PYTHON: '3.8'
18+
PYTHON: '3.9'
1919
steps:
2020
- name: Cancel Workflow Action
2121
uses: styfle/[email protected]
@@ -27,7 +27,7 @@ jobs:
2727
- name: Set up Python
2828
uses: actions/setup-python@v2
2929
with:
30-
python-version: 3.8
30+
python-version: 3.9
3131
- name: Install dependencies
3232
run: |
3333
python -m pip install --upgrade pip

CHANGELOG.md

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,59 @@
11
# PyNWB Changelog
22

3-
## PyNWB 1.6.0 (TBD, 2021)
3+
## PyNWB 2.0.0 (Upcoming)
4+
5+
### Breaking changes:
6+
- ``SweepTable`` has been deprecated in favor of the new icephys metadata tables. Use of ``SweepTable``
7+
is still possible but no longer recommended. @oruebel (#1349
8+
- ``TimeSeries.__init__`` now requires the ``data`` argument because the 'data' dataset is required by the schema.
9+
If a ``TimeSeries`` is read without a value for ``data``, it will be set to a default value. For most
10+
``TimeSeries``, this is a 1-dimensional empty array with dtype uint8. For ``ImageSeries`` and
11+
``DecompositionSeries``, this is a 3-dimensional empty array with dtype uint8. @rly (#1274)
12+
- ``TimeSeries.__init__`` now requires the ``unit`` argument because the 'unit' attribute is required by the schema.
13+
If a ``TimeSeries`` is read without a value for ``unit``, it will be set to a default value. For most
14+
``TimeSeries``, this is "unknown". For ``IndexSeries``, this is "N/A" according to the NWB 2.4.0 schema. @rly (#1274)
415

5-
## Minor new features:
16+
### New features:
17+
- Added new intracellular electrophysiology hierarchical table structure from ndx-icephys-meta to NWB core.
18+
This includes the new types ``TimeSeriesReferenceVectorData``, ``IntracellularRecordingsTable``,
19+
``SimultaneousRecordingsTable``, ``SequentialRecordingsTable``, ``RepetitionsTable`` and
20+
``ExperimentalConditionsTable`` as well as corresponding updates to ``NWBFile`` to support interaction
21+
with the new tables. @oruebel (#1349)
22+
- Added support for NWB 2.4.0. See [Release Notes](https://nwb-schema.readthedocs.io/en/latest/format_release_notes.html)
23+
for more details. @oruebel, @rly (#1349)
24+
- Dropped Python 3.6 support, added Python 3.9 support. @rly (#1377)
25+
- Updated requirements to allow compatibility with HDMF 3 and h5py 3. @rly (#1377)
26+
27+
### Tutorial enhancements:
28+
- Added new tutorial for intracellular electrophysiology to describe the use of the new metadata tables
29+
and declared the previous tutoral using ``SweepTable`` as deprecated. @oruebel (#1349)
30+
- Added new tutorial for querying intracellular electrophysiology metadata
31+
(``docs/gallery/domain/plot_icephys_pandas.py``). @oruebel (#1349, #1383)
32+
- Added thumbnails for tutorials to improve presentation of online docs. @oruebel (#1349)
33+
- Used `sphinx.ext.extlinks` extension in docs to simplify linking to common targets. @oruebel (#1349)
34+
- Created new section for advanced I/O tutorials and moved parallel I/O tutorial to its own file. @oruebel (#1349)
35+
36+
### Minor new features:
637
- Add RRID for citing PyNWB to the docs. @oruebel (#1372)
38+
- Update CI and tests to handle deprecations in libraries. @rly (#1377)
39+
- Add test utilities for icephys (``pynwb.testing.icephys_testutils``) to ease creation of test data
40+
for tests and tutorials. @oruebel (#1349, #1383)
741

8-
## Bug fix:
9-
- Enforce electrode ID uniqueness during insertion into table. @CodyCBakerPhD (#1344)
10-
- Fix integration tests with invalid test data that will be caught by future hdmf validator version.
42+
### Bug fixes:
43+
- Updated behavior of ``make clean`` command for docs to ensure tutorial files are cleaned up. @oruebel (#1349)
44+
- Enforced electrode ID uniqueness during insertion into table. @CodyCBakerPhD (#1344)
45+
- Fixed integration tests with invalid test data that will be caught by future hdmf validator version.
1146
@dsleiter, @rly (#1366, #1376)
12-
- Fix build warnings in docs @oruebel (#1380)
47+
- Fixed build warnings in docs. @oruebel (#1380)
48+
- Fix intersphinx links in docs for numpy. @oruebel (#1386)
49+
- Previously, the ``data`` argument was required in ``OpticalSeries.__init__`` even though ``external_file`` could
50+
be provided in place of ``data``. ``OpticalSeries.__init__`` now makes ``data`` optional. However, this has the
51+
side effect of moving the position of ``data`` to later in the argument list, which may break code that relies
52+
on positional arguments for ``OpticalSeries.__init__``. @rly (#1274)
1353

1454
## PyNWB 1.5.1 (May 24, 2021)
1555

16-
## Bug fix:
56+
### Bug fixes:
1757
- Raise minimum version of pandas from 0.23 to 1.0.5 to be compatible with numpy 1.20, and raise minimum version of
1858
HDMF to use the corresponding change in HDMF. @rly (#1363)
1959
- Update documentation and update structure of requirements files. @rly (#1363)
@@ -56,7 +96,7 @@
5696
- Add capability to add a row to a column after IO.
5797
- Add method `AbstractContainer.get_fields_conf`.
5898
- Add functionality for storing external resource references.
59-
- Add method `hdmf.utils.get_docval_macro` to get a tuple of the current values for a docval_macro, e.g., 'array_data'
99+
- Add method `hdmf.utils.get_docval_macro` to get a tuple of the current values for a docval_macro, e.g., 'array_data'
60100
and 'scalar_data'.
61101
- `DynamicTable` can be automatically generated using `get_class`. Now the HDMF API can read files with extensions
62102
that contain a DynamicTable without needing to import the extension first.

0 commit comments

Comments
 (0)