The purpose of this document is to define the general release cycle for the NWB and HDMF software and schema.
Patch releases to software and schema may occur at any time.
Minor releases follow the following general release pattern:
Week 1: HDMF Common schema minor release
Week 2: HDMF minor release
Week 5: NWB schema minor release
Week 6: PyNWB and MatNWB minor release
This release pattern allows for resolution of dependencies between the different software packages.
Major releases of software (PyNWB, MatNWB, HDMF) generally occur once per year and follow a similar release pattern as minor releases with the addition of RC (release candidate) releases of NWB Schema, PyNWB, and MatNWB two to four weeks prior to the major release to support public testing.
This document describes the general release cycle, but the specific implementation will depend on current needs. For example, a major software release may be necessary more frequently than once per year in order to fix critical bugs or release major new features, but an RC release will still precede the major release. Substantial deviations from the general release cycle will be announced on the NWB social media channels.
Patch schema releases make minor bug fixes. Patch releases are not scheduled and are made as needed.
Minor schema releases generally add new features. Minor releases for HDMF Common schema are scheduled for release every three months on approximately Dec. 1, Mar. 1, Jun. 1, Sep. 1. Minor releases for NWB schema are scheduled for release every three months on approximately Jan. 5, Apr. 1, Jul. 1, Oct. 1. Scheduled releases are skipped if there are no changes.
Major schema releases generally make significant changes. Major releases are not expected through 2023. The last major NWB schema release (NWB 2.0) was in Feb. 2019. The last major HDMF Common schema release (HDMF-common 1.0) was in Sep. 2019.
Schema releases abide by the compatibility policy (TBD).
Schema releases are followed by corresponding software releases that add support for the schema release.
Patch software releases make backwards compatible bug fixes. Patch releases are not scheduled and are made as needed.
Minor software releases generally add new features in a backwards compatible manner. Minor releases for HDMF are scheduled for release on approximately Dec. 8, Mar. 8, Jun. 8 (every three months except for Sep. 8, which is a major release). Minor releases for PyNWB and MatNWB are scheduled for release on approximately Jan. 8, Apr. 8, Jul. 8 (every three months except for Oct. 8, which is a major release). Scheduled minor releases may be skipped or changed to patch releases if there are no changes.
Major software releases generally add significant new features or change the API in a non-backwards compatible manner. Major releases for HDMF are scheduled for release every year on approximately Sep. 8. Major releases for PyNWB and MatNWB are scheduled for release every year on approximately Oct. 8 with the intent to be able to present the releases to the community as part of major neuroscience conferences in the fall (e.g., SfN) . A release candidate (RC) will be released approximately one month prior to the major release date for public testing. NWB RCs will also be announced on the NWB social media channels. Major releases may be changed to minor or patch releases if there are no major changes.
Software releases abide by the compatibility policy (TBD).
The figure below illustrates the general release cycle for NWB consisting of up to 3 minor and 1 major release(s) each year.
The vertical axis of the chart illustrates the impact of releases on users. Since PyNWB and MatNWB pin versions of NWB schema and HDMF Common schema, minor releases of HDMF and HDMF Common schema generally have low direct impact on users but impact primarily developers using the development versions of NWB software. Minor releases of the NWB schema, PyNWB, and MatNWB usually have medium impact on users and developers in that they should usually not require major changes in user/application codes but may expose relevant new features or fix important bugs. Major releases of the software then may expose changed or new behaviors that may require significant changes to user and application codes, and as such can have high user impact.