Skip to content

Commit 1ff4077

Browse files
committed
chore: split release notes into separate files
1 parent f10fbb1 commit 1ff4077

32 files changed

Lines changed: 171 additions & 166 deletions

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Checklist of items for pull request
1111
- [ ] Added doxygen comments to new and modified procedures
1212
- [ ] Updated meson files, makefiles, and Visual Studio project files for new source files
1313
- [ ] Updated [definition files](/MODFLOW-ORG/modflow6/tree/develop/doc/mf6io/mf6ivar)
14-
- [ ] Updated [develop.toml](/MODFLOW-ORG/modflow6/doc/ReleaseNotes/develop.toml) with a plain-language description of the bug fix, change, feature; required for changes that may affect users
14+
- [ ] Added a release note fragment to [doc/ReleaseNotes/changes/](/MODFLOW-ORG/modflow6/doc/ReleaseNotes/changes) with a plain-language description of the bug fix, change, or feature; required for changes that may affect users
1515
- [ ] Updated [input and output guide](/MODFLOW-ORG/modflow6/doc/mf6io)
1616
- [ ] Removed checklist items not relevant to this pull request
1717

CONTRIBUTING.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,17 @@ To submit a pull request (PR):
6666

6767
1. To avoid duplicating effort, [search](https://github.com/MODFLOW-ORG/modflow6/pulls) for an open or closed PR that relates to your submission.
6868
2. Fork the MODFLOW-ORG/modflow6 repo and make your changes in a new branch, following our style and commit message guidelines and [including appropriate test cases](./DEVELOPER.md#writing-tests).
69-
3. [Check the spelling and formatting](./DEVELOPER.md#formatting) of any modified or new Fortran source files, python files definition files, markdown, and LaTeX files.
70-
4. [Rebuild makefiles](./DEVELOPER.md#generating-makefiles) and update MSVS project files if you added, removed, or renamed any source files.
71-
5. [Run the full test suite](./DEVELOPER.md#running-tests) and make sure all tests pass.
72-
6. Push your branch to GitHub and create a pull request to the `develop` branch.
73-
7. If we suggest changes:
69+
3. For user-facing changes (new features, bug fixes, behavior changes), add a release note fragment to `doc/ReleaseNotes/changes/`. Name the file with a short descriptive slug, e.g. `wel-auto-flow-reduce-auxname.toml`. Each fragment is a TOML file with three keys:
70+
```toml
71+
section = "features" # or "fixes" or "examples"
72+
subsection = "stress" # see [subsections] in doc/ReleaseNotes/schema.toml for valid values
73+
description = "Description of the change..."
74+
```
75+
4. [Check the spelling and formatting](./DEVELOPER.md#formatting) of any modified or new Fortran source files, python files definition files, markdown, and LaTeX files.
76+
5. [Rebuild makefiles](./DEVELOPER.md#generating-makefiles) and update MSVS project files if you added, removed, or renamed any source files.
77+
6. [Run the full test suite](./DEVELOPER.md#running-tests) and make sure all tests pass.
78+
7. Push your branch to GitHub and create a pull request to the `develop` branch.
79+
8. If we suggest changes:
7480
a. make the required updates
7581
b. make sure tests still pass
7682
c. rebase your branch if needed

DEVELOPER.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -957,8 +957,8 @@ This process can be repeated periodically to stay in sync with the develop branc
957957

958958
To deprecate a MODFLOW 6 input/output option in a DFN file:
959959

960-
- Add a new `deprecated x.y.z` attribute to the appropriate variable in the package DFN file, where `x.y.z` is the version the deprecation is introduced. Mention the deprecation prominently in the release notes.
961-
- If support for the deprecated option is removed (typically after at least 2 minor or major releases or 1 year), add a new `removed x.y.z` attribute to the variable in the DFN file, where `x.y.z` is the version in which support for the option was removed. The line containing `deprecated x.y.z` should not be deleted. Mention the removal prominently in the release notes.
960+
- Add a new `deprecated x.y.z` attribute to the appropriate variable in the package DFN file, where `x.y.z` is the version the deprecation is introduced. Mention the deprecation prominently in the release notes by adding a fragment to `doc/ReleaseNotes/changes/`.
961+
- If support for the deprecated option is removed (typically after at least 2 minor or major releases or 1 year), add a new `removed x.y.z` attribute to the variable in the DFN file, where `x.y.z` is the version in which support for the option was removed. The line containing `deprecated x.y.z` should not be deleted. Mention the removal prominently in the release notes by adding a fragment to `doc/ReleaseNotes/changes/`.
962962
- Deprecated/removed attributes are not removed from DFN files but remain in perpetuity. The `doc/mf6io/mf6ivar/deprecations.py` script generates a markdown deprecation table which is converted to LaTeX by `doc/ReleaseNotes/mk_deprecations.py` for inclusion in the MODFLOW 6 release notes. Deprecations and removals should still be mentioned separately in the release notes, however.
963963

964964
### Finding deprecations

distribution/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ Before proceeding with a release, check for deprecated DFN variables due for rem
141141

142142
### Review release notes
143143

144-
Double-check release notes in `doc/ReleaseNotes/develop.toml` with the authors of any changes to be included in the release.
144+
Double-check release notes in `doc/ReleaseNotes/changes/` with the authors of any changes to be included in the release. Each file in that directory is one release note item.
145145

146-
For hotfix releases, `develop.toml` must be trimmed manually on the release branch. For patch releases made from `develop`, release notes are automatically filtered to include only fixes.
146+
For hotfix releases, fragment files for features not included in the hotfix must be removed manually on the release branch. For patch releases made from `develop`, release notes are automatically filtered to include only fixes.
147147

148148
**Note**: For all releases, add a line to the Release History section of `ReleaseNotes.tex` providing the version number, date and DOI of the release, e.g. `6.4.4 & February 13, 2024 & \url{https://doi.org/10.5066/P9FL1JCC}`. DOIs are updated with minor releases and remain the same for patch releases.
149149

@@ -209,15 +209,15 @@ This will substitute the new version number into the necessary files and set `ID
209209

210210
#### Update release notes
211211

212-
Generate a `develop.tex` file from `develop.toml`:
212+
Generate a `develop.tex` file from the release note fragments:
213213

214214
```shell
215215
pixi run make-release-notes
216216
```
217217

218218
Move/rename it to `doc/ReleaseNotes/previous/vx.y.z.tex` (where `x.y.z` is the version just released), then insert a new line `\input{./previous/vx.y.z.tex}` at the top of `doc/ReleaseNotes/appendixA.tex`.
219219

220-
If this was not a hotfix, trim `doc/ReleaseNotes/develop.toml` as necessary to remove items just released.
220+
Delete all fragment files in `doc/ReleaseNotes/changes/` that were included in the release. The `.gitkeep` file should remain so the directory is tracked by git.
221221

222222
Create and merge (don't squash) a pull request from this branch into `develop`.
223223

distribution/build_docs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def build_notes_tex(force: bool = False, patch: bool = False):
140140

141141
build_deprecations_tex(force=force)
142142

143-
toml_path = RELEASE_NOTES_PATH / "develop.toml"
143+
toml_path = RELEASE_NOTES_PATH / "schema.toml"
144144
tex_path = RELEASE_NOTES_PATH / "develop.tex"
145145
if tex_path.is_file() and not force:
146146
print(f"{tex_path} already exists.")

doc/ReleaseNotes/changes/.gitkeep

Whitespace-only changes.

doc/ReleaseNotes/changes/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Release notes
2+
3+
Add files to this directory to describe user-facing changes (bug fixes, new features, new examples, etc) to be included in the next release of MODFLOW 6.
4+
5+
To add a release note, create a `.toml` file with a short descriptive name, e.g. `wel-auto-flow-reduce-auxname.toml`:
6+
7+
```toml
8+
section = "fixes"
9+
subsection = "stress"
10+
description = "Plain-language description of the change..."
11+
```
12+
13+
Valid values for `section` and `subsection` are defined in `doc/ReleaseNotes/schema.toml`.
14+
15+
Files are merged by the `mk_releasenotes.py` script underlying the `pixi run make-release-notes` task.
16+
17+
Delete all fragment files included in the release. This directory should be empty (aside from this README) after the post-release reset.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
section = "fixes"
2+
subsection = "parallel"
3+
description = "The adaptive time stepping algorithm (ATS) was not working correctly in parallel mode. This applies to GWT and GWE models, when the model time step derived from the ATS\\_PERCEL parameter is not uniform across processes. In such a case, a deadlock occurred and the simulation was stalled. This fix ensures that the actual calculation time steps are synchronized across all processes such that they remain in lockstep."
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
section = "fixes"
2+
subsection = "basic"
3+
description = "The BMI interface's get\\_grid\\_model\\_type function worked only for numerical model types such as GWF, GWT, and GWE, but would crash for PRT models. Fix the function's implementation to work with all model types."
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
section = "fixes"
2+
subsection = "basic"
3+
description = "Stop with an informative error if a discretization package is missing after loading the model input file's PACKAGES block."

0 commit comments

Comments
 (0)