Skip to content

Commit 7278e76

Browse files
authored
Merge branch 'neuronsimulator:master' into master
2 parents 2348f2b + 4156d23 commit 7278e76

File tree

868 files changed

+32237
-53755
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

868 files changed

+32237
-53755
lines changed

.circleci/config.yml

+14-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: 2.1
22

33
orbs:
4-
python: circleci/python@0.3.2
4+
python: circleci/python@2.1.1
55

66
jobs:
77
manylinux2014-aarch64:
@@ -13,7 +13,7 @@ jobs:
1313
type: string
1414

1515
machine:
16-
image: ubuntu-2004:202101-01
16+
image: default
1717

1818
resource_class: arm.medium
1919

@@ -49,25 +49,17 @@ jobs:
4949
# choose available python versions from pyenv
5050
pyenv_py_ver=""
5151
case << parameters.NRN_PYTHON_VERSION >> in
52-
38) pyenv_py_ver="3.8.7" ;;
53-
39) pyenv_py_ver="3.9.1" ;;
54-
310) pyenv_py_ver="3.10.1" ;;
55-
311) pyenv_py_ver="3.11.0" ;;
56-
*) echo "Error: pyenv python version not specified!" && exit 1;;
52+
38) pyenv_py_ver="3.8" ;;
53+
39) pyenv_py_ver="3.9" ;;
54+
310) pyenv_py_ver="3.10" ;;
55+
311) pyenv_py_ver="3.11" ;;
56+
312) pyenv_py_ver="3.12" ;;
57+
*) echo "Error: pyenv python version not specified or not supported." && exit 1;;
5758
esac
5859
59-
# install python dependencies: .10 is not available pyenv
60-
if [ "<< parameters.NRN_PYTHON_VERSION >>" == "310" ]; then
61-
sudo apt install software-properties-common -y
62-
sudo add-apt-repository ppa:deadsnakes/ppa -y
63-
sudo apt install python3.10 libpython3.10 python3.10-venv
64-
export PYTHON_EXE=$(which python3.10)
65-
else
66-
cd /opt/circleci/.pyenv/plugins/python-build/../.. && git pull && cd -
67-
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install $pyenv_py_ver --force
68-
pyenv global $pyenv_py_ver
69-
export PYTHON_EXE=$(which python)
70-
fi
60+
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install $pyenv_py_ver --force
61+
pyenv global $pyenv_py_ver
62+
export PYTHON_EXE=$(which python)
7163
7264
# test wheel
7365
packaging/python/test_wheels.sh $PYTHON_EXE $(ls -t wheelhouse/*.whl)
@@ -76,6 +68,7 @@ jobs:
7668
name: Upload nightly wheel to pypi.org
7769
command: |
7870
if [ "<< parameters.NRN_NIGHTLY_UPLOAD >>" == "true" ]; then
71+
python -m pip install --upgrade pip
7972
python -m pip install twine
8073
python -m twine upload --verbose --skip-existing -u $TWINE_USERNAME -p $TWINE_PASSWORD wheelhouse/*.whl
8174
else
@@ -94,7 +87,7 @@ workflows:
9487
- /circleci\/.*/
9588
matrix:
9689
parameters:
97-
NRN_PYTHON_VERSION: ["311"]
90+
NRN_PYTHON_VERSION: ["312"]
9891
NRN_NIGHTLY_UPLOAD: ["false"]
9992

10093
nightly:
@@ -109,5 +102,5 @@ workflows:
109102
- manylinux2014-aarch64:
110103
matrix:
111104
parameters:
112-
NRN_PYTHON_VERSION: ["38", "39", "310", "311"]
105+
NRN_PYTHON_VERSION: ["38", "39", "310", "311", "312"]
113106
NRN_NIGHTLY_UPLOAD: ["true"]

.clang-format.changes

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
SortIncludes: false
22
Standard: c++17
3-
StatementMacros: [MKDLL, MKDLLdec, MKDLLif, MKDLLvp, MKDLLvpf, PyObject_HEAD,
3+
StatementMacros: [MKDLL, MKDLLdec, MKDLLif, MKDLLvp, MKDLLvpf, MUTDEC, PyObject_HEAD,
44
declareActionCallback, declareAdjustStepper, declareArrowGlyph, declareFieldEditorCallback,
55
declareFieldSEditorCallback, declareFileChooserCallback, declareIOCallback, declareList,
66
declarePtrList, declareRubberCallback, declareSelectionCallback, declareTable, declareTable2,
7+
HocContextRestore, HocTopContextSet,
78
implementActionCallback, implementAdjustStepper, implementArrowGlyph, implementFieldEditorCallback,
89
implementFieldSEditorCallback, implementFileChooserCallback, implementIOCallback, implementList,
910
implementPtrList, implementRubberCallback, implementSelectionCallback, implementTable,

.github/ISSUE_TEMPLATE/release-patch.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ Action items
1313
Pre-release
1414
---
1515
- [ ] Create a cherrypicks branch where all commits go into new release and open a PR against `release/x.y` branch
16-
- [ ] 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
17-
- [ ] 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
16+
- [ ] Make sure to 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
1817
- [ ] Update cherrypicks PR:
1918
- [ ] Update semantic version in `CMakeLists.txt`
2019
- [ ] Update changelog below and agree on it with everyone; then commit it to `docs/changelog` in the cherrypicks PR (copy structure as-is)
@@ -23,31 +22,32 @@ Pre-release
2322
Sanity checks
2423
---
2524
- [ ] After cherrypicks PR is merged, make sure GitHub, Azure and CircleCI builds pass for `release/x.y` branch
26-
- [ ] 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)
25+
- [ ] 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)
2726
- [ ] Activate ReadTheDocs build for `release/x.y` & make it hidden. Check docs are fine after build is done.
28-
- [ ] Run BBP Simulation Stack, CoreNEURON CI & other relevant tests
29-
- [ ] 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))
27+
- [ ] Run BBP Simulation Stack & other relevant tests
3028

