diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index eb05c46a7bac6713182129d8750a4a9acc75ed12..ef1702baa91fdbcc7285657bdd5a77b8083a7b47 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -160,6 +160,7 @@ deploy-exp-release-prod-jsc:
- shell-runner
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $DEPLOYMENT == "prod"
+ when: never
build-spack-env-on-runner:
stage: build
@@ -170,6 +171,9 @@ build-spack-env-on-runner:
variables:
SPACK_DEV_ENV: ebrains-dev
script:
+ # deactivate environment views (we don't need them for the test build-job)
+ - >
+ echo " view: False" >> $CI_PROJECT_DIR/site-config/$SYSTEMNAME/spack.yaml
# run installation script
- . install_spack_env.sh $CI_PROJECT_DIR $SPACK_VERSION $CI_PROJECT_DIR $SPACK_DEV_ENV $SPACK_PATH_GITLAB
# re-activate envionment and run tests
diff --git a/packages/py-libneuroml/package.py b/packages/py-libneuroml/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..c24241eccef174d39c8e8837bb080d7aabaace6e
--- /dev/null
+++ b/packages/py-libneuroml/package.py
@@ -0,0 +1,27 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class PyLibneuroml(PythonPackage):
+ """A SciUnit library for data-driven validation testing of models of hippocampus
+ """
+
+ homepage = "https://github.com/NeuralEnsemble/libNeuroML"
+ pypi = "libNeuroML/libNeuroML-0.4.1.tar.gz"
+ git = "https://github.com/NeuralEnsemble/libNeuroML.git"
+
+ version('0.5.5', sha256='b05830bb451ba797d941efee174724be9075d8d2e7d66f8379b2f2513c90d588')
+ version('0.4.1', sha256='d1b81dbcf794097904438f04f201cb2cffed7c38117c19f65c595d63fcb8c8b3')
+
+ depends_on('python@3.7:')
+ depends_on('py-setuptools', type=('build'))
+ depends_on('py-lxml', type=('run', 'test'))
+ depends_on('py-six', type=('run', 'test'))
+ depends_on('py-networkx', type=('run', 'test'))
+ depends_on('py-numpy', type=('run', 'test'))
+ depends_on('py-tables@3.3.0:', type=('run', 'test'))
+ depends_on('py-natsort', type=('run', 'test'))
diff --git a/packages/py-pynn/package.py b/packages/py-pynn/package.py
index 402d05099e70dc5476fec69de07c1d96a497446f..eea8e7cafeca3969e063cbd580151d606948c562 100644
--- a/packages/py-pynn/package.py
+++ b/packages/py-pynn/package.py
@@ -17,6 +17,8 @@ class PyPynn(PythonPackage):
maintainers = ["apdavison"]
+ version('0.12.2', sha256='8039b68e3e5f98b537038c249dc42c027bd63f9ecc015c82f1f88bd30dfa28a9')
+ version('0.12.1', sha256='fef49cc601032565341f02c5c982cb805bc0cc16de75166acb1b7f8c179adfda')
version('0.11.0', sha256='eab6ef281e0a00180c8b31ffb65984f54216c68464db363a5c09832fec91f952')
version('0.10.1', sha256='03fbafeddd64ae7163e2b557b2760380b6eceb52469f1b3f4cc203bbb80f0cde')
version('0.10.0', sha256='04120fe0e03260d664b337e0ac29d985c3fb3684ef35b1add93a66739891c98f')
@@ -52,15 +54,22 @@ class PyPynn(PythonPackage):
depends_on('py-neo@0.10.0:', type=('run', 'test'), when="@0.10.0")
depends_on('py-neo@0.11.0:', type=('run', 'test'), when="@0.10.1:")
+ depends_on('py-libneuroml@0.4.1:', type=('run', 'test'), when="@0.12.1:")
+ depends_on('py-morphio', type=('run', 'test'), when="@0.12:")
+
depends_on('neuron@8.1:+python', type=('run', 'test'), when="@0.10.1:")
- depends_on('nest@3.3:+python', type=('run', 'test'), when="@0.10.1:")
+ depends_on('nest@3.3:3.4+python', type=('run', 'test'), when="@0.10.1:0.11.0")
+ depends_on('nest@3.4:+python', type=('run', 'test'), when="@0.12.1:")
depends_on('py-brian2', type=('run', 'test'))
+ depends_on('arbor@0.8.1:+python', type=('run', 'test'), when="@0.12.1:")
+
depends_on('py-mock@1.0:', type='test')
depends_on('py-matplotlib', type='test')
depends_on("py-pytest", type='test', when="@0.11.0:")
patch('pynn-0.9.6-python3.patch', when='@0.9.6 ^python@3:')
+ patch('pynn-0.12.2-arbor-0.9.0.patch', when='@0.12.1:0.12.2')
# neuroml and nineml are optional dependencies. Leave out of import_modules to avoid errors in tests
skip_modules = ['pyNN.neuroml', 'pyNN.nineml', 'pyNN.hardware']
diff --git a/packages/py-pynn/pynn-0.12.2-arbor-0.9.0.patch b/packages/py-pynn/pynn-0.12.2-arbor-0.9.0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4a6d1757fde933f233ae5b7eed1eb1fbbc57b03e
--- /dev/null
+++ b/packages/py-pynn/pynn-0.12.2-arbor-0.9.0.patch
@@ -0,0 +1,13 @@
+diff --git a/pyNN/arbor/simulator.py b/pyNN/arbor/simulator.py
+index 69c7eab9..528e8d4d 100644
+--- a/pyNN/arbor/simulator.py
++++ b/pyNN/arbor/simulator.py
+@@ -186,7 +186,7 @@ class State(common.control.BaseState):
+ comm = arbor.mpi_comm(MPI.COMM_WORLD)
+ else:
+ comm = None
+- self.arbor_context = arbor.context(alloc, comm)
++ self.arbor_context = arbor.context(alloc, mpi=comm)
+ # unclear if we can create the recipe now, or if we have to
+ # construct it only when we've assembled the whole network
+ self.network = NetworkRecipe()
diff --git a/packages/py-quantities/package.py b/packages/py-quantities/package.py
index d7cccbf7cce79a7bf08cb315f3d4aa884da8e514..bc785842571724ab4b9245a2fd61e09937589e85 100644
--- a/packages/py-quantities/package.py
+++ b/packages/py-quantities/package.py
@@ -13,6 +13,7 @@ class PyQuantities(PythonPackage):
pypi = "quantities/quantities-0.12.1.tar.gz"
maintainers = ['apdavison']
+ version('0.15.0', sha256='9ea31e2a0d7517cf24d546b14146def9292639993a616cca61b875ef796b4b2b')
version('0.14.1', sha256='efeafffc0c0364f891a9327239cd12496bccb55cd037a6d1bf44de706f722877')
version('0.13.0', sha256='0fde20115410de21cefa786f3aeae69c1b51bb19ee492190324c1da705e61a81')
version('0.12.5', sha256='67546963cb2a519b1a4aa43d132ef754360268e5d551b43dd1716903d99812f0')
@@ -30,7 +31,7 @@ class PyQuantities(PythonPackage):
depends_on('python@2.7.0:2.7,3.4:3.7', type=('build', 'run'), when='@0.12.3')
depends_on('python@2.7.0:2.7,3.4:3.8', type=('build', 'run'), when='@0.12.4:0.12.5')
depends_on('python@3.7:3.10', type=('build', 'run'), when='@0.13.0:0.13.1')
- depends_on('python@3.8:3.11', type=('build', 'run'), when='@0.14:')
+ depends_on('python@3.8:3.12', type=('build', 'run'), when='@0.14:')
# pip silently replaces distutils with setuptools
# py-setuptools@:61 doesn't support PEP 621
@@ -44,4 +45,5 @@ class PyQuantities(PythonPackage):
depends_on('py-numpy@1.8.2:1.16', type=('build', 'run'), when='@0.12.3')
depends_on('py-numpy@1.8.2:1.17', type=('build', 'run'), when='@0.12.4:0.12')
depends_on('py-numpy@1.16:', type=('build', 'run'), when='@0.13.0:0.13.1')
- depends_on('py-numpy@1.19:', type=('build', 'run'), when='@0.14:')
+ depends_on('py-numpy@1.19:', type=('build', 'run'), when='@0.14:0.14')
+ depends_on('py-numpy@1.20:', type=('build', 'run'), when='@0.15.0:')
diff --git a/packages/wf-brainscales2-demos/package.py b/packages/wf-brainscales2-demos/package.py
index 580fd5cecc6788fb274352cd253d875af900fef9..f54ebef167c8e2ee55c19ad27a214e726b93b78a 100644
--- a/packages/wf-brainscales2-demos/package.py
+++ b/packages/wf-brainscales2-demos/package.py
@@ -55,10 +55,10 @@ class WfBrainscales2Demos(Package):
try:
# execute notebook and save
jupyter(*args, output=str.split, error=str.split)
- except ProcessError as e:
+ except Exception as e:
# if the notebook execution fails, re-run notebook to produce output with error
# in case of a cell timeout, don't re-run
- if "CellTimeoutError" not in e:
+ if "CellTimeoutError" not in str(e):
jupyter(*(args+["--allow-errors"]))
raise
diff --git a/packages/wf-multi-area-model/package.py b/packages/wf-multi-area-model/package.py
index b8ff5feb8f4326cc8e756885b10e540904bf1632..76db0cf2097ab9dab37df5f290378ba74535d8d3 100644
--- a/packages/wf-multi-area-model/package.py
+++ b/packages/wf-multi-area-model/package.py
@@ -47,7 +47,7 @@ class WfMultiAreaModel(Package):
try:
# execute notebook and save
jupyter(*args)
- except ProcessError as e:
+ except Exception as e:
# if the above fails, re-run notebook to produce output with error
jupyter(*(args+["--allow-errors"]))
raise
diff --git a/spack.yaml b/spack.yaml
index f825a84885e3774bd1568d450c04aee12d13825a..6bb4c779f6319e4f7d8823c68e7746cf6bf87d84 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -31,16 +31,17 @@ spack:
- py-hippounit@1.3.6
- py-lfpy@2.3
- py-lfpykit@0.5.1
+ - py-libneuroml@0.4.1
- py-libsonata@0.1.23
- py-neo@0.12.0
- py-nestml@7.0.0
- py-netpyne@1.0.5
- py-neurom@3.2.2
- py-neuror@1.6.4
- - py-pynn@0.11.0 +mpi
+ - py-pynn@0.12.2 +mpi
- py-pyunicore@0.15.0
- py-quantities-scidash@0.12.4.3
- - py-quantities@0.14.1
+ - py-quantities@0.15.0
- py-siibra@0.4a66
- py-snudda@1.4.71
- py-spynnaker@7.0.0