Skip to content

Commit 4c127ba

Browse files
authored
Add software process document (#424)
* Add software process document * Revise suffix scheme to follow extension versioning guidelines (alpha->a) * Add note about APIs including only pub released versions
1 parent 11c555b commit 4c127ba

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

docs/format/source/index.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ Welcome to the NWB Format Specification
3131
:maxdepth: 2
3232
:caption: History & Legal
3333

34+
software_process
3435
format_release_notes
3536
credits
3637

@@ -42,5 +43,3 @@ Welcome to the NWB Format Specification
4243
* :ref:`genindex`
4344
* :ref:`modindex`
4445
* :ref:`search`
45-
46-
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
The "dev" Branch and Releases
2+
=============================
3+
4+
The default branch is "dev". The "dev" branch will hold the bleeding edge version of the NWB format specification,
5+
language specification, and storage specification. PRs should be made to "dev". Every PR should include an update to
6+
the corresponding format/language/storage release notes. If the PR involves a change to the NWB format, the PR should
7+
also update the version of the format in three places: `/docs/format/conf.py`, `/core/nwb.namespace.yaml` and
8+
`/core/nwb.file.yaml`. The new version string should be the next bugfix/minor/major version of the format with the
9+
suffix "a" (for "alpha"). For example, if the format is currently in version "2.2.0" and the format is then updated /
10+
released internally with a bug fix, then the PR for that bug fix should update the format version from "2.2.0" to
11+
"2.2.1a". Appending the "a" suffix ensures that any person or API accessing the default dev branch of the repo
12+
containing an internally released version of the schema receives the schema with a version string that is distinct from
13+
the full public released versions of the schema.
14+
15+
Before merging a PR on nwb-schema, developers should take care to test their changes locally with the latest version
16+
of PyNWB and MatNWB to ensure compatibility. If the APIs require changes to work with the PR, those changes should be
17+
implemented and tested locally before merging the PR to ensure that the API changes can be implemented and no further
18+
changes to the schema are required.
19+
20+
When a new public release is ready, the branches of the APIs, PyNWB and MatNWB, that track nwb-schema should be checked
21+
to ensure that when the new release is made, the branches in the APIs can be merged without issue.
22+
23+
Immediately prior to a new public release, the version of the format should be updated to remove the any alphabetic,
24+
suffixes, e.g., "a", "b", and "rc", and the documentation and release notes should be checked and updated (see release
25+
process documents).
26+
27+
It is important that all public releases of nwb-schema contain a publicly released version of hdmf-common-schema. If a
28+
public release contains an internally released version of hdmf-common-schema, e.g., from an untagged commit on the "dev"
29+
branch, then tracking the identity of the included hdmf-common-schema becomes difficult and the same version string
30+
could point to two different versions of the schema.
31+
32+
For the same reason, it is important that all public releases of the APIs, PyNWB and MatNWB, contain a publicly
33+
released version of nwb-schema. Starting with nwb-schema version 2.2.0, the dev branch and all public releases of PyNWB
34+
and MatNWB include only publicly released versions of nwb-schema. For more details, see the
35+
[PyNWB software process documentation](https://pynwb.readthedocs.io/en/latest/software_process.html).
36+
37+
The [NWB Extensions Versioning Guidelines](https://nwb-extensions.github.io/versioning_guidelines) are used to guide
38+
versioning of the NWB core schema, as well as extensions to NWB.

0 commit comments

Comments
 (0)