-
Notifications
You must be signed in to change notification settings - Fork 116
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into pramodk/ion-var-as-constant
- Loading branch information
Showing
35 changed files
with
618 additions
and
322 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
--- | ||
name: NEURON Patch Release | ||
about: Create a NEURON Patch release for an existing branch. | ||
title: 'NEURON [x.y.z] patch release' | ||
labels: 'release' | ||
assignees: '' | ||
|
||
--- | ||
|
||
Action items | ||
============ | ||
|
||
Pre-release | ||
--- | ||
- [ ] Create a cherrypicks branch where all commits go into new release and open a PR against `release/x.y` branch | ||
- [ ] Create CoreNEURON tag on the `release/x.y` branch after cherrypicking required commits, update semantic version in its `CMakeLists.txt`, tag it & update submodule in cherrypicks PR | ||
- [ ] Look out for ModelDB regressions by manually submitting and analyzing [nrn-modeldb-ci](https://github.com/neuronsimulator/nrn-modeldb-ci/actions/workflows/nrn-modeldb-ci.yaml?query=event%3Aschedule++) for the cherrypicks branch vs previous version | ||
- [ ] Update cherrypicks PR: | ||
- [ ] Update semantic version in `CMakeLists.txt` | ||
- [ ] Update changelog below and agree on it with everyone; then commit it to `docs/changelog` in the cherrypicks PR (copy structure as-is) | ||
- [ ] Update `docs/index.rst` accordingly with the new `.pkg` and `.exe` links for `PKG installer` and `Windows Installer` | ||
|
||
Sanity checks | ||
--- | ||
- [ ] After cherrypicks PR is merged, make sure GitHub, Azure and CircleCI builds pass for `release/x.y` branch | ||
- [ ] Run [nrn-build-ci](https://github.com/neuronsimulator/nrn-build-ci/actions/workflows/build-neuron.yml) for the `release/x.y` branch; see [nrn-build-ci guide](https://github.com/neuronsimulator/nrn-build-ci#azure-wheels-testing---manual-workflow) | ||
- [ ] Activate ReadTheDocs build for `release/x.y` & make it hidden. Check docs are fine after build is done. | ||
- [ ] Run BBP Simulation Stack, CoreNEURON CI & other relevant tests | ||
- [ ] Build release wheels but WITHOUT upload ([see details](https://nrn.readthedocs.io/en/latest/install/python_wheels.html#publishing-the-wheels-on-pypi-via-azure)) | ||
|
||
|
||
Releasing | ||
--- | ||
- [ ] Create new release+tag on GitHub via [release workflow](https://github.com/neuronsimulator/nrn/actions/workflows/release.yml?query=workflow%3A%22NEURON+Release%22). Note that the GitHub release will be marked as pre-release. | ||
- [ ] Create, test and upload manual artifacts | ||
- [ ] MacOS package installer (manual task, ask Michael) | ||
- [ ] arm64 wheels (manual task, check with Alex or Pramod) | ||
- [ ] aarch64 wheels (use existing `release/x.y-aarch64` branch for this, see [guide](https://nrn.readthedocs.io/en/latest/install/python_wheels.html#publishing-the-wheels-on-pypi-via-circleci)) | ||
- [ ] Publish the `x.y.z` wheels on PyPI; see [wheel publishing instructions](https://nrn.readthedocs.io/en/latest/install/python_wheels.html#publishing-the-wheels-on-pypi-via-azure) | ||
- [ ] Once wheels are published, activate the `x.y.z` tag on ReadTheDocs | ||
- [ ] Upload Windows installer from the wheels publishing Azure run (to get correct tag) | ||
- [ ] Publish release on GitHub (edit https://github.com/neuronsimulator/nrn/releases/tag/x.y.z and un-tick the pre-release checkbox) | ||
|
||
|
||
Post-release | ||
--- | ||
- [ ] Deactivate ReadTheDocs build for `release/x.y` | ||
- [ ] Let people know :rocket: | ||
- [ ] Cherrypick changelog and installer links to `master` | ||
|
||
|
||
Changelog | ||
====== | ||
|
||
# NEURON X.Y | ||
|
||
## [x.y.z] | ||
_Release Date_ : DD-MM-YYYY | ||
|
||
|
||
### What's New | ||
* [List new features/support added] | ||
* ..... | ||
|
||
|
||
### Bug Fixes | ||
* [List the important bug fixes] | ||
* ... | ||
|
||
|
||
### Improvements / Other Changes | ||
* [List the improvements made in the new release and any other changes] | ||
* ... | ||
|
||
|
||
For the complete list of commits check [GitHub Issue #[GH_no.]](https://github.com/neuronsimulator/nrn/issues/#[GH_no.]) | ||
|
||
ReadTheDocs sneak peek | ||
====================== | ||
* https://nrn.readthedocs.io/en/release-x.y | ||
|
||
Commits going into x.y.z | ||
======================== | ||
|
||
[given `a.b.c` is the last release:] | ||
|
||
Since [a.b.c], with: | ||
```bash | ||
git log --pretty=format:"%h : %s" a.b.c..release/x.y | ||
``` | ||
we get: | ||
|
||
- [ ] commit 1 | ||
- [ ] commit 2 | ||
- [ ] ... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
def _convert_value(key, value): | ||
"""Convert a string representing a CMake variable value into a Python value. | ||
This does some basic conversion of values that CMake interprets as boolean | ||
values into Python's True/False, and includes some special cases for | ||
variables that are known to represent lists. See also: | ||
https://cmake.org/cmake/help/latest/command/if.html#basic-expressions. | ||
""" | ||
if key.upper() in {"NRN_ENABLE_MODEL_TESTS"}: | ||
return tuple(value.split(";")) | ||
elif value.upper() in {"ON", "YES", "TRUE", "Y"}: | ||
return True | ||
elif value.upper() in {"OFF", "NO", "FALSE", "N"}: | ||
return False | ||
try: | ||
return int(value) | ||
except ValueError: | ||
return value | ||
|
||
|
||
def _parse_arguments(h): | ||
"""Map the C++ structure neuron::config::arguments into Python. | ||
The Python version is accessible as neuron.config.arguments. | ||
""" | ||
global arguments | ||
arguments = {} | ||
num_keys_double = h.nrn_num_config_keys() | ||
num_keys = int(num_keys_double) | ||
assert float(num_keys) == num_keys_double | ||
for i in range(num_keys): | ||
key = h.nrn_get_config_key(i) | ||
val = h.nrn_get_config_val(i) | ||
assert key not in arguments | ||
arguments[key] = _convert_value(key, val) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.