Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • hartmut/ebrains-spack-builds
  • filippomarchetti/ebrains-spack-builds
  • woodman/ebrains-spack-builds
  • ri/tech-hub/platform/esd/ebrains-spack-builds
  • ri/tech-hub/platform/esd/ebrains-spack-builds-lab-testing
  • hl11/ebrains-spack-builds
  • ansimsek/ebrains-spack-builds
  • deepu/ebrains-spack-builds
  • lcalori0/ebrains-spack-builds
  • ziaee/ebrains-spack-builds
  • noelp/ebrains-spack-builds
  • jkaiser/ebrains-spack-builds
  • mloshakov/ebrains-spack-builds
  • dsegebarth/ebrains-spack-builds
  • lupoc/ebrains-spack-builds
  • dsegebarth/ebrains-spack-builds-na-3
  • rshimoura/ebrains-spack-builds
  • kozlov/ebrains-spack-builds
  • rominabaila/ebrains-spack-builds
  • willemw/ebrains-spack-builds
20 results
Show changes
Commits on Source (58)
Showing
with 954 additions and 24 deletions
......@@ -4,10 +4,12 @@ stages:
variables:
BUILD_ENV_DOCKER_IMAGE: docker-registry.ebrains.eu/ebrains-spack-build-env/base:devel
RUN_ENV_DOCKER_IMAGE: docker-registry.ebrains.eu/clb-jupyter-image/ebrains:dev-a7ab31be
SPACK_PATH_GITLAB: /mnt/spack_v0.23.1
SYSTEMNAME: ebrainslab
GIT_SUBMODULE_STRATEGY: recursive
GIT_CLEAN_FLAGS: -ffdxq
RUNNER_AFTER_SCRIPT_TIMEOUT: 20m
# ===================================================================
# LAB DEPLOYMENTS
......@@ -47,6 +49,15 @@ variables:
- if [ $(kubectl get pods -l job-name=simplejob${CI_PIPELINE_ID} -o jsonpath='{.items[0].status.containerStatuses[0].state.terminated.exitCode}') -ne 0 ]; then exit 1; fi;
# delete the job, as we have the logs here
- kubectl delete job simplejob${CI_PIPELINE_ID} || true
after_script:
- kubectl config use-context $KUBE_CONTEXT
- sh create_job_widget_script.sh $CI_PIPELINE_ID $RUN_ENV_DOCKER_IMAGE $INSTALLATION_ROOT $SPACK_ENV $RELEASE_NAME $LAB_KERNEL_ROOT
- cat widget-script.yml
- kubectl create -f widget-script.yml
- while true; do sleep 300; x=$(kubectl get pods -l job-name=widget-script${CI_PIPELINE_ID} -o jsonpath='{.items[0].status.phase}'); if [ $x != "Running" ]; then break; fi; done
- kubectl logs jobs/widget-script${CI_PIPELINE_ID} | tee log.txt
- if [ $(kubectl get pods -l job-name=widget-script${CI_PIPELINE_ID} -o jsonpath='{.items[0].status.containerStatuses[0].state.terminated.exitCode}') -ne 0 ]; then exit 1; fi;
- kubectl delete job widget-script${CI_PIPELINE_ID} || true
# artifacts:
# paths:
# - spack_logs
......@@ -97,12 +108,24 @@ variables:
# -------------------------------------------------------------------
# deploy int release (latest changes) to dev env to be tested before release to production
# (the master branch and any branch starting with "lab-" is deployed to a dedicated kernel)
.deploy-int-release:
variables:
SPACK_ENV: test
RELEASE_NAME: EBRAINS-test
SPACK_ENV: $CI_COMMIT_BRANCH
RELEASE_NAME: $CI_COMMIT_BRANCH
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE =~ /platform\/esd/ && $CI_PIPELINE_SOURCE == "push"
- if: '($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^lab-/) && $CI_PROJECT_NAMESPACE =~ /platform\/esd/ && $CI_PIPELINE_SOURCE == "push"'
# deploy a pre-production environment first, to avoid directly modifying the experimental or official release environments
.deploy-ppd-release:
variables:
SPACK_ENV: ppd
RELEASE_NAME: EBRAINS-ppd
allow_failure: false
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $DEPLOYMENT == "prod"
- if: $CI_COMMIT_BRANCH =~ /^ebrains/
when: manual
# deploy the experimental release of tools once a week from latest working version of int release
.deploy-exp-release:
......@@ -125,8 +148,8 @@ variables:
# deploy the production release of tools
.deploy-prod-release:
variables:
SPACK_ENV: ebrains-24-04
RELEASE_NAME: EBRAINS-24.04
SPACK_ENV: ebrains-25-02
RELEASE_NAME: EBRAINS-25.02
rules:
- if: $CI_COMMIT_BRANCH =~ /^ebrains/
when: manual
......@@ -147,26 +170,42 @@ deploy-exp-release-dev-cineca:
- .deploy-exp-dev-release
- .deploy-dev-server-cineca
# deploy ppd release to prod environment at JSC
deploy-ppd-release-prod-jsc:
extends:
- .deploy-ppd-release
- .deploy-prod-server-jsc
# deploy ppd release to prod environment at CINECA
deploy-ppd-release-prod-cineca:
extends:
- .deploy-ppd-release
- .deploy-prod-server-cineca
# deploy exp release to prod environment at JSC
deploy-exp-release-prod-jsc:
needs: [deploy-ppd-release-prod-jsc]
extends:
- .deploy-exp-prod-release
- .deploy-prod-server-jsc
# deploy exp release to prod environment at CINECA
deploy-exp-release-prod-cineca:
needs: [deploy-ppd-release-prod-cineca]
extends:
- .deploy-exp-prod-release
- .deploy-prod-server-cineca
# deploy prod release to prod environment at JSC
deploy-prod-release-prod-jsc:
needs: [deploy-ppd-release-prod-jsc]
extends:
- .deploy-prod-release
- .deploy-prod-server-jsc
# deploy prod release to prod environment at CINECA
deploy-prod-release-prod-cineca:
needs: [deploy-ppd-release-prod-cineca]
extends:
- .deploy-prod-release
- .deploy-prod-server-cineca
......
......@@ -37,7 +37,7 @@ cp $INSTALLATION_ROOT/spack/var/spack/environments/$EBRAINS_SPACK_ENV/load_env.s
# and the location of python modules installed in the base docker Collab image
cat <<EOF >> $KERNEL_PATH/bin/env.sh
export PATH=\$PATH:/opt/app-root/src/.local/bin
export PYTHONPATH=\$PYTHONPATH:/opt/app-root/src/.local/lib/python3.8/site-packages:/usr/local/lib/python3.8/dist-packages
export PYTHONPATH=\$PYTHONPATH:/opt/conda/lib/python3.11/site-packages
export R_LIBS_USER=/opt/app-root/src/.local/lib/R/site-library
mkdir -p \$R_LIBS_USER
export R_LIBS=\$R_LIBS_USER:\$R_LIBS
......
......@@ -105,13 +105,6 @@ spec:
persistentVolumeClaim:
claimName: shared-binaries
- name: tmp
ephemeral:
volumeClaimTemplate:
spec:
accessModes: [ "ReadWriteMany" ]
storageClassName: "longhorn-0"
resources:
requests:
storage: 50Gi
emptyDir: {}
restartPolicy: Never
EOT
#!/bin/bash
# ===========================================================================================================
# title : create_job_widget_script.sh
# usage : ./create_job_widget_script.sh $OC_JOB_ID $RUN_ENV_DOCKER_IMAGE $INSTALLATION_ROOT
# $SPACK_ENV $RELEASE_NAME $LAB_KERNEL_ROOT
# description : creates job file that generates a script to load the jupyter extensions for a given env
# ===========================================================================================================
OC_JOB_ID=$1
RUN_ENV_DOCKER_IMAGE=$2
INSTALLATION_ROOT=$3
EBRAINS_SPACK_ENV=$4
RELEASE_NAME=$5
LAB_KERNEL_ROOT=$6
cat <<EOT >> widget-script.yml
apiVersion: batch/v1
kind: Job
metadata:
name: widget-script${OC_JOB_ID}
spec:
parallelism: 1
completions: 1
backoffLimit: 0
template:
spec:
containers:
- name: widget-script
image: ${RUN_ENV_DOCKER_IMAGE}
imagePullPolicy: Always
resources:
limits:
cpu: '1'
memory: '1Gi'
requests:
cpu: '0.5'
memory: '500Mi'
volumeMounts:
- name: sharedbin
mountPath: /srv
command:
- /bin/bash
- -c
- |
. \$INSTALLATION_ROOT/spack/share/spack/setup-env.sh
spack env activate --without-view \$EBRAINS_SPACK_ENV
KERNEL_PATH=\$LAB_KERNEL_ROOT/\$(echo "\$RELEASE_NAME" | tr '[:upper:]' '[:lower:]')
spack load --sh --first clb-nb-utils py-pip py-tvb-ext-bucket py-tvb-ext-unicore py-tvb-ext-xircuits > \$KERNEL_PATH/bin/widget_activation.sh
env:
- name: SYSTEMNAME
value: ebrainslab
- name: SPACK_DISABLE_LOCAL_CONFIG
value: "true"
- name: INSTALLATION_ROOT
value: "$INSTALLATION_ROOT"
- name: EBRAINS_SPACK_ENV
value: "$EBRAINS_SPACK_ENV"
- name: RELEASE_NAME
value: "$RELEASE_NAME"
- name: LAB_KERNEL_ROOT
value: "$LAB_KERNEL_ROOT"
volumes:
- name: sharedbin
persistentVolumeClaim:
claimName: shared-binaries
restartPolicy: Never
EOT
......@@ -96,9 +96,6 @@ cp /tmp/spack.yaml ${CI_SPACK_ROOT}/var/spack/environments/$EBRAINS_SPACK_ENV/
# activate environment
spack env activate --without-view $EBRAINS_SPACK_ENV
# deactivate view during concretization and installation
spack env view disable
spack concretize --force --fresh --test root
# dump dag to file
......@@ -133,9 +130,9 @@ spack-python -c "exit(not len(spack.environment.active_environment().uninstalled
else
echo "Updating of the source cache disabled."
fi
if [ "$ret" -ne 0 ]; then
(exit $ret)
fi
# if [ "$ret" -ne 0 ]; then
# (exit $ret)
# fi
)
if [ -n "${OCI_CACHE_PREFIX}" ]; then
......@@ -147,10 +144,6 @@ fi
# delay exit code until we have updated the cache below
spack install --no-check-signature -y -j$SPACK_JOBS --fresh --test root && spack_install_ret=$? || spack_install_ret=$?
# re-enable view
spack env view enable
spack env view regenerate
# no need to update the local cache nor the remote cache if we don't want to update
if [ -n "${OCI_CACHE_PREFIX}" ] && [ "${UPDATE_SPACK_OCI_CACHES:-false}" = "true" ]; then
# push previously missing (but now installed) packages to the local cache
......
# Copyright 2013-2024 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)
import os
import platform
from spack.package import *
_versions = {
# cuDNN 9.8.0
"9.8.0.87-12": {
"Linux-x86_64": "321b9b33bb1287404d93d5672d352f16feabc4b220ac6ae0b86e4b27f257dcf4",
"Linux-aarch64": "f03ece3ff07d1719f06218973a8797cec1be387cc317baab5bb118dc988199e7",
},
"9.8.0.87-11": {
"Linux-x86_64": "cf4dfaef8311d987d640a322f668cd5240ac3e5302abe9617dd991b5b2532758"
},
# cuDNN 9.2.0
"9.2.0.82-12": {
"Linux-x86_64": "1362b4d437e37e92c9814c3b4065db5106c2e03268e22275a5869e968cee7aa8",
"Linux-aarch64": "24cc2a0308dfe412c02c7d41d4b07ec12dacb021ebf8c719de38eb77d22f68c1",
},
"9.2.0.82-11": {
"Linux-x86_64": "99dcb3fa2bf7eed7f35b0f8e58e7d1f04d9a52e01e382efc1de16fed230d3b26"
},
# cuDNN 8.9.7
"8.9.7.29-12": {
"Linux-x86_64": "475333625c7e42a7af3ca0b2f7506a106e30c93b1aa0081cd9c13efb6e21e3bb",
"Linux-ppc64le": "8574d291b299f9cc0134304473c9933bd098cc717e8d0876f4aba9f9eebe1b76",
},
"8.9.7.29-11": {
"Linux-x86_64": "a3e2509028cecda0117ce5a0f42106346e82e86d390f4bb9475afc976c77402e",
"Linux-ppc64le": "f23fd7d59f9d4f743fa926f317dab0d37f6ea21edb2726ceb607bea45b0f9f36",
},
# cuDNN 8.9.5
"8.9.5.30-12": {
"Linux-x86_64": "2a2eb89a2ab51071151c6082f1e816c702167a711a9372f9f73a7b5c4b06e01a",
"Linux-ppc64le": "38388ec3c99c6646aaf5c707985cd35e25c67f653d780c4081c2df5557ab665f",
"Linux-aarch64": "0491f7b02f55c22077eb678bf314c1f917524bd507cf5b658239bf98a47233a1",
},
"8.9.5.30-11": {
"Linux-x86_64": "bbe10e3c08cd7e4aea1012213781e4fe270e1c908263444f567cafefb2cc6525",
"Linux-ppc64le": "d678f8b2903b95de7eeaef38890c5674705864ea049b2b63e90565f2c0ea682f",
},
# cuDNN 8.9.0
"8.9.0.131-12": {
"Linux-x86_64": "477631002be61022b60961cba0a501271507a93f81d6b08384bc320cb8706c98",
"Linux-ppc64le": "ff239e4cbbf21fa18104b62a887686e2197f820ad58817d62e509c735a331829",
"Linux-aarch64": "fab70f4fb3b933ff502200a1d954d2c6fc205ff9c9b1d271ea4c41e980a66596",
},
"8.9.0.131-11": {
"Linux-x86_64": "3cb82c50723f14b41d43523f222cd52cc9d50b3ad67c380f4be51bd1133daa2d",
"Linux-ppc64le": "18778de490550c5b584e96560208e5e37678397037946e10a1c2824174c69725",
},
# cuDNN 8.8.1
"8.8.1.3-12": {
"Linux-x86_64": "79d77a769c7e7175abc7b5c2ed5c494148c0618a864138722c887f95c623777c",
"Linux-ppc64le": "b0e89021a846952cad8cfc674edce2883f6e344ebd47a2394f706b1136715bc7",
},
"8.8.1.3-11": {
"Linux-x86_64": "af7584cae0cc5524b5913ef08c29ba6154113c60eb0a37a0590a91b515a8a8f9",
"Linux-ppc64le": "d086003d09d5388aa42142f07483a773aa74b602478b0933e24fc63f56f1658f",
},
# cuDNN 8.7.0
"8.7.0.84-11.8": {
"Linux-x86_64": "976c4cba7233c97ae74006afab5172976300ba40f5b250a21f8cf71f59c9f76d",
"Linux-ppc64le": "0433d6d8b6841298e049e8a542750aa330a6e046a52ad95fae0c2f75dabe5575",
"Linux-aarch64": "cf967f78dbf6c075243cc83aa18759e370db3754aa15b12a0a14e8bf67a3a9d4",
},
# cuDNN 8.6.0
"8.6.0.163-11.8": {
"Linux-x86_64": "bbc396df47294c657edc09c600674d608cb1bfc80b82dcf4547060c21711159e",
"Linux-ppc64le": "c8a25e7e3df1bb9c4e18a4f24dd5f25cfd4bbe8b7054e34008e53b2be4f58a80",
"Linux-aarch64": "a0202278d3cbd4f3adc3f7816bff6071621cb042b0903698b477acac8928ac06",
},
# cuDNN 8.5.0
"8.5.0.96-11.7": {
"Linux-x86_64": "5454a6fd94f008728caae9adad993c4e85ef36302e26bce43bea7d458a5e7b6d",
"Linux-ppc64le": "00373c3d5e0b536a5557d0d0eb50706777f213a222b4030e1b71b1bec43d205f",
"Linux-aarch64": "86780abbecd4634e7363fad1d000ae23b7905a5f8383bddbf7332c6934791dde",
},
# cuDNN 8.4.0
"8.4.0.27-11.6": {
"Linux-x86_64": "d19bdafd9800c79d29e6f6fffa9f9e2c10d1132d6c2ff10b1593e057e74dd050",
"Linux-ppc64le": "7ef72353331cf42b357f53cb4a4971fb07e2f0b2ae66e03d54933df52de411c8",
"Linux-aarch64": "3972ab37b6f0271274931f69c5675c3b61d16f8f5a2dedd422a5efd7b0f358e5",
},
"8.4.0.27-10.2": {
"Linux-x86_64": "14c5e3ca4258271996d1fd959c42d17c582ce4d9aff451f84524469e784fd154"
},
# cuDNN 8.3.3
"8.3.3.40-11.5": {
"Linux-x86_64": "eabe96c75cf03ea4f5379894d914f1f8ae14ceab121989e84b0836d927fb7731",
"Linux-ppc64le": "eaedc8dea675767f9445c11d96e6b472110d2fed728db4179153ca7da6503083",
"Linux-aarch64": "83b1d21b0f6495dfdc2316e6d53489db8ab1b752e4e4d21caca0a08fb2136cdc",
},
"8.3.3.40-10.2": {
"Linux-x86_64": "d8554f2b32e6295d5fc8f3ac25e68f94058b018c801dab9c143e36812f8926ab"
},
# cuDNN 8.3.2
"8.3.2.44-11.5": {
"Linux-x86_64": "5500953c08c5e5d1dddcfda234f9efbddcdbe43a53b26dc0a82c723fa170c457",
"Linux-ppc64le": "0581bce48023a3ee71c3a819aaefcabe693eca18b61e2521dc5f8e6e71567b1b",
"Linux-aarch64": "7eb8c96bfeec98e8aa7cea1e95633d2a9481fc99040eb0311d31bf137a7aa6ea",
},
# cuDNN 8.3.1
"8.3.1.22-11.5": {
"Linux-x86_64": "f5ff3c69b6a8a9454289b42eca1dd41c3527f70fcf49428eb80502bcf6b02f6e",
"Linux-ppc64le": "1d2419a20ee193dc6a3a0ba87e79f408286d3d317c9831cbc1f0b7a268c100b0",
"Linux-aarch64": "ff23a881366c0ee79b973a8921c6dd400628a321557550ad4e0a26a21caad263",
},
# cuDNN 8.2.4
"8.2.4.15-11.4": {
"Linux-x86_64": "0e5d2df890b9967efa6619da421310d97323565a79f05a1a8cb9b7165baad0d7",
"Linux-ppc64le": "af8749ca83fd6bba117c8bee31b787b7f204946e864294030ee0091eb7d3577e",
"Linux-aarch64": "48b11f19e9cd3414ec3c6c357ad228aebbd43282aae372d42cab2af67c32a08b",
},
# cuDNN 8.2.0
"8.2.0.53-11.3": {
"Linux-x86_64": "7a195dc93a7cda2bdd4d9b73958d259c784be422cd941a9a625aab75309f19dc",
"Linux-ppc64le": "cfe06735671a41a5e25fc7542d740177ac8eab1ab146bd30f19e0fa836895611",
"Linux-aarch64": "0f44af94eef7826dc7b41f92aade3d5210891cdb10858bc0a28ba7167909ab7c",
},
"8.2.0.53-10.2": {
"Linux-x86_64": "6ecbc98b3795e940ce0831ffb7cd2c0781830fdd6b1911f950bcaf6d569f807c"
},
# cuDNN 8.1.1
"8.1.1.33-11.2": {
"Linux-x86_64": "98a8784e92862f20018d20c281b30d4a0cd951f93694f6433ccf4ae9c502ba6a",
"Linux-ppc64le": "c3e535a5d633ad8f4d50be0b6f8efd084c6c6ed3525c07cbd89fc508b1d76c7a",
"Linux-aarch64": "4f7e4f5698539659d51f28dff0da11e5445a5ae58439af1d8a8e9f2d93535245",
},
"8.1.1.33-10.2": {
"Linux-x86_64": "2a4a7b99a6e9bfa690eb19bb41e49553f2a7a491a5b3abfcae900e166c5b6ebd"
},
# cuDNN 8.1.0
"8.1.0.77-11.2": {
"Linux-x86_64": "dbe82faf071d91ba9bcf00480146ad33f462482dfee56caf4479c1b8dabe3ecb",
"Linux-ppc64le": "0d3f8fa21959e9f94889841cc8445aecf41d2f3c557091b447313afb43034037",
"Linux-aarch64": "ba16ff486b68a8b50b69b32702612634954de529f39cfff68c12b8bfc1958499",
},
"8.1.0.77-10.2": {
"Linux-x86_64": "c5bc617d89198b0fbe485156446be15a08aee37f7aff41c797b120912f2b14b4"
},
# cuDNN 8.0.5
"8.0.5.39-11.1": {
"Linux-x86_64": "1d046bfa79399dabcc6f6cb1507918754439442ea0ca9e0fbecdd446f9b00cce",
"Linux-aarch64": "0c3542c51b42131247cd9f839d0ebefe4e02bb46d1716be1682cb2919278085a",
},
"8.0.5.39-11.0": {
"Linux-x86_64": "4e16ee7895deb4a8b1c194b812ba49586ef7d26902051401d3717511898a9b73",
"Linux-ppc64le": "05207a02c0b4f22464dbb0ee646693df4a70ae557640ba576ba8678c26393004",
},
"8.0.5.39-10.2": {
"Linux-x86_64": "21f84c05c67bf1ec859e77c38ccd5bf154964fa1c308f449959be4c356e382f3",
"Linux-ppc64le": "ce128ea090b05e36d00ffe921e45982ca10e8207e40cfc2e0067d0f62d9b36f9",
},
"8.0.5.39-10.1": {
"Linux-x86_64": "90908495298896b33aa95063a3471f93c36627d7ac01c17dc36d75c65eea4a00",
"Linux-ppc64le": "e43b10bb3932d5e7a598dcc726d16dc9938dd99dd319cd74b3420f3ed65fe5e0",
},
# cuDNN 8.0.4
"8.0.4.30-11.1": {
"Linux-x86_64": "8f4c662343afce5998ce963500fe3bb167e9a508c1a1a949d821a4b80fa9beab",
"Linux-ppc64le": "b4ddb51610cbae806017616698635a9914c3e1eb14259f3a39ee5c84e7106712",
},
"8.0.4.30-11.0": {
"Linux-x86_64": "38a81a28952e314e21577432b0bab68357ef9de7f6c8858f721f78df9ee60c35",
"Linux-ppc64le": "8da8ed689b1a348182ddd3f59b6758a502e11dc6708c33f96e3b4a40e033d2e1",
},
"8.0.4.30-10.2": {
"Linux-x86_64": "c12c69eb16698eacac40aa46b9ce399d4cd86efb6ff0c105142f8a28fcfb980e",
"Linux-ppc64le": "32a5b92f9e1ef2be90e10f220c4ab144ca59d215eb6a386e93597f447aa6507e",
},
"8.0.4.30-10.1": {
"Linux-x86_64": "eb4b888e61715168f57a0a0a21c281ada6856b728e5112618ed15f8637487715",
"Linux-ppc64le": "690811bbf04adef635f4a6f480575fc2a558c4a2c98c85c7090a3a8c60dacea9",
},
# cuDNN 8.0.3
"8.0.3.33-11.0": {
"Linux-x86_64": "8924bcc4f833734bdd0009050d110ad0c8419d3796010cf7bc515df654f6065a",
"Linux-ppc64le": "c2d0519831137b43d0eebe07522edb4ef5d62320e65e5d5fa840a9856f25923d",
},
"8.0.3.33-10.2": {
"Linux-x86_64": "b3d487c621e24b5711983b89bb8ad34f0378bdbf8a1a4b86eefaa23b19956dcc",
"Linux-ppc64le": "ff22c9c37af191c9104989d784427cde744cdde879bfebf3e4e55ca6a9634a11",
},
"8.0.3.33-10.1": {
"Linux-x86_64": "4752ac6aea4e4d2226061610d6843da6338ef75a93518aa9ce50d0f58df5fb07",
"Linux-ppc64le": "c546175f6ec86a11ee8fb9ab5526fa8d854322545769a87d35b1a505992f89c3",
},
# cuDNN 8.0.2
"8.0.2.39-11.0": {
"Linux-x86_64": "672f46288b8edd98f8d156a4f1ff518201ca6de0cff67915ceaa37f6d6d86345",
"Linux-ppc64le": "b7c1ce5b1191eb007ba3455ea5f497fdce293a646545d8a6ed93e9bb06d7f057",
},
"8.0.2.39-10.2": {
"Linux-x86_64": "c9cbe5c211360f3cfbc0fb104f0e9096b37e53f89392525679f049276b2f701f",
"Linux-ppc64le": "c32325ff84a8123491f2e58b3694885a9a672005bc21764b38874688c0e43262",
},
"8.0.2.39-10.1": {
"Linux-x86_64": "82148a68bd6bdaab93af5e05bb1842b8ccb3ab7de7bed41f609a7616c102213d",
"Linux-ppc64le": "8196ec4f031356317baeccefbc4f61c8fccb2cf0bdef0a6431438918ddf68fb9",
},
# cuDNN 8.0
"8.0.0.180-11.0": {
"Linux-x86_64": "9e75ea70280a77de815e0bdc85d08b67e081bc99a708b574092142344d2ba07e",
"Linux-ppc64le": "1229e94731bbca63ee7f5a239f4e1838a51a301d896f3097fbf7377d74704060",
},
"8.0.0.180-10.2": {
"Linux-x86_64": "0c87c12358ee2b99d57c2a8c7560e3bb93e54bb929f5f8bec4964a72a2bb261d",
"Linux-ppc64le": "59e4ad6db15fcc374976e8052fe39e3f30f34079710fb3c7751a64c853d9243f",
},
# cuDNN 7.6.5
"7.6.5.32-10.2": {
"Linux-x86_64": "600267f2caaed2fd58eb214ba669d8ea35f396a7d19b94822e6b36f9f7088c20",
"Linux-ppc64le": "7dc08b6ab9331bfd12207d4802c61db1ad7cace7395b67a6e7b16efa0335668b",
},
"7.6.5.32-10.1": {
"Linux-x86_64": "7eaec8039a2c30ab0bc758d303588767693def6bf49b22485a2c00bf2e136cb3",
"Darwin-x86_64": "8ecce28a5ed388a2b9b2d239e08d7c550f53b79288e6d9e5eb4c152bfc711aff",
"Linux-ppc64le": "97b2faf73eedfc128f2f5762784d21467a95b2d5ba719825419c058f427cbf56",
},
"7.6.5.32-10.0": {
"Linux-x86_64": "28355e395f0b2b93ac2c83b61360b35ba6cd0377e44e78be197b6b61b4b492ba",
"Darwin-x86_64": "6fa0b819374da49102e285ecf7fcb8879df4d0b3cc430cc8b781cdeb41009b47",
"Linux-ppc64le": "b1717f4570083bbfc6b8b59f280bae4e4197cc1cb50e9d873c05adf670084c5b",
},
"7.6.5.32-9.2": {
"Linux-x86_64": "a2a2c7a8ba7b16d323b651766ee37dcfdbc2b50d920f73f8fde85005424960e4",
"Linux-ppc64le": "a11f44f9a827b7e69f527a9d260f1637694ff7c1674a3e46bd9ec054a08f9a76",
},
"7.6.5.32-9.0": {
"Linux-x86_64": "bd0a4c0090d5b02feec3f195738968690cc2470b9bc6026e6fe8ff245cd261c8"
},
# cuDNN 7.6.4
"7.6.4.38-10.1": {
"Linux-x86_64": "32091d115c0373027418620a09ebec3658a6bc467d011de7cdd0eb07d644b099",
"Darwin-x86_64": "bfced062c3689ced2c1fb49c7d5052e6bc3da6974c1eb707e4dcf8cd209d4236",
"Linux-ppc64le": "f3615fea50986a4dfd05d7a0cf83396dfdceefa9c209e8bf9691e20a48e420ce",
},
"7.6.4.38-10.0": {
"Linux-x86_64": "417bb5daf51377037eb2f5c87649000ca1b9cec0acb16cfe07cb1d3e9a961dbf",
"Darwin-x86_64": "af01ab841caec25087776a6b8fc7782883da12e590e24825ad1031f9ae0ed4b1",
"Linux-ppc64le": "c1725ad6bd7d7741e080a1e6da4b62eac027a94ac55c606cce261e3f829400bb",
},
"7.6.4.38-9.2": {
"Linux-x86_64": "c79156531e641289b6a6952888b9637059ef30defd43c3cf82acf38d67f60a27",
"Linux-ppc64le": "98d8aae2dcd851558397a9a30b73242f257e1556be17c83650e63a0685969884",
},
"7.6.4.38-9.0": {
"Linux-x86_64": "8db78c3623c192d4f03f3087b41c32cb0baac95e13408b5d9dabe626cb4aab5d"
},
# cuDNN 7.6.3
"7.6.3.30-10.1": {
"Linux-x86_64": "352557346d8111e2f954c494be1a90207103d316b8777c33e62b3a7f7b708961",
"Linux-ppc64le": "f274735a8fc31923d3623b1c3d2b1d0d35bb176687077c6a4d4353c6b900d8ee",
},
# cuDNN 7.5.1
"7.5.1.10-10.1": {
"Linux-x86_64": "2c833f43c9147d9a25a20947a4c5a5f5c33b2443240fd767f63b330c482e68e0",
"Linux-ppc64le": "a9e23bc83c970daec20874ccd1d8d80b648adf15440ecd0164818b330b1e2663",
},
"7.5.1.10-10.0": {
"Linux-x86_64": "c0a4ec438920aa581dd567117b9c316745b4a451ac739b1e04939a3d8b229985",
"Linux-ppc64le": "d9205718da5fbab85433476f9ff61fcf4b889d216d6eea26753bbc24d115dd70",
},
# cuDNN 7.5.0
"7.5.0.56-10.1": {
"Linux-x86_64": "c31697d6b71afe62838ad2e57da3c3c9419c4e9f5635d14b683ebe63f904fbc8",
"Linux-ppc64le": "15415eb714ab86ab6c7531f2cac6474b5dafd989479b062776c670b190e43638",
},
"7.5.0.56-10.0": {
"Linux-x86_64": "701097882cb745d4683bb7ff6c33b8a35c7c81be31bac78f05bad130e7e0b781",
"Linux-ppc64le": "f0c1cbd9de553c8e2a3893915bd5fff57b30e368ef4c964d783b6a877869e93a",
},
# cuDNN 7.3.0
"7.3.0.29-9.0": {
"Linux-x86_64": "403f9043ff2c7b2c5967454872275d07bca11fd41dfc7b21995eadcad6dbe49b"
},
# cuDNN 7.2.1
"7.2.1.38-9.0": {
"Linux-x86_64": "cf007437b9ac6250ec63b89c25f248d2597fdd01369c80146567f78e75ce4e37"
},
# cuDNN 7.1.3
"7.1.3-9.1": {
"Linux-x86_64": "dd616d3794167ceb923d706bf73e8d6acdda770751492b921ee6827cdf190228",
"Linux-ppc64le": "e3b4837f711b98a52faacc872a68b332c833917ef3cf87c0108f1d01af9b2931",
},
# cuDNN 6.0
"6.0-8.0": {
"Linux-x86_64": "9b09110af48c9a4d7b6344eb4b3e344daa84987ed6177d5c44319732f3bb7f9c"
},
# cuDNN 5.1
"5.1-8.0": {
"Linux-x86_64": "c10719b36f2dd6e9ddc63e3189affaa1a94d7d027e63b71c3f64d449ab0645ce"
},
}
class Cudnn(Package):
"""NVIDIA cuDNN is a GPU-accelerated library of primitives for deep
neural networks"""
homepage = "https://developer.nvidia.com/cudnn"
# Latest versions available at:
# https://developer.nvidia.com/rdp/cudnn-download
# Archived versions available at:
# https://developer.nvidia.com/rdp/cudnn-archive
# Note that download links don't work from command line,
# need to use modified URLs like in url_for_version.
maintainers("adamjstewart", "bvanessen")
skip_version_audit = ["platform=darwin", "platform=windows"]
license("MIT")
for ver, packages in _versions.items():
key = "{0}-{1}".format(platform.system(), platform.machine())
pkg = packages.get(key)
cudnn_ver, cuda_ver = ver.split("-")
long_ver = "{0}-{1}".format(cudnn_ver, cuda_ver)
if pkg:
version(long_ver, sha256=pkg)
# Add constraints matching CUDA version to cuDNN version
# cuDNN builds for CUDA 11.x are compatible with all CUDA 11.x:
# https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#fntarg_2
if Version(cuda_ver) >= Version("11"):
cuda_ver = Version(cuda_ver).up_to(1)
depends_on("cuda@{}".format(cuda_ver), when="@{}".format(long_ver))
def url_for_version(self, version):
# Get the system and machine arch for building the file path
sys = "{0}-{1}".format(platform.system(), platform.machine())
# Munge it to match Nvidia's naming scheme
sys_key = sys.lower()
if version < Version("8.3.1"):
sys_key = (
sys_key.replace("x86_64", "x64")
.replace("darwin", "osx")
.replace("aarch64", "aarch64sbsa")
)
elif version < Version("8.8.0"):
sys_key = sys_key.replace("aarch64", "sbsa")
if version >= Version("8.3.1"):
# NOTE: upload layout changed for 8.3.1, they include a 10.2
# artifact for cuda@10.2 x86_64, but the runtime is only supported
# for cuda@11. See
# https://docs.nvidia.com/deeplearning/cudnn/release-notes/rel_8.html
# As such, hacking the `directory` to include the extra
# local_installers/11.5 is included as this may not happen again.
directory = version[:3]
ver = version[:4]
cuda = version[4:]
directory = "{0}/local_installers/{1}".format(directory, cuda)
elif version >= Version("7.2"):
directory = version[:3]
ver = version[:4]
cuda = version[4:]
elif version >= Version("7.1"):
directory = version[:3]
ver = version[:2]
cuda = version[3:]
elif version >= Version("7.0"):
directory = version[:3]
ver = version[0]
cuda = version[3:]
else:
directory = version[:2]
ver = version[:2]
cuda = version[2:]
# 8.8.0 changed the base url again
if version >= Version("8.8.0"):
url = "https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/{0}/cudnn-{0}-{1}_cuda{2}-archive.tar.xz"
return url.format(sys_key, ver, cuda.up_to(1))
# 8.5.0 removed minor from cuda version
elif version >= Version("8.5.0"):
url = "https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}_cuda{3}-archive.tar.xz"
return url.format(directory, sys_key, ver, cuda.up_to(1))
# 8.3.1 switched to xzip tarballs and reordered url parts.
elif version >= Version("8.3.1"):
url = "https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}_cuda{3}-archive.tar.xz"
return url.format(directory, sys_key, ver, cuda)
else:
url = "https://developer.download.nvidia.com/compute/redist/cudnn/v{0}/cudnn-{1}-{2}-v{3}.tgz"
return url.format(directory, cuda, sys_key, ver)
def setup_run_environment(self, env):
# Package is not compiled, and does not work unless LD_LIBRARY_PATH is set
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
if self.spec.satisfies("target=ppc64le: platform=linux"):
env.set("cuDNN_ROOT", os.path.join(self.prefix, "targets", "ppc64le-linux"))
def install(self, spec, prefix):
install_tree(".", prefix)
if spec.satisfies("target=ppc64le: platform=linux"):
target_lib = os.path.join(prefix, "targets", "ppc64le-linux", "lib")
if os.path.isdir(target_lib) and not os.path.isdir(prefix.lib):
symlink(target_lib, prefix.lib)
target_include = os.path.join(prefix, "targets", "ppc64le-linux", "include")
if os.path.isdir(target_include) and not os.path.isdir(prefix.include):
symlink(target_include, prefix.include)
diff --git a/src/hxtorch/wscript b/src/hxtorch/wscript
index aaf670f..39322c8 100644
--- a/hxtorch/wscript
+++ b/hxtorch/wscript
@@ -45,13 +45,19 @@
)
site_packages = site.getsitepackages()
- assert isinstance(site_packages, list) and len(site_packages) == 1
- includes_torch = [os.path.join(x, 'torch/include') for x in site_packages]
- includes_torch_csrc_api = [os.path.join(x, 'torch/include/torch/csrc/api/include') for x in site_packages]
+ includes_torch = []
+ includes_torch_csrc_api = []
+ for x in site_packages:
+ torch_inc = os.path.join(x, 'torch/include')
+ if os.path.exists(torch_inc):
+ includes_torch.append(torch_inc)
+ torch_csrc_inc = os.path.join(x, 'torch/include/torch/csrc/api/include')
+ if os.path.exists(torch_csrc_inc):
+ includes_torch_csrc_api.append(torch_csrc_inc)
libpath_torch = [os.path.join(x, 'torch/lib') for x in site_packages]
libnames = []
# if torch isn't available via site-packages, try sys.path/PYTHONPATH
- if not os.path.exists(libpath_torch[0]):
+ if not any([os.path.exists(x) for x in libpath_torch]):
# find other possible paths
libpath_torch = [os.path.join(x, 'torch/lib') for x in sys.path if 'torch' in x]
# filter on existance of path
......@@ -96,6 +96,8 @@ class Hxtorch(build_brainscales.BuildBrainscales):
patch("include-SparseTensorUtils.patch", when="@:8.0-a5")
patch("fix-multi-site-packages.patch", when="@:10.0-a1")
def install_test(self):
with working_dir('spack-test', create=True):
old_pythonpath = os.environ.get('PYTHONPATH', '')
......
diff --git a/src/hxtorch/wscript b/src/hxtorch/wscript
index aaf670f..39322c8 100644
--- a/hxtorch/wscript
+++ b/hxtorch/wscript
@@ -45,13 +45,19 @@
)
site_packages = site.getsitepackages()
- assert isinstance(site_packages, list) and len(site_packages) == 1
- includes_torch = [os.path.join(x, 'torch/include') for x in site_packages]
- includes_torch_csrc_api = [os.path.join(x, 'torch/include/torch/csrc/api/include') for x in site_packages]
+ includes_torch = []
+ includes_torch_csrc_api = []
+ for x in site_packages:
+ torch_inc = os.path.join(x, 'torch/include')
+ if os.path.exists(torch_inc):
+ includes_torch.append(torch_inc)
+ torch_csrc_inc = os.path.join(x, 'torch/include/torch/csrc/api/include')
+ if os.path.exists(torch_csrc_inc):
+ includes_torch_csrc_api.append(torch_csrc_inc)
libpath_torch = [os.path.join(x, 'torch/lib') for x in site_packages]
libnames = []
# if torch isn't available via site-packages, try sys.path/PYTHONPATH
- if not os.path.exists(libpath_torch[0]):
+ if not any([os.path.exists(x) for x in libpath_torch]):
# find other possible paths
libpath_torch = [os.path.join(x, 'torch/lib') for x in sys.path if 'torch' in x]
# filter on existance of path
From d12ff24ccb39f861067661b01973862e83552baf Mon Sep 17 00:00:00 2001
From: Elias Arnold <elias.arnold@kip.uni-heidelberg.de>
Date: Mon, 31 Mar 2025 15:13:03 +0200
Subject: [PATCH] fix: tests for new jax
Change-Id: I278454c7a51c0c15071a7ab8496a9655c52ff495
---
diff --git a/tests/sw/event/hardware/utils_test.py b/tests/sw/event/hardware/utils_test.py
index ab73452..0753947 100644
--- a/jaxsnn/tests/sw/event/hardware/utils_test.py
+++ b/jaxsnn/tests/sw/event/hardware/utils_test.py
@@ -15,12 +15,12 @@
rng = random.PRNGKey(42)
with_noise = add_noise_batch(spikes, rng, std=1)
assert_array_equal(
- with_noise.idx, np.array([[0, 1, 2, 5, 3, 4, 6, 7, 8, 9]])
+ with_noise.idx, np.array([[0, 1, 2, 3, 4, 6, 5, 7, 8, 9]])
)
with_noise = add_noise_batch(spikes, rng, std=3)
assert_array_equal(
- with_noise.idx, np.array([[2, 1, 0, 5, 6, 7, 3, 4, 8, 9]])
+ with_noise.idx, np.array([[0, 6, 1, 2, 3, 4, 5, 7, 8, 9]])
)
def test_sort_batch(self):
diff --git a/tests/sw/event/tasks/constant_test.py b/tests/sw/event/tasks/constant_test.py
index be82deb..a7906af 100644
--- a/jaxsnn/tests/sw/event/tasks/constant_test.py
+++ b/jaxsnn/tests/sw/event/tasks/constant_test.py
@@ -52,7 +52,7 @@
)
# init weights
- rng = random.PRNGKey(42)
+ rng = random.PRNGKey(45)
weights = init_fn(rng, input_shape)
loss_fn = partial(
......@@ -46,6 +46,9 @@ class Jaxsnn(build_brainscales.BuildBrainscales):
extends('python')
patch("include-SparseTensorUtils.patch", when="@:8.0-a5")
patch("newjax.patch", when="@:10.0-a1 ^py-jax@0.5:")
patch("fix-multi-site-packages.patch", when="@:10.0-a1")
def install_test(self):
with working_dir('spack-test', create=True):
......
......@@ -75,6 +75,8 @@ class Nest(CMakePackage):
description="Enable direct reading of connectivity from SONATA files")
variant('boost', default=True,
description="Enable optimizations provided via Boost library algorithms and containers")
variant('jemalloc', default=True,
description="Pull in jemalloc as run-time dependency.")
# TODO add variants for neurosim and music when these are in spack
conflicts('~gsl', when='@:2.10.99',
......@@ -99,6 +101,7 @@ class Nest(CMakePackage):
depends_on('hdf5+cxx+mpi', when='@3.4.99:+sonata+mpi', type=('build', 'run'))
depends_on('hdf5+cxx~mpi', when='@3.4.99:+sonata~mpi', type=('build', 'run'))
depends_on('py-pandas', when='@3.4.99:+sonata', type=('build', 'run'))
depends_on('jemalloc', when='@3:+jemalloc', type=('run', 'test'))
depends_on('py-nose', when='@:2.99.99+python+testsuite', type='test')
depends_on('py-pytest', when='@3.0:+testsuite', type='test')
......
# Copyright 2013-2024 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 PyAnywidget(PythonPackage):
"""Custom jupyter widgets made easy"""
homepage = "https://github.com/manzt/anywidget"
pypi = "anywidget/anywidget-0.9.16.tar.gz"
version("0.9.13", sha256="c655455bf51f82182eb23c5947d37cc41f0b1ffacaf7e2b763147a2332cb3f07")
version("0.9.12", sha256="25855b2496dc6541356b6d26ca0c9f9525203bb7cf2817f84b93bfe3f53cf81e")
version("0.9.11", sha256="58dded8e86ec27ce28760c9457317663113d9af608947ee6a8d0ecb528b22cdc")
version("0.9.10", sha256="390a628240981c09813c7523279ddcab82ff4fd3287add5433b78b1369089068")
version("0.8.1", sha256="a7627770be455f89afd7d58faff926f45ef52b53257ae3c595177d5ff9b12fd1")
version("0.8.0", sha256="847a0fece58ea7a32d20dccd54a026dd3dd28f76daa6b4f0a74c253e5c7cfeec")
depends_on("py-hatchling", type="build")
depends_on("py-hatch-jupyter-builder", type="build")
depends_on("py-ipywidgets@7.6:", type=("build", "run"))
depends_on("py-typing-extensions@4.2:", type=("build", "run"))
depends_on("py-psygnal@0.8.1:", type=("build", "run"))
# Copyright 2013-2024 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 PyBiobbGromacs(PythonPackage):
"""Biobb_gromacs is the Biobb module collection to perform
molecular dynamics simulations using the GROMACS MD suite"""
pypi = "biobb_gromacs/biobb_gromacs-4.1.1.tar.gz"
maintainers("d-beltran")
# Versions
version("4.1.1", sha256="270cce747fc214471527438c8319bda0613be5b76da9f4684e6f138d1927d2f7")
# Dependencies
depends_on("py-setuptools", type="build")
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-biobb-common@4.1.0", type=("build", "run"))
# begin EBRAINS(modified): biobb-gromacs checks for a `gmx` binary, with no suffix
depends_on("gromacs+nosuffix", type=("run"))
# end EBRAINS
# Copyright 2013-2024 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 PyBluepyopt(PythonPackage):
"""Bluebrain Python Optimisation Library"""
homepage = "https://github.com/BlueBrain/BluePyOpt"
pypi = "bluepyopt/bluepyopt-1.9.27.tar.gz"
license("LGPL-3.0-only")
# NOTE : while adding new release check pmi_rank.patch compatibility
version("1.14.18", sha256="23d6239294d944c8f9d4ea298091bcf243d236735844e1bcba60535a0f520ca8")
version("1.14.11", sha256="fe2830c36699a93d2ef9ddef316da42f9c57ca6654c92356eab973ee2298ebf7")
version("1.14.4", sha256="7567fd736053250ca06030f67ad93c607b100c2b98df8dc588c26b64cb3e171c")
# patch required to avoid hpe-mpi linked mechanism library
patch("pmi_rank.patch")
variant("scoop", default=False, description="Use BluePyOpt together with py-scoop")
depends_on("py-setuptools", type="build")
depends_on("py-numpy@1.6:", type=("build", "run"))
depends_on("py-pandas@0.18:", type=("build", "run"))
depends_on("py-deap@1.3.3:", type=("build", "run"))
depends_on("py-efel@2.13:", type=("build", "run"))
depends_on("py-ipyparallel", type=("build", "run"))
depends_on("py-pickleshare@0.7.3:", type=("build", "run"))
depends_on("py-jinja2@2.8:", type=("build", "run"))
depends_on("py-future", type=("build", "run"))
depends_on("py-pebble@4.6:", type=("build", "run"))
depends_on("py-scoop@0.7:", type=("build", "run"), when="+scoop")
depends_on("neuron@7.4:", type=("build", "run"), when="@:1.14.4")
depends_on("neuron@7.8:", type=("build", "run"), when="@1.14.11:")
def setup_run_environment(self, env):
env.unset("PMI_RANK")
env.set("NEURON_INIT_MPI", "0")
diff --git a/bluepyopt/ephys/simulators.py b/bluepyopt/ephys/simulators.py
index e71ad8b..3c93237 100644
--- a/bluepyopt/ephys/simulators.py
+++ b/bluepyopt/ephys/simulators.py
@@ -89,6 +89,12 @@ class NrnSimulator(object):
NrnSimulator._nrn_disable_banner()
self.banner_disabled = True
+ # certain mpi libraries (hpe-mpt) use PMI_RANK env variable to initialize
+ # MPI before calling MPI_Init (which is undesirable). Unset this variable
+ # if exist to avoid issue with loading neuron and mechanism library.
+ if 'PMI_RANK' in os.environ:
+ os.environ.pop("PMI_RANK")
+
import neuron # NOQA
return neuron
......@@ -24,6 +24,7 @@ class PyIpycanvas(PythonPackage):
# begin EBRAINS (added)
depends_on("python@3.6:", when="@0.10:", type=("build", "run"))
depends_on("python@3.7:", when="@0.11:", type=("build", "run"))
depends_on('py-jupyter-core', type=("build", "run"))
# end EBRAINS
depends_on("py-setuptools@40.8:", type="build")
depends_on("py-jupyter-packaging@0.7", type="build")
......
# Copyright 2013-2024 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 PyIpydatawidgets(PythonPackage):
"""A set of widgets to help facilitate reuse of large datasets across widgets"""
homepage = "https://github.com/vidartf/ipydatawidgets"
pypi = "ipydatawidgets/ipydatawidgets-4.3.5.tar.gz"
version("4.3.5", sha256="394f2489576587cfd755377a09a067f46cad22081965092021fd1abcbe7852a8")
version("4.3.4", sha256="124c0fc7b10e2d1ad5c20942f3e5a7e6c28cc8283f1e1bb7283a2d0ee55832d9")
version("4.3.3", sha256="4fb2ce693fb268cdae900374cfa1a91641e22d9514d1ec1e62da747050924f76")
version("4.3.2", sha256="2f2b997f6569d3ee1f4f7e35db0cb1da08c077b21a88f1c01c59f5b986a31aa6")
version("4.3.1", sha256="a934e51a2ad84380c63ff55ecf09bcd23d56e2c47c55c9c6f068cc91bdc1a379")
version("4.2.0", sha256="d0e4b58b59b508165e8562b8f5d1dbfcd739855847ec0477bd9185a5e9b7c5bc")
depends_on("py-setuptools@40.8:", type="build")
depends_on("py-wheel", type="build")
depends_on("py-jupyterlab@3", type="build")
depends_on("py-jupyter-packaging", type="build")
depends_on("yarn", type="build")
depends_on("py-numpy", type=("build", "run"))
depends_on("py-six", when="@:4.3.1", type=("build", "run"))
depends_on("py-traittypes@0.2:", type=("build", "run"))
depends_on("py-ipywidgets@7:", type=("build", "run"))
depends_on("py-jupyter-core", type=("build", "run"))
# Copyright 2013-2024 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 PyIpyreact(PythonPackage):
"""React for ipywidgets that just works"""
homepage = "https://github.com/widgetti/ipyreact"
pypi = "ipyreact/ipyreact-0.5.0.tar.gz"
version("0.5.0", sha256="398b37c57abbf3d453a0fb4bb34d39956f2de212276de053630ad907eabde9e5")
version("0.4.2", sha256="a74b9f61176ca75c1c80ccfc46c35a7ad5591a30612d0e1e6fdbf91549fbf6a6")
version("0.4.1", sha256="80560311eb4946a793d1108d21c893f697f45af71df52afe4a3cddfa0a9fadd4")
version("0.4.0", sha256="e1900052a14c548ff4943f01c5eec09881c29c96845e70dcd0fe25b6c234d268")
depends_on("py-hatchling", type="build")
depends_on("py-hatch-jupyter-builder", type="build")
depends_on("py-ipywidgets@7:", type=("build", "run"))
depends_on("py-anywidget@0.2:", type=("build", "run"))
depends_on("py-jupyter-core", type=("build", "run"))
# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyJax(PythonPackage):
"""Differentiate, compile, and transform Numpy code.
JAX is a Python library for accelerator-oriented array computation and program transformation,
designed for high-performance numerical computing and large-scale machine learning.
"""
homepage = "https://github.com/jax-ml/jax"
pypi = "jax/jax-0.4.27.tar.gz"
license("Apache-2.0")
maintainers("adamjstewart", "jonas-eschle")
version("0.5.2", sha256="2aef7d1912df329470c47ce8f2e6521c105e84aa620311494048c391235087c6")
version("0.5.1", sha256="c098f74846ee718165bbfa83521ae10cd52cf50b47f043f8b33a6cfd3c20ddfd")
version("0.5.0", sha256="49df70bf293a345a7fb519f71193506d37a024c4f850b358042eb32d502c81c8")
version("0.4.38", sha256="43bae65881628319e0a2148e8f81a202fbc2b8d048e35c7cb1df2416672fa4a8")
version("0.4.37", sha256="7774f3d9e23fe199c65589c680c5a5be87a183b89598421a632d8245222b637b")
version("0.4.36", sha256="088bff0575d01fc82682a9af4eb07433d60de7e5164686bd2cea3439492e608a")
version("0.4.35", sha256="c0c986993026b10bf6f607fecb7417377460254640766ce40f1fef3fd139c12e")
version("0.4.34", sha256="44196854f40c5f9cea3142824b9f1051f85afc3fcf7593ec5479fc8db01c58db")
version("0.4.33", sha256="f0d788692fc0179653066c9e1c64e57311b8c15a389837fd7baf328abefcbb92")
version("0.4.32", sha256="eb703909968da161894fb6135a931c5f3d2aab64fff7cba5fcb803ce6d968e08")
version("0.4.31", sha256="fd2d470643a0073d822737f0788f71391656af7e62cc5b2e7995ee390ceac287")
version("0.4.30", sha256="94d74b5b2db0d80672b61d83f1f63ebf99d2ab7398ec12b2ca0c9d1e97afe577")
version("0.4.29", sha256="12904571eaefddcdc8c3b8d4936482b783d5a216e99ef5adcd3522fdfb4fc186")
version("0.4.28", sha256="dcf0a44aff2e1713f0a2b369281cd5b79d8c18fc1018905c4125897cb06b37e9")
version("0.4.27", sha256="f3d7f19bdc0a17ccdb305086099a5a90c704f904d4272a70debe06ae6552998c")
version("0.4.26", sha256="2cce025d0a279ec630d550524749bc8efe25d2ff47240d2a7d4cfbc5090c5383")
version("0.4.25", sha256="a8ee189c782de2b7b2ffb64a8916da380b882a617e2769aa429b71d79747b982")
version("0.4.24", sha256="4a6b6fd026ddd22653c7fa2fac1904c3de2dbe845b61ede08af9a5cc709662ae")
version("0.4.23", sha256="2a229a5a758d1b803891b2eaed329723f6b15b4258b14dc0ccb1498c84963685")
version("0.4.22", sha256="801434dda6e14f82a45fff753969a33281ab22fb2a50fe801b651390321057ba")
version("0.4.21", sha256="c97fd0d2751d6e1eb15aa2052ff7cfdc129f8fafc2c14cd779720658926a587b")
version("0.4.20", sha256="ea96a763a8b1a9374639d1159ab4de163461d01cd022f67c34c09581b71ed2ac")
version("0.4.19", sha256="29f87f9a50964d3ca5eeb2973de3462f0e8b4eca6d46027894a0e9a903420601")
version("0.4.18", sha256="776cf33890100803e98f45f9af10aa727271c6993d4e766c069118733c928132")
version("0.4.17", sha256="d7508a69e87835f534cb07a2f21d79cc1cb8c4cfdcf7fb010927267ef7355f1d")
version("0.4.16", sha256="e2ca82c9bf973c2c1c01f5340a583692b31f277aa3abd0544229c1fe5fa44b02")
version("0.4.15", sha256="2aa123ccef591e355dea94a6e714b6559f8e1d6368a576a223f97d031ece0d15")
version("0.4.14", sha256="18fed3881f26e8b13c8cb46eeeea3dba9eb4d48e3714d8e8f2304dd6e237083d")
version("0.4.13", sha256="03bfe6749dfe647f16f15f6616638adae6c4a7ca7167c75c21961ecfd3a3baaa")
version("0.4.12", sha256="d2de9a2388ffe002f16506d3ad1cc6e34d7536b98948e49c7e05bbcfe8e57998")
version("0.4.11", sha256="8b1cd443b698339df8d8807578ee141e5b67e36125b3945b146f600177d60d79")
version("0.4.10", sha256="1bf0f2720f778f2937301a16a4d5cd3497f13a4d6c970c24a88918a81816a888")
version("0.4.9", sha256="1ed135cd08f48e4baf10f6eafdb4a4cdae781f9052b5838c09c91a9f4fa75f09")
version("0.4.8", sha256="08116481f7336db16c24812bfb5e6f9786915f4c2f6ff4028331fa69e7535202")
version("0.4.7", sha256="5e7002d74db25f97c99b979d4ba1233b1ef26e1597e5fc468ad11d1c8a9dc4f8")
version("0.4.6", sha256="d06ea8fba4ed315ec55110396058cb48c8edb2ab0b412f28c8a123beee9e58ab")
version("0.4.5", sha256="1633e56d34b18ddfa7d2a216ce214fa6fa712d36552532aaa71da416aede7268")
version("0.4.4", sha256="39b07e07343ed7c74492ee5e75db77456d3afdd038a322671f09fc748f6392cb")
version("0.4.3", sha256="d43f08f940aa30eb339965cfb3d6bee2296537b0dc2f0c65ccae3009279529ae")
depends_on("py-setuptools", type="build")
with default_args(type=("build", "run")):
# setup.py
depends_on("python@3.10:", when="@0.4.31:")
depends_on("python@3.9:", when="@0.4.14:")
depends_on("py-ml-dtypes@0.4:", when="@0.4.29,0.4.35:")
depends_on("py-ml-dtypes@0.2:", when="@0.4.14:")
depends_on("py-ml-dtypes@0.1:", when="@0.4.9:")
depends_on("py-ml-dtypes@0.0.3:", when="@0.4.7:")
depends_on("py-numpy@1.25:", when="@0.5:")
depends_on("py-numpy@1.24:", when="@0.4.31:")
depends_on("py-numpy@1.22:", when="@0.4.14:")
depends_on("py-numpy@1.21:", when="@0.4.7:")
depends_on("py-numpy@1.20:", when="@0.3:")
# https://github.com/google/jax/issues/19246
depends_on("py-numpy@:1", when="@:0.4.25")
depends_on("py-opt-einsum")
depends_on("py-scipy@1.11.1:", when="@0.5:")
depends_on("py-scipy@1.10:", when="@0.4.31:")
depends_on("py-scipy@1.9:", when="@0.4.19:")
depends_on("py-scipy@1.7:", when="@0.4.7:")
depends_on("py-scipy@1.5:", when="@0.3:")
# jax/_src/lib/__init__.py
# https://github.com/google/jax/commit/8be057de1f50756fe7522f7e98b2f30fad56f7e4
for v in [
# "0.5.0",
# "0.4.38",
# "0.4.37",
# "0.4.36",
# "0.4.35",
# "0.4.34",
# "0.4.33",
# "0.4.32",
"0.4.31",
"0.4.30",
"0.4.29",
"0.4.28",
"0.4.27",
"0.4.26",
"0.4.25",
"0.4.24",
"0.4.23",
"0.4.22",
"0.4.21",
"0.4.20",
"0.4.19",
"0.4.18",
"0.4.17",
"0.4.16",
"0.4.15",
"0.4.14",
"0.4.13",
"0.4.12",
"0.4.11",
"0.4.10",
"0.4.9",
"0.4.8",
"0.4.7",
"0.4.6",
"0.4.5",
"0.4.4",
"0.4.3",
]:
depends_on(f"py-jaxlib@:{v}", when=f"@{v}")
# See _minimum_jaxlib_version in jax/version.py
# depends_on("py-jaxlib@0.5:", when="@0.5:")
# depends_on("py-jaxlib@0.4.38:", when="@0.4.38:")
# depends_on("py-jaxlib@0.4.36:", when="@0.4.36:")
# depends_on("py-jaxlib@0.4.35:", when="@0.4.35:")
# depends_on("py-jaxlib@0.4.34:", when="@0.4.34:")
# depends_on("py-jaxlib@0.4.33:", when="@0.4.33:")
# depends_on("py-jaxlib@0.4.32:", when="@0.4.32:")
depends_on("py-jaxlib@0.4.30:", when="@0.4.31:")
depends_on("py-jaxlib@0.4.27:", when="@0.4.28:")
depends_on("py-jaxlib@0.4.23:", when="@0.4.27:")
depends_on("py-jaxlib@0.4.20:", when="@0.4.25:")
depends_on("py-jaxlib@0.4.19:", when="@0.4.21:")
depends_on("py-jaxlib@0.4.14:", when="@0.4.15:")
depends_on("py-jaxlib@0.4.11:", when="@0.4.12:")
depends_on("py-jaxlib@0.4.7:", when="@0.4.8:")
depends_on("py-jaxlib@0.4.6:", when="@0.4.7:")
depends_on("py-jaxlib@0.4.4:", when="@0.4.5:")
depends_on("py-jaxlib@0.4.2:", when="@0.4.3:")
depends_on("py-jaxlib@0.4.1:", when="@0.4.2:")
# Historical dependencies
depends_on("py-importlib-metadata@4.6:", when="@0.4.11:0.4.30 ^python@:3.9")