3129

3230
Releasing
3331
---
34-
- [ ] 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.
35-
- [ ] Create, test and upload manual artifacts
32+
- [ ] 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 and will contain the full-src-package and the Windows installer at the end of the release workflow.
33+
- [ ] 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))
34+
- [ ] Create, test and upload manual artifacts
3635
- [ ] MacOS package installer (manual task, ask Michael)
3736
- [ ] arm64 wheels (manual task, check with Alex or Pramod)
3837
- [ ] 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))
3938
- [ ] 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)
4039
- [ ] Once wheels are published, activate the `x.y.z` tag on ReadTheDocs
41-
- [ ] Upload Windows installer from the wheels publishing Azure run (to get correct tag)
42-
- [ ] Publish release on GitHub (edit https://github.com/neuronsimulator/nrn/releases/tag/x.y.z and un-tick the pre-release checkbox)
40+
- [ ] Rename the Windows installer in the GitHub release to match the new version and the supported python versions (i.e. `nrn-8.2.2.w64-mingw-py-37-38-39-310-311-setup.exe`)
41+
- [ ] Publish release on GitHub (edit https://github.com/neuronsimulator/nrn/releases/tag/x.y.z and un-tick the pre-release checkbox)
4342

4443

4544
Post-release
4645
---
4746
- [ ] Deactivate ReadTheDocs build for `release/x.y`
48-
- [ ] Go to [ReadTheDocs advanced settings](https://readthedocs.org/dashboard/nrn/advanced/) and set `Default version` to `x.y.z`
47+
- [ ] Go to [ReadTheDocs advanced settings](https://readthedocs.org/dashboard/nrn/advanced/) and set `Default version` to `x.y.z`
4948
- [ ] Let people know :rocket:
5049
- [ ] Cherrypick changelog and installer links to `master`
50+
- [ ] Update the changelog for the release on GitHub
5151

5252

5353
Changelog

.github/ISSUE_TEMPLATE/release.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@ Action items
1212

1313
Pre-release
1414
---
15-
- [ ] Look out for ModelDB regressions by analyzing [nrn-modeldb-ci last version vs nightly reports](https://github.com/neuronsimulator/nrn-modeldb-ci/actions/workflows/nrn-modeldb-ci.yaml?query=event%3Aschedule++)
16-
- [ ] Create CoreNEURON release branch, update semantic version in `CMakeLists.txt`, tag it & update submodule in NEURON
15+
- [ ] Make sur to look out for ModelDB regressions by launching analyzing [nrn-modeldb-ci last version vs nightly reports](https://github.com/neuronsimulator/nrn-modeldb-ci/actions/workflows/nrn-modeldb-ci.yaml?query=event%3Aschedule++)
1716

1817
Sanity checks
1918
---
2019
- [ ] Create `release/x.y` branch and make sure GitHub, Azure and CircleCI builds pass
21-
- [ ] Run [nrn-build-ci](https://github.com/neuronsimulator/nrn-build-ci/actions/workflows/build-neuron.yml) for the respective Azure build; see [Azure drop guide](https://github.com/neuronsimulator/nrn-build-ci#azure-wheels-testing---manual-workflow)
20+
- [ ] Run [nrn-build-ci](https://github.com/neuronsimulator/nrn-build-ci/actions/workflows/build-neuron.yml) for the respective Azure build; see [Azure drop guide](https://github.com/neuronsimulator/nrn-build-ci#azure-wheels-testing---manual-workflow)
2221
- [ ] Activate ReadTheDocs build for `release/x.y` & make it hidden. Check docs are fine after build is done.
23-
- [ ] Run BBP Simulation Stack, CoreNEURON CI & other relevant tests
24-
- [ ] 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))
22+
- [ ] Run BBP Simulation Stack & other relevant tests
2523

2624

2725
Releasing
@@ -30,26 +28,29 @@ Releasing
3028
- [ ] Update changelog below and agree on it with everyone; then commit it to `docs/changelog` (copy structure as-is)
3129
- [ ] Update `docs/index.rst` accordingly with the new `.pkg` and `.exe` links for `PKG installer` and `Windows Installer`
3230
- [ ] Run the ReadTheDocs build again for `release-x.y`, make sure the build passes and inspect the Changelog page.
33-
- [ ] 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.
34-
- [ ] Create, test and upload manual artifacts
31+
- [ ] 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 and will contain the full-src-package and the Windows installer at the end of the release workflow.
32+
- [ ] 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))
33+
- [ ] Create, test and upload manual artifacts
3534
- [ ] MacOS package installer (manual task, ask Michael)
3635
- [ ] arm64 wheels (manual task, check with Alex or Pramod)
3736
- [ ] aarch64 wheels (create a `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))
3837
- [ ] 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)
3938
- [ ] Once wheels are published, activate the `x.y.z` tag on ReadTheDocs
40-
- [ ] Upload Windows installer from the wheels publishing Azure run (to get correct tag)
39+
- [ ] Rename the Windows installer in the GitHub release to match the new version and the supported python versions (i.e. `nrn-8.2.2.w64-mingw-py-37-38-39-310-311-setup.exe`
40+
)
4141
- [ ] Publish release on GitHub (edit https://github.com/neuronsimulator/nrn/releases/tag/x.y.z and un-tick the pre-release checkbox)
4242

4343

4444
Post-release
4545
---
4646
- [ ] To mark the start of a new development cycle, tag `master` as follows:
47-
- minor version: `x.(y+1).dev`
47+
- minor version: `x.(y+1).dev`
4848
- major version: `(x+1).0.dev`
4949
- [ ] Deactivate ReadTheDocs build for `release/x.y`
50-
- [ ] Go to [ReadTheDocs advanced settings](https://readthedocs.org/dashboard/nrn/advanced/) and set `Default version` to `x.y.z`
50+
- [ ] Go to [ReadTheDocs advanced settings](https://readthedocs.org/dashboard/nrn/advanced/) and set `Default version` to `x.y.z`
5151
- [ ] Let people know :rocket:
5252
- [ ] Cherrypick changelog and installer links to `master`
53+
- [ ] Update the changelog for the release on GitHub
5354

5455
Changelog
5556
======

.github/problem-matchers/thread.json

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
{
3+
"problemMatcher": [
4+
{
5+
"owner": "tsan-problem-matcher",
6+
"severity": "warning",
7+
"pattern": [
8+
{
9+
"regexp": "^.*ThreadSanitizer: (.*)$",
10+
"message": 1
11+
}
12+
]
13+
}
14+
]
15+
}

0 commit comments

Comments
 (0)