diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f38951c68cf8f2824f0ff0f0b72d634b83651030..3abfbcc6fe6bd586416819dd9de473e8c447afd6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -177,35 +177,13 @@ build-spack-env-on-runner: image: $GITLAB_BUILD_ENV_DOCKER_IMAGE variables: SPACK_DEV_ENV: ebrains-dev - SPACK_DEV_PATH: $CI_PROJECT_DIR/spack - SPACK_USER_CACHE_PATH: $CI_PROJECT_DIR/.spack - SPACK_USER_CONFIG_PATH: $CI_PROJECT_DIR/.spack script: - - git clone --depth 1 -c advice.detachedHead=false -c feature.manyFiles=true --branch $SPACK_VERSION https://github.com/spack/spack $SPACK_DEV_PATH - # SPACK PATCH: the post-build logs on install-time-test-logs.txt gets ovewritten by the post-install logs. - # quick fix for that: (TODO: investigate more and open PR) - - sed -i "s/self.file_like, \"w\"/self.file_like, \"a\"/g" $SPACK_DEV_PATH/lib/spack/llnl/util/tty/log.py - - | - cat <<EOF > $SPACK_DEV_PATH/etc/spack/defaults/upstreams.yaml - upstreams: - ebrains-gitlab-spack-instance: - install_tree: $SPACK_PATH_GITLAB/spack/opt/spack - EOF - - . $SPACK_DEV_PATH/share/spack/setup-env.sh - - spack find - - spack load gcc@10.3.0 - - spack compiler find - - spack repo add . - - spack env create $SPACK_DEV_ENV - - spack env activate $SPACK_DEV_ENV - - rm -rf $SPACK_ENV/site-config && cp -r site-config $SPACK_ENV - - spack-python site-config/ymerge.py spack.yaml site-config/$SYSTEMNAME/spack.yaml > /tmp/spack.yaml - - cp /tmp/spack.yaml $SPACK_ENV/ - - spack install -y -j2 --fresh --test root + # run installation script + - . install_spack_env.sh $CI_PROJECT_DIR $SPACK_VERSION $CI_PROJECT_DIR $SPACK_DEV_ENV $SPACK_PATH_GITLAB after_script: - mkdir -p $CI_PROJECT_DIR/spack_logs/installed $CI_PROJECT_DIR/spack_logs/not_installed # for succesfully installed packages: keep the spack logs for any package modified during this CI job - - PKG_DIR=$SPACK_DEV_PATH/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0 + - PKG_DIR=$CI_PROJECT_DIR/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0 - if cd $PKG_DIR; then find . \( -name ".spack" -o -name ".build" -o -name ".spack_test_results" \) -exec cp -r --parents "{}" $CI_PROJECT_DIR/spack_logs/installed \;; fi # for not succesfully installed packages: also keep the spack logs for any packages that failed - if cd /tmp/$(whoami)/spack-stage/; then find . -maxdepth 2 -name "*.txt" -exec cp --parents "{}" $CI_PROJECT_DIR/spack_logs/not_installed \;; fi @@ -217,12 +195,6 @@ build-spack-env-on-runner: except: variables: - $CI_PIPELINE_SOURCE == "schedule" - # cache: - # key: spack-cache-$CI_COMMIT_REF_SLUG - # paths: - # - "$SPACK_DEV_PATH" - # - "$SPACK_USER_CONFIG_PATH" - # when: always sync-gitlab-spack-instance: stage: build @@ -232,51 +204,17 @@ sync-gitlab-spack-instance: image: $GITLAB_BUILD_ENV_DOCKER_IMAGE variables: SPACK_NFS_ENV: ebrains-runner-build - SPACK_PATH: $SPACK_PATH_GITLAB - SPACK_USER_CACHE_PATH: $SPACK_PATH/spack/.spack - SPACK_USER_CONFIG_PATH: $SPACK_PATH/spack/.spack - SPACK_REPO_PATH: $SPACK_PATH/ebrains-spack-builds + SPACK_REPO_PATH: $SPACK_PATH_GITLAB/ebrains-spack-builds script: - # clone spack if it doesn't exist - - | - if [ ! -d $SPACK_PATH/spack ]; then - git clone --depth 1 -c advice.detachedHead=false -c feature.manyFiles=true --branch $SPACK_VERSION https://github.com/spack/spack $SPACK_PATH/spack - fi - # SPACK PATCH: the post-build logs on install-time-test-logs.txt gets ovewritten by the post-install logs. - # quick fix for that: (TODO: investigate more and open PR) - - sed -i "s/self.file_like, \"w\"/self.file_like, \"a\"/g" $SPACK_PATH/spack/lib/spack/llnl/util/tty/log.py - # activate spack - - . $SPACK_PATH/spack/share/spack/setup-env.sh # get latest state of EBRAINS repo - - rm -rf $SPACK_REPO_PATH && mkdir $SPACK_REPO_PATH && cp -r -t $SPACK_REPO_PATH $CI_PROJECT_DIR/{packages,repo.yaml} - - spack repo list | grep -q ebrains-spack-builds && echo "Repository registered already" || spack repo add $SPACK_REPO_PATH - - spack repo list - # install compiler (if not already installed) - - EBRAINS_SPACK_COMPILER=$(grep 'compiler' $CI_PROJECT_DIR/site-config/$SYSTEMNAME/packages.yaml | awk -F'[][]' '{ print $2 }') - - spack compiler find - - spack install $EBRAINS_SPACK_COMPILER - - spack load $EBRAINS_SPACK_COMPILER - - spack compiler find - - spack compiler list - # create environment, if it doesn't exist - - spack env list | grep -q $SPACK_NFS_ENV && echo "Environment created already" || spack env create $SPACK_NFS_ENV - # update environment site-configs - - rm -rf $SPACK_ROOT/var/spack/environments/$SPACK_NFS_ENV/site-config && cp -r site-config $SPACK_ROOT/var/spack/environments/$SPACK_NFS_ENV - # update spack.yaml: merge top-level and site-specific spack.yaml files - - spack-python site-config/ymerge.py spack.yaml site-config/$SYSTEMNAME/spack.yaml > /tmp/spack.yaml - - cp /tmp/spack.yaml $SPACK_ROOT/var/spack/environments/$SPACK_NFS_ENV - # There is a known spack bug (https://github.com/spack/spack/issues/29447) in installing test dependencies for installation tests. The workaround suggested - # in the issue is to NOT concretize separately, but simply remove the .lock file and let the enironment be concretized by the spack install command: - - rm $SPACK_ROOT/var/spack/environments/$SPACK_NFS_ENV/spack.lock || echo "No spack.lock file" - # then activate environment - - spack env activate $SPACK_NFS_ENV - - spack install -y -j2 --fresh --test root - - spack reindex + - rm -rf $SPACK_REPO_PATH && cp -r $CI_PROJECT_DIR $SPACK_REPO_PATH + # run installation script + - . install_spack_env.sh $SPACK_PATH_GITLAB $SPACK_VERSION $SPACK_REPO_PATH $SPACK_NFS_ENV after_script: - mkdir -p $CI_PROJECT_DIR/spack_logs/installed $CI_PROJECT_DIR/spack_logs/not_installed # for succesfully installed packages: keep the spack logs for any package modified during this CI job # (we use repo.yaml, that is modified at each start of the pipeline, as a reference file) - - PKG_DIR=$SPACK_PATH/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0 + - PKG_DIR=$SPACK_PATH_GITLAB/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0 - if cd $PKG_DIR; then find . -newer $SPACK_REPO_PATH/repo.yaml \( -name ".spack" -o -name ".spack_test_results" -o -name ".build" \) -exec cp -r --parents "{}" $CI_PROJECT_DIR/spack_logs/installed \;; fi # for not succesfully installed packages: also keep the spack logs for any packages that failed - if cd /tmp/$(whoami)/spack-stage/; then find . -maxdepth 2 -name "*.txt" -exec cp --parents "{}" $CI_PROJECT_DIR/spack_logs/not_installed \;; fi diff --git a/install_spack_env.sh b/install_spack_env.sh index f4ba7847e58de8655f006259f107097d0a1a5b5a..758b7b5e90d7000b5c74007c614faf666fd2f35c 100644 --- a/install_spack_env.sh +++ b/install_spack_env.sh @@ -1,16 +1,17 @@ #!/bin/bash -# =========================================================================================================== +# =============================================================================================================================== # title : install_spack_env.sh -# usage : ./install_spack_env.sh $INSTALLATION_ROOT $SPACK_VERSION $EBRAINS_REPO $EBRAINS_SPACK_ENV +# usage : ./install_spack_env.sh $INSTALLATION_ROOT $SPACK_VERSION $EBRAINS_REPO $EBRAINS_SPACK_ENV $UPSTREAM_INSTANCE # description : installs or updates the spack environment defined in the EBRAINS spack repo # (if the specified spack instance doesn't exist, it also creates it) -# =========================================================================================================== +# =============================================================================================================================== INSTALLATION_ROOT=$1 # where to set up the installation SPACK_VERSION=$2 # which spack version to use EBRAINS_REPO=$3 # location of ebrains-spack-builds repository EBRAINS_SPACK_ENV=$4 # name of EBRAINS Spack environment to be created/updated +UPSTREAM_INSTANCE=$5 # path to Spack instance to use as upstream (optional) # specify location of .spack dir (by default in ~) # this is where cache and configuration settings are stored @@ -29,26 +30,34 @@ then sed -i "s/self.file_like, \"w\"/self.file_like, \"a\"/g" $INSTALLATION_ROOT/spack/lib/spack/llnl/util/tty/log.py fi +if [[ $UPSTREAM_INSTANCE ]] +then + cat <<EOF > $INSTALLATION_ROOT/spack/etc/spack/defaults/upstreams.yaml +upstreams: + upstream-spack-instance: + install_tree: $UPSTREAM_INSTANCE/spack/opt/spack +EOF +fi + # activate Spack source $INSTALLATION_ROOT/spack/share/spack/setup-env.sh +# add repo if it does not exist +if [[ ! $(spack repo list | grep ebrains-spack-builds$) ]] +then + spack repo add $EBRAINS_REPO +fi + # install platform compiler (extract version from packages.yaml) if [ $SYSTEMNAME == ebrainslab ] then EBRAINS_SPACK_COMPILER=$(grep 'compiler' $EBRAINS_REPO/site-config/$SYSTEMNAME/packages.yaml | awk -F'[][]' '{ print $2 }') spack compiler find - spack install $EBRAINS_SPACK_COMPILER - spack load $EBRAINS_SPACK_COMPILER + spack load $EBRAINS_SPACK_COMPILER || (spack install $EBRAINS_SPACK_COMPILER; spack load $EBRAINS_SPACK_COMPILER) fi spack compiler find -# add repo if it does not exist -if [[ ! $(spack repo list | grep $EBRAINS_REPO) ]] -then - spack repo add $EBRAINS_REPO -fi - # create environment if it does not exist if [ ! -d "$SPACK_ROOT/var/spack/environments/$EBRAINS_SPACK_ENV" ] then diff --git a/packages/acpype/package.py b/packages/acpype/package.py index 39982da7209fdb0e1f020b97fa4f7d8033fe71d8..c19248710d4ea10d2c3b221243bd9b7245617339 100644 --- a/packages/acpype/package.py +++ b/packages/acpype/package.py @@ -7,12 +7,14 @@ class Acpype(PythonPackage): # Homepage and download url homepage = "https://github.com/alanwilter/acpype" git = 'https://github.com/alanwilter/acpype.git' + url = 'https://github.com/alanwilter/acpype/archive/refs/tags/2022.7.21.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('2022.7.21', branch='master') + version('master', branch='master') + version('2022.7.21', sha256='5f7e6162d9a0aed2f770b9ccf5617ac1398a423cca815ae37cbf66d4cd62ea2f') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-analysis/package.py b/packages/biobb-analysis/package.py index bc47a809d5f135e96c286018061403feb846daa4..f67ab8af6a80a6871d94b8a477ba74b3abff1d4c 100644 --- a/packages/biobb-analysis/package.py +++ b/packages/biobb-analysis/package.py @@ -7,12 +7,14 @@ class BiobbAnalysis(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_analysis" git = 'https://github.com/bioexcel/biobb_analysis.git' + url = 'https://github.com/bioexcel/biobb_analysis/archive/refs/tags/v4.0.1.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.1', branch='master') + version('master', branch='master') + version('4.0.1', sha256='3d7190d0cae6af42b2e7c0ecf073930a609b699ef311e8b74afc1634958e09b0') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-chemistry/package.py b/packages/biobb-chemistry/package.py index 47286633d74b9cf036141a1963d49b2e346215d7..13a412de3751d649a0fa7b941e7e4756468b7818 100644 --- a/packages/biobb-chemistry/package.py +++ b/packages/biobb-chemistry/package.py @@ -7,12 +7,14 @@ class BiobbChemistry(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_chemistry" git = 'https://github.com/bioexcel/biobb_chemistry.git' + url = 'https://github.com/bioexcel/biobb_chemistry/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='40f65b4a93dff24e19995265e41fd6821f5ac2f35199d938f1d00fa035883e64') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-common/package.py b/packages/biobb-common/package.py index 10e8cc1965177b637c38fa11ca325d6bed38ee13..ae3ffc96dc544716100cdbe7fc544f4b55471768 100644 --- a/packages/biobb-common/package.py +++ b/packages/biobb-common/package.py @@ -6,12 +6,14 @@ class BiobbCommon(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_common" git = 'https://github.com/bioexcel/biobb_common.git' + url = 'https://github.com/bioexcel/biobb_common/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='fff990dce42ded2af3d587567dbf5321b1498f12f24d04d62003f9869d6eb8fe') # Dependencies depends_on('py-setuptools') diff --git a/packages/biobb-gromacs/package.py b/packages/biobb-gromacs/package.py index c60afef13ff1559aebf227d626991c5afd765a04..f6003f6d2aa2762afd62ad2d9bbc6090ac334a13 100644 --- a/packages/biobb-gromacs/package.py +++ b/packages/biobb-gromacs/package.py @@ -7,12 +7,14 @@ class BiobbGromacs(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_gromacs" git = 'https://github.com/bioexcel/biobb_gromacs.git' + url = 'https://github.com/bioexcel/biobb_gromacs/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='87f9079ec8b72ff43cd1b388a06fee5b1f64bb4080ffab110941f3c6d155ef0b') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-io/package.py b/packages/biobb-io/package.py index a4f089d4e9d0c199f46baf075ae38ad812dc7c48..23f351992f76162aeecffbe6bb5d8e67f5ed7574 100644 --- a/packages/biobb-io/package.py +++ b/packages/biobb-io/package.py @@ -7,12 +7,14 @@ class BiobbIo(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_io" git = 'https://github.com/bioexcel/biobb_io.git' + url = 'https://github.com/bioexcel/biobb_io/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='600a30f14b1a0e21f57775ba1be695e1595f5702237415fe90d7c531b5a0408a') # Dependencies depends_on('biobb-common') diff --git a/packages/biobb-model/package.py b/packages/biobb-model/package.py index 877be433c85b0f28e2c0fedadde38b7508c66efa..8e0147d86b7777e9bef34d5f99a1709b28ac49b3 100644 --- a/packages/biobb-model/package.py +++ b/packages/biobb-model/package.py @@ -7,12 +7,14 @@ class BiobbModel(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_model" git = 'https://github.com/bioexcel/biobb_model.git' + url = 'https://github.com/bioexcel/biobb_model/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='92387725b7ccd3f40d18c1d3e30a6169ca4204ba498ac72e25c9e701b1a89d91') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/biobb-structure-checking/package.py b/packages/biobb-structure-checking/package.py index 8c528fd728f64192922fce64f25f38ae592d8649..4cb782e79f4f2af6b9d17e3b52edcb7fd674440e 100644 --- a/packages/biobb-structure-checking/package.py +++ b/packages/biobb-structure-checking/package.py @@ -8,12 +8,14 @@ class BiobbStructureChecking(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_structure_checking" git = 'https://github.com/bioexcel/biobb_structure_checking.git' + url = 'https://github.com/bioexcel/biobb_structure_checking/archive/refs/tags/v3.12.1.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('3.12.1', branch='master') + version('master', branch='master') + version('3.12.1', sha256='ef3e6fe5f7763e534c91fac00bf873c3d88bcca18be7a63c63608dceb36f3d40') # Dependencies depends_on('py-setuptools') diff --git a/packages/biobb-structure-utils/package.py b/packages/biobb-structure-utils/package.py index 9dd06b981ff0c9bf8fc1c3b587849c0887d4036f..ab132e9721965d0645e535387ff80782dc19f2e3 100644 --- a/packages/biobb-structure-utils/package.py +++ b/packages/biobb-structure-utils/package.py @@ -7,12 +7,14 @@ class BiobbStructureUtils(PythonPackage): # Homepage and download url homepage = "https://github.com/bioexcel/biobb_structure_utils" git = 'https://github.com/bioexcel/biobb_structure_utils.git' + url = 'https://github.com/bioexcel/biobb_structure_utils/archive/refs/tags/v4.0.0.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('4.0.0', branch='master') + version('master', branch='master') + version('4.0.0', sha256='f328eee2166631e1cc514118eb41187620c358c8024431ce2a0b0e4547692c47') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/nest/package.py b/packages/nest/package.py index a14f74cd96ac63cf3212e09be7bc6127890a7fae..3f571164da86fe7c344afb81e96af35b4cee649f 100644 --- a/packages/nest/package.py +++ b/packages/nest/package.py @@ -28,7 +28,7 @@ class Nest(CMakePackage): maintainers = ['terhorst'] version('master', branch='master') - version('3.6_rc1',sha256='8a8693933180bd5f64e0032c175997bbe7ee3bc6b0d73a7a4a394c97fc93969d') + version('3.6-rc2',sha256='8508a9590ad49e6657809d1acfd02aa612b70fa8e5e7791a2ea261d891f181f7') version('3.5', sha256='3cdf5720854a4d8a7d359f9de9d2fb3619a0be2e36932028d6940360741547bd') version('3.4', sha256='c56699111f899045ba48e55e87d14eca8763b48ebbb3648beee701a36aa3af20') version('3.3', sha256='179462b966cc61f5785d2fee770bc36f86745598ace9cd97dd620622b62043ed') diff --git a/packages/nglview/package.py b/packages/nglview/package.py index a6dd6510e68c3ff0d7baf89cddb08766786f2121..17f1208471b51ff1de53ad8ce09ff96eaf2ef1fe 100644 --- a/packages/nglview/package.py +++ b/packages/nglview/package.py @@ -7,12 +7,14 @@ class Nglview(PythonPackage): # Homepage and download url homepage = "https://github.com/nglviewer/nglview" git = 'https://github.com/nglviewer/nglview.git' + url = 'https://github.com/nglviewer/nglview/archive/refs/tags/v3.0.4.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('3.0.4', branch='master') + version('master', branch='master') + version('3.0.4', sha256='78b4413b796965a94045df0d584ec51e256c3dca5f366020439fe7e9744ce61b') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/py-bsb-hdf5/package.py b/packages/py-bsb-hdf5/package.py new file mode 100644 index 0000000000000000000000000000000000000000..bd50769da23633e89ecba2c7ba4663f8d2bec3c7 --- /dev/null +++ b/packages/py-bsb-hdf5/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2023 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.package import * + + +class PyBsbHdf5(PythonPackage): + """An HDF-5 based storage engine for the BSB framework.""" + + homepage = "https://github.com/dbbs-lab/bsb-hdf5" + url = "https://pypi.org/packages/py3/b/bsb_hdf5/bsb_hdf5-0.8.3-py3-none-any.whl" + + maintainers = ["helveg"] + + version('0.8.3', sha256="38162bfe9470b87cb30a2bff78dce68fc1b97f2df7d7e3b288c16b671f7579e5", expand=False) + + depends_on("py-setuptools", type="build") + # depends_on("py-bsb@4.0.0a57:") + depends_on("py-shortuuid") + depends_on("py-h5py@3.0:") diff --git a/packages/py-bsb/package.py b/packages/py-bsb/package.py new file mode 100644 index 0000000000000000000000000000000000000000..fad71af2ccb4cd0c653c7334fee9f33250b742c6 --- /dev/null +++ b/packages/py-bsb/package.py @@ -0,0 +1,51 @@ +# Copyright 2013-2023 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.package import * + + +class PyBsb(PythonPackage): + """ + The BSB is a component framework for neural modeling, which focuses on component + declarations to piece together a model. + """ + + homepage = "https://bsb.readthedocs.io" + url = "https://pypi.org/packages/py3/b/bsb/bsb-4.0.0a57-py3-none-any.whl" + + maintainers = ["helveg"] + + version("4.0.0a57", sha256="5da15799aa8994894ff5371561d534b43beffaa79461189c94080071359f4076", expand=False) + + depends_on("python@3.8:", type=("build", "run")) + depends_on("py-setuptools", type="build") + depends_on("py-numpy@1.19:") + depends_on("py-scipy@1.5:") + depends_on("py-scikit-learn@1.0:") + depends_on("py-plotly") + depends_on("py-rtree@1.0:") + depends_on("py-psutil@5.8:") + depends_on("py-pynrrd@1.0:") + depends_on("py-toml") + depends_on("py-requests") + depends_on("py-appdirs@1.4:") + depends_on("py-neo") + depends_on("py-tqdm@4.50:") + depends_on("py-shortuuid") + depends_on("py-quantities") + depends_on("py-pyyaml@6.0:") + depends_on("py-morphio@3.3:") + depends_on("py-bsb-hdf5@0.8.3:") + depends_on("py-errr@1.2.0:") + depends_on("py-colour@0.1.5:") + + def setup_build_environment(self, env): + env.set("SPATIALINDEX_C_LIBRARY", self.spec["libspatialindex"].libs[0]) + + def setup_run_environment(self, env): + self.setup_build_environment(env) + + skip_modules = ['bsb.simulators.arbor', 'bsb.simulators.arbor.devices'] + diff --git a/packages/py-colour/package.py b/packages/py-colour/package.py new file mode 100644 index 0000000000000000000000000000000000000000..5a55b8f94bf8c43b75746c9a272bb4bfd43071c9 --- /dev/null +++ b/packages/py-colour/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2023 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.package import * + + +class PyColour(PythonPackage): + """Python color representations manipulation library (RGB, HSL, web, ...)""" + + homepage = "https://github.com/vaab/colour" + pypi = "colour/colour-0.1.5.tar.gz" + + maintainers = ["vaab"] + + version("0.1.5", sha256="af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee") + depends_on("py-setuptools", type="build") diff --git a/packages/py-ebrains-kg-core/package.py b/packages/py-ebrains-kg-core/package.py index c6eff2c94b78870eba090b3ae6584775943c1b42..cfe76f490abd501b0e14565e1f6bf3520dc6eefd 100644 --- a/packages/py-ebrains-kg-core/package.py +++ b/packages/py-ebrains-kg-core/package.py @@ -15,6 +15,7 @@ class PyEbrainsKgCore(PythonPackage): maintainers = ["ioannistsanaktsidis", "olinux"] + version('0.9.15', sha256='c672815ebcd6968f090620f68d85f0fbf282a83636c3a1845b078ef5ac5a06be') version('0.9.14', sha256='e898761abb999b09e5da49b25d13ffcadebaec7acd87ed079abe23f3bb12a5e7') version('0.9.13', sha256='25e155e9eb6c516dd33e29d9ff433c996630989a0f017c5920b66fe5334f2d82') version('0.9.12', sha256='244e52dffaec425bf65cf2d3d697969ec9036aaa028bf47fdddfb4911282f484') diff --git a/packages/py-errr/package.py b/packages/py-errr/package.py new file mode 100644 index 0000000000000000000000000000000000000000..1c699d0cbcce9a8c502669c85095f793af0363f5 --- /dev/null +++ b/packages/py-errr/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2023 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.package import * + + +class PyErrr(PythonPackage): + """Elegant Python exception factories""" + + homepage = "https://github.com/Helveg/errr" + pypi = "errr/errr-1.2.0.tar.gz" + + maintainers = ["helveg"] + + version("1.2.0", sha256="2824b83edbd1f61d354c60e36400b2e31ab83e2094acb837b86686892b866e76") + + depends_on("py-setuptools", type="build") diff --git a/packages/py-hbp-neuromorphic-platform/package.py b/packages/py-hbp-neuromorphic-platform/package.py index ef2ce85f842e01bd7da2291f93564570dff853ea..f68b345fd2f732f1809985b730f46533053a65d3 100644 --- a/packages/py-hbp-neuromorphic-platform/package.py +++ b/packages/py-hbp-neuromorphic-platform/package.py @@ -17,6 +17,7 @@ class PyHbpNeuromorphicPlatform(PythonPackage): maintainers = ['apdavison'] + version('0.10.2', sha256='3e29175636385f2f561b8095e6225edc41be7f05c6a21232872ef662e6b7ce56') version('0.10.1', sha256='76b3acdbc63c901d158bad6d74e26f8a4ad7b10a261c1d51f1e9bf482766bae7') depends_on('python@3.5:') diff --git a/packages/py-libsonata/package.py b/packages/py-libsonata/package.py index 7478f1d63e166e3e63795f427da0b5a8641b8b55..ed0644c33bb131b431d9cf0aaa833a975d278d6f 100644 --- a/packages/py-libsonata/package.py +++ b/packages/py-libsonata/package.py @@ -18,6 +18,7 @@ class PyLibsonata(PythonPackage): submodules = True version("develop", branch="master", get_full_repo=True) + version("0.1.23", sha256="815aac5bdaa5d025b5f3558ac4d3acb9ebcb070594109af4c0844f47ec701c1d") version("0.1.22", sha256="4adbb32ed2fac5d3c74bde03a5e2adb319724d324318a2a7dc2ef3c30f817b2c") version("0.1.21", sha256="5b280d82cb21a745d9cdb736c00446e0209494c21d2d17a2c878fabf23a08b68") version("0.1.20", sha256="f2e63a26dcf045bb7424e236e12f9b9ef8c46c356e953d26555f313f5763651e") diff --git a/packages/py-morph-tool/package.py b/packages/py-morph-tool/package.py index f639ba217f767de0cd13367ae8b69825080652fa..dbe42d14c6490c7328e7b8ac5bf90b067bd33671 100644 --- a/packages/py-morph-tool/package.py +++ b/packages/py-morph-tool/package.py @@ -13,11 +13,14 @@ class PyMorphTool(PythonPackage): homepage = "https://github.com/BlueBrain/morph-tool" git = "https://github.com/BlueBrain/morph-tool.git" - pypi = "morph-tool/morph-tool-2.4.1.tar.gz" + pypi = "morph-tool/morph-tool-2.9.1.tar.gz" version("develop", branch="master") + version("2.9.1", sha256="305e9456c8047726588b23dfa070eb95ccbe5573e9fea3e0a83dc93eacdf61dc") version("2.9.0", sha256="c60d4010e17ddcc3f53c864c374fffee05713c8f8fd2ba4eed7706041ce1fa47") + variant("neuron", default=False, description="Enable additional neuron support") + depends_on("py-setuptools", type=("build", "run")) depends_on("py-click@6.7:", type=("build", "run")) @@ -28,9 +31,10 @@ class PyMorphTool(PythonPackage): depends_on("py-xmltodict@0.12:", type=("build", "run")) depends_on("py-plotly@4.1:", type=("build", "run")) - depends_on("py-dask+bag@2.19:", type=("build", "run")) + depends_on("py-dask@2.19:", type=("build", "run")) depends_on("neuron+python@7.8:", type=("build", "run")) - depends_on("py-bluepyopt@1.9.37:", type=("build", "run")) + depends_on("py-bluepyopt@1.9.37:", type=("build", "run"), when="+neuron") depends_on("py-neurom@3.0:3.999,develop", type=("build", "run")) - depends_on("py-morphio@3.0:3.999,develop", type=("build", "run")) + depends_on("py-morphio@3.3.6:3,develop", type=("build", "run"), when="@2.9.1:") + depends_on("py-morphio@3.0:3,develop", type=("build", "run"), when="@2.9.0") diff --git a/packages/py-morphio/package.py b/packages/py-morphio/package.py index 5a08dfe86cd4d14b5fa96af724ea937da59bcbea..f1c6141484b924bacbee3c263351171efd044a49 100644 --- a/packages/py-morphio/package.py +++ b/packages/py-morphio/package.py @@ -18,6 +18,7 @@ class PyMorphio(PythonPackage): version("develop", branch="master", submodules=True) version("unifurcation", branch="unifurcation", submodules=True) + version("3.3.6", sha256="0f2e55470d92a3d89f2141ae905ee104fd16257b93dafb90682d90171de2f4e6") version("3.3.5", sha256="9e6cfebaea32080131b2b08a4a32dfbe92b18427a3e557861e27c4131f7542ac") version("3.3.4", sha256="b70c6884e9b835560501f798c75c9cc7eaf3162cba1d930b5a9b854bb9ea60dc") version("3.3.3", sha256="f6d91970cfd734b2e5fb8f9239a0bfa00519fe082dd8e403e4cc204dbdf0a9fa") diff --git a/packages/py-nestml/package.py b/packages/py-nestml/package.py index 48dc4f845c1004260c345083a75194b1e97d94b3..7e3329d55ce4e0f73848a1b3d955cb1381d3f16a 100644 --- a/packages/py-nestml/package.py +++ b/packages/py-nestml/package.py @@ -18,6 +18,7 @@ class PyNestml(PythonPackage): maintainers = ['clinssen', 'pnbabu', 'jougs'] + version('5.3.0', sha256='8de543d7d3a166cd4d6a0d536a2d4e769513bbf8d7aeaf64458e9d9c21fe546e', expand=False) version('5.2.0', sha256='acb703bf9c7f70304bd5d547dccd6a6a219f8acb298a6412df779b808241eb14', expand=False) depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/py-neuror/package.py b/packages/py-neuror/package.py index b9273ee334a89cc84c867a93a420a377100da4f8..d84d202d063b5189676bf3d5159b048d32e07b1e 100644 --- a/packages/py-neuror/package.py +++ b/packages/py-neuror/package.py @@ -5,6 +5,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + from spack.package import * @@ -16,17 +17,18 @@ class PyNeuror(PythonPackage): pypi = "neuror/NeuroR-1.2.3.tar.gz" version("develop", branch="master") - version("1.4.2", sha256="f5e18ebddf59a60ce650c24eb49042057cf97990d63aee3ceb58b7acff823255") + version("1.6.4", sha256="a65c0e1814c38326a344f03c1f5f92ab4db721c5541888b2acb9ffc5a7adac50") depends_on("py-setuptools", type=("build", "run")) depends_on("py-click@6.7:", type=("build", "run")) + depends_on("py-jsonschema", type=("build", "run")) depends_on("py-matplotlib@2.2.3:", type=("build", "run")) depends_on("py-morph-tool@2.9.0:2.999", type=("build", "run")) - depends_on("py-morphio@3.0:3.999", type=("build", "run")) - depends_on("py-neurom@3.0:3.999", type=("build", "run")) + depends_on("py-morphio@3.0.0:3.999", type=("build", "run")) + depends_on("py-neurom@3.0.1:3.999", type=("build", "run")) depends_on("py-numpy@1.19.2:", type=("build", "run")) - depends_on("py-nptyping@1.3.0:", type=("build", "run")) + depends_on("py-nptyping@2:", type=("build", "run")) depends_on("py-pandas@0.24.2:", type=("build", "run")) depends_on("py-pyquaternion@0.9.2:", type=("build", "run")) depends_on("py-scipy@1.2.0:", type=("build", "run")) diff --git a/packages/py-pynrrd/package.py b/packages/py-pynrrd/package.py new file mode 100644 index 0000000000000000000000000000000000000000..99093c34d46e6e8a116842e9db56449cfe0238fe --- /dev/null +++ b/packages/py-pynrrd/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2023 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.package import * + + +class PyPynrrd(PythonPackage): + """Python library for reading and writing NRRD files into and from numpy arrays""" + + homepage = "https://github.com/mhe/pynrrd" + pypi = "pynrrd/pynrrd-0.4.0.tar.gz" + + version("1.0.0", sha256="4eb4caba03fbca1b832114515e748336cb67bce70c7f3ae36bfa2e135fc990d2") + + depends_on("py-setuptools", type="build") + depends_on("py-numpy@1.11.1:", type=("build", "run")) + depends_on("py-nptyping", type=("build", "run")) + depends_on("py-typing-extensions", type=("build", "run")) + diff --git a/packages/py-ray/package.py b/packages/py-ray/package.py index d17b5557ec416d5c6bacbba99e2f76cc80008c85..c687d7eef4d8bc9379de9f63218967b1db4118f8 100644 --- a/packages/py-ray/package.py +++ b/packages/py-ray/package.py @@ -46,6 +46,11 @@ class PyRay(PythonPackage): depends_on("py-typing-extensions", when="@2.0.1 ^python@:3.7", type=("build", "run")) depends_on("py-virtualenv", when="@2.0.1", type=("build", "run")) + # needed to fix import errors + depends_on("py-setproctitle", type=("build", "run")) + depends_on("py-colorama", type=("build", "run")) + depends_on("py-psutil", type=("build", "run")) + with when("+default"): depends_on("py-aiohttp@3.7:", type=("build", "run")) depends_on("py-aiohttp-cors", type=("build", "run")) diff --git a/packages/py-siibra/package.py b/packages/py-siibra/package.py index a64b177390a7170a7c6057c0a45dda3becc684ff..b68c20d488289196052ade9fd8ed56b0f4e84a65 100644 --- a/packages/py-siibra/package.py +++ b/packages/py-siibra/package.py @@ -9,6 +9,13 @@ class PySiibra(PythonPackage): maintainers = ['x.gui@fz-juelich.de', 's.koehnen@fz-juelich.de', 't.dickscheid@fz-juelich.de'] + version("0.4a66", sha256="75bd925159d2c4bc904b97824ab8d48a4162f07c11ae0ee4d358427bd3badccb") + version("0.4a64", sha256="651f3382c7e3407261ca71921614e3bf64f3205c1b7072ce0bb482d65fa73be3") + version("0.4a63", sha256="225c2cbf98ec57bee4063176f868a2a10ab153ac917e162843d8a26a38ba78b4") + version("0.4a62", sha256="4ff6f36e7bd12878d71c148cdf50ac3434c50248abe61d610cb01adad129eb52") + version("0.4a61", sha256="9ebb3402a4789935c3f75e7a812d8d2500c183187d4ae99cac9b554f4dbe84f3") + version("0.4a59", sha256="e878b424dfece6c379146674c2fe0875ec290811aa6a8323ef1404d25c0a9010") + version("0.4a58", sha256="f24660f094932628f088ef3f9575b196fd360bd74a1e1c8e2627d985ed35e210") version("0.4a57", sha256="53983c4baab84abe5dd6928c320ce87433cab02b5ed992995f0a17661c93dbff") version("0.4a56", sha256="4c03d8a94c73a233e216103fa7090d057db03b1806027fabde38e8f83b852d78") version("0.4a54", sha256="114765afe906383c7e6b930f1df7e26ddc15a6f295e2eab83a861eaba6d8f57f") diff --git a/packages/r-rgsl/package.py b/packages/r-rgsl/package.py index cd5549867a3afaae2c23eca25772c6a2d344f6e3..d7796805ea3fc29606fb33805b450d4d9efb31d7 100644 --- a/packages/r-rgsl/package.py +++ b/packages/r-rgsl/package.py @@ -15,7 +15,8 @@ class RRgsl(RPackage): maintainers = ["akramer", "oliviaeriksson"] - version("0.1", sha256="dd6a14dda8731f4cf32149c8a9842e4e2ba424c8404f4d6839108153b20e4c3e") + version("0.1.1", sha256="a2d8fdbbb6c4f9937d6abaa56d912418b42931ae67067357e9bf5a032cc1a833") + version("0.1", sha256="dd6a14dda8731f4cf32149c8a9842e4e2ba424c8404f4d6839108153b20e4c3e") # GNU Scientific Library: https://www.gnu.org/software/gsl # spack: https://spack.readthedocs.io/en/latest/package_list.html#gsl diff --git a/packages/simpletraj/package.py b/packages/simpletraj/package.py index 54d1ec72c94c3b0ecf44316b0fed272141ff5abd..d49811474a736557f3c4b7ff961c5553325fe36b 100644 --- a/packages/simpletraj/package.py +++ b/packages/simpletraj/package.py @@ -6,12 +6,14 @@ class Simpletraj(PythonPackage): # Homepage and download url homepage = "https://github.com/arose/simpletraj" git = 'https://github.com/arose/simpletraj.git' + url = 'https://github.com/arose/simpletraj/archive/refs/tags/v0.3.tar.gz' # Set the gitlab accounts of this package maintainers maintainers = ['dbeltran'] # Versions - version('0.3', branch='master') + version('master', branch='master') + version('0.3', sha256='9ee9b5f3e387f8f8eb74b11f5c5d60bab6f601d190b40e38a7b31afddc3574d0') # Dependencies depends_on('python@3.8:', type=('build', 'run')) diff --git a/packages/wf-protein-association-rates/package.py b/packages/wf-protein-association-rates/package.py new file mode 100644 index 0000000000000000000000000000000000000000..a6a708839cab1fc2862ed788431cc996686002b9 --- /dev/null +++ b/packages/wf-protein-association-rates/package.py @@ -0,0 +1,15 @@ +from spack import * + + +class WfProteinAssociationRates(BundlePackage): + """Meta-package to collect all dependencies for the "Molecular Tools: protein + association rates and binding sites" demos/workflows.""" + + homepage="https://wiki.ebrains.eu/bin/view/Collabs/computation-of-protein-association-rates/" + + maintainers = ['thielblz', 'richtesn'] + + version("0.1") + + depends_on("apbs") + depends_on("py-pdb2pqr") diff --git a/spack.yaml b/spack.yaml index 3a3ab1aa20e992670e2de2ff6b1d7719ee1a6e8c..4f60b56f167c129c368de90b05d7b2ad27d59604 100644 --- a/spack.yaml +++ b/spack.yaml @@ -14,35 +14,36 @@ spack: - biobb-structure-checking@3.12.1 - biobb-structure-utils@4.0.0 - hxtorch@7.0-rc1 - - nest@3.6_rc1 +sonata + - nest@3.6-rc2 +sonata - neuron@8.2.3 +mpi - py-bluepyefe@2.2.18 - py-bluepymm@0.7.65 - py-bluepyopt@1.13.86 + - py-bsb@4.0.0a57 - py-ebrains-drive@0.5.1 - - py-ebrains-kg-core@0.9.14 + - py-ebrains-kg-core@0.9.15 - py-efel@4.0.4 - py-elephant@0.13.0 - py-fairgraph@0.11.1 - py-frites@0.4.4 - py-hbp-archive@1.1.1 - - py-hbp-neuromorphic-platform@0.10.1 + - py-hbp-neuromorphic-platform@0.10.2 - py-hbp-validation-client@0.8.2 - py-hippounit@1.3.6 - py-lfpy@2.3 - py-lfpykit@0.5.1 - - py-libsonata@0.1.22 + - py-libsonata@0.1.23 - py-neo@0.12.0 - - py-nestml@5.2.0 + - py-nestml@5.3.0 - py-netpyne@1.0.5 - py-neurom@3.2.2 - - py-neuror@1.4.2 + - py-neuror@1.6.4 - py-pdb2pqr@3.5.2 - py-pynn@0.11.0 +mpi - py-pyunicore@0.15.0 - py-quantities-scidash@0.12.4.3 - py-quantities@0.14.1 - - py-siibra@0.4a57 + - py-siibra@0.4a66 - py-snudda@1.4.71 - py-spynnaker@7.0.0 - py-tvb-contrib@2.8.2 @@ -54,13 +55,14 @@ spack: - py-tvb-storage@2.8.1 - py-viziphant@0.3.0 - pynn-brainscales@7.0-rc1 - - r-rgsl@0.1 + - r-rgsl@0.1.1 - r-sbtabvfgen@0.1 - r-uqsa@2.2 - sda@7.3.3d # Workflows (meta-packages) - wf-biobb - wf-brainscales2-demos + - wf-protein-association-rates@0.1 - wf-multi-area-model@v1.1.0 - wf-uq-akar4@0.1 #- py-cerebstats