Skip to content

Prepare for release of PyNWB 4.0.0#2201

Draft
rly wants to merge 2 commits into
devfrom
release-4.0.0
Draft

Prepare for release of PyNWB 4.0.0#2201
rly wants to merge 2 commits into
devfrom
release-4.0.0

Conversation

@rly

@rly rly commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Draft release PR for PyNWB 4.0.0. Opened early for tracking; a few PRs still need to be merged to dev first, and the testing/docs/CI steps have not been run yet.

Before merging:

  • Make sure all PRs to be included in this release have been merged to dev.
  • Major and minor releases: Update package versions in requirements.txt, requirements-dev.txt,
    requirements-doc.txt, requirements-opt.txt, and environment-ros3.yml to the latest versions,
    and update dependency ranges in pyproject.toml and minimums in requirements-min.txt as needed.
    Run pip install pur && pur -r requirements-dev.txt -r requirements.txt -r requirements-opt.txt
    and manually update environment-ros3.yml. Done via pur; requirements.txt/requirements-dev.txt were already current. numpy/pandas kept within hdmf and pandas<3 ceilings. requirements-min.txt and pyproject.toml ranges left unchanged (no change needed). Not yet validated by the test/CI steps below.
  • Check legal file dates and information in Legal.txt, license.txt, README.rst, docs/source/conf.py,
    and any other locations as needed Copyright year updated 2017-2025 → 2017-2026.
  • Update pyproject.toml as needed No change needed; version is derived dynamically from the git tag.
  • Update README.rst as needed Copyright year updated.
  • Update src/pynwb/nwb-schema submodule as needed. Check the version number and commit SHA
    manually. Make sure we are using the latest release and not the latest commit on the main branch. Already at the 2.10.0 release tag.
  • Update changelog (set release date) in CHANGELOG.md and any other docs as needed Left as (Upcoming) until the release date is known.
  • Run tests locally including gallery, validation, and streaming tests, and inspect all warnings and outputs
    (python test.py -v -p -i -b -w -r > out.txt 2>&1). Try to remove all warnings.
  • Test docs locally and inspect all warnings and outputs cd docs; make clean && make html
  • After pushing this branch to GitHub, manually trigger the "Run all tests" GitHub Actions workflow on this
    branch by going to https://github.com/NeurodataWithoutBorders/pynwb/actions/workflows/run_all_tests.yml, selecting
    "Run workflow" on the right, selecting this branch, and clicking "Run workflow". Make sure all tests pass.
  • Check that the readthedocs build for this PR succeeds (see the PR check)

After merging:

  1. Create release by following steps in docs/source/make_a_release.rst or use alias git pypi-release [tag] if set up
  2. After the CI bot creates the new release (wait ~10 min), update the release notes on the
    GitHub releases page with the changelog
  3. Check that the readthedocs "stable" build runs and succeeds
  4. Either monitor conda-forge/pynwb-feedstock for the
    regro-cf-autotick-bot bot to create a PR updating the version of HDMF to the latest PyPI release, usually within
    24 hours of release, or manually create a PR updating recipe/meta.yaml with the latest version number
    and SHA256 retrieved from PyPI > PyNWB > Download Files > View hashes for the .tar.gz file. Re-render and update
    dependencies as needed.

🤖 Generated with Claude Code

rly and others added 2 commits June 23, 2026 01:28
Update the copyright year from 2017-2025 to 2017-2026 in Legal.txt,
license.txt, README.rst, and docs/source/conf.py.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump pinned dependency versions to the latest compatible releases via `pur`
on requirements.txt, requirements-dev.txt, and requirements-opt.txt
(requirements.txt and requirements-dev.txt were already current). Sync the
matching linkml-runtime pin in requirements-doc.txt and manually update
environment-ros3.yml, keeping its shared pins consistent with the resolved
versions (numpy and pandas stay within hdmf's and pynwb's ceilings) and
bumping the ros3-only matplotlib and dandi to latest.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.29%. Comparing base (483a4f1) to head (54bd730).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev    #2201   +/-   ##
=======================================
  Coverage   95.29%   95.29%           
=======================================
  Files          30       30           
  Lines        3038     3038           
  Branches      450      450           
=======================================
  Hits         2895     2895           
  Misses         87       87           
  Partials       56       56           
Flag Coverage Δ
integration 73.14% <ø> (ø)
unit 85.97% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant