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