diff --git a/.gitignore b/.gitignore index c0029107..179afe55 100644 --- a/.gitignore +++ b/.gitignore @@ -3,11 +3,22 @@ # Everything else is managed by the conda-smithy rerender process. # Please do not modify +# Ignore all files and folders in root * !/conda-forge.yml -!/*/ +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders !/recipe/** !/.ci_support/** +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + *.pyc diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index b92838e0..d2be208a 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -65,12 +65,6 @@ if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" fi -if [[ "${sha:-}" == "" ]]; then - pushd ${FEEDSTOCK_ROOT} - sha=$(git rev-parse HEAD) - popd -fi - if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index b70ef014..00f377a8 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -21,6 +21,12 @@ if [ -z ${FEEDSTOCK_NAME} ]; then export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) fi +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + docker info # In order for the conda-build process in the container to write to the mounted diff --git a/README.md.orig b/README.md.orig deleted file mode 100644 index 65d16b4f..00000000 --- a/README.md.orig +++ /dev/null @@ -1,238 +0,0 @@ -About nest-simulator -==================== - -Home: http://www.nest-simulator.org/ - -Package license: GPL-2.0-or-later - -Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/nest-simulator-feedstock/blob/master/LICENSE.txt) - -Summary: NEST is a simulator for spiking neural network models that focuses on the dynamics, size and structure of neural -systems rather than on the exact morphology of individual neurons. - - -Development: https://github.com/nest/nest-simulator - -Documentation: https://nest-simulator.readthedocs.io/en/latest/ - -You can use NEST either as a for the interpreted programming language Python (PyNEST) or as a stand alone -application (nest). PyNEST provides a set of commands to the Python interpreter which give you access to NEST's -simulation kernel. With these commands, you describe and run your network simulation. You can also complement -PyNEST with PyNN, a simulator-independent set of Python commands to formulate and run neural simulations. While -you define your simulations in Python, the actual simulation is executed within NEST's highly optimized -simulation kernel which is written in C++. A NEST simulation tries to follow the logic of an -electrophysiological experiment that takes place inside a computer with the difference, that the neural system -to be investigated must be defined by the experimenter. The neural system is defined by a possibly large number -of neurons and their connections. In a NEST network, different neuron and synapse models can coexist. Any two -neurons can have multiple connections with different properties. Thus, the connectivity can in general not -be described by a weight or connectivity matrix but rather as an adjacency list. To manipulate or observe the -network dynamics, the experimenter can define so-called devices which represent the various instruments (for -measuring and stimulation) found in an experiment. These devices write their data either to memory or to file. -NEST is extensible and new models for neurons, synapses, and devices can be added. To get started with NEST, -please see the documentation page . - - -Current build status -==================== - - - - - - - - -
Azure -
- - - - - - - - -<<<<<<< HEAD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VariantStatus
linux_64_numpy1.18python3.8.____cpython - - variant - -
linux_64_numpy1.19python3.9.____cpython - - variant - -
osx_64_numpy1.18python3.8.____cpython - - variant - -
osx_64_numpy1.19python3.9.____cpython - - variant -======= - linux_64_python3.6.____cpython - - variant - -
linux_64_python3.7.____cpython - - variant - -
linux_64_python3.8.____cpython - - variant - -
linux_64_python3.9.____cpython - - variant - -
osx_64_python3.6.____cpython - - variant - -
osx_64_python3.7.____cpython - - variant - -
osx_64_python3.8.____cpython - - variant - -
osx_64_python3.9.____cpython - - variant ->>>>>>> upstream/master - -
-
-
- -Current release info -==================== - -| Name | Downloads | Version | Platforms | -| --- | --- | --- | --- | -| [![Conda Recipe](https://img.shields.io/badge/recipe-nest--simulator-green.svg)](https://anaconda.org/conda-forge/nest-simulator) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/nest-simulator.svg)](https://anaconda.org/conda-forge/nest-simulator) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/nest-simulator.svg)](https://anaconda.org/conda-forge/nest-simulator) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/nest-simulator.svg)](https://anaconda.org/conda-forge/nest-simulator) | - -Installing nest-simulator -========================= - -Installing `nest-simulator` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: - -``` -conda config --add channels conda-forge -conda config --set channel_priority strict -``` - -Once the `conda-forge` channel has been enabled, `nest-simulator` can be installed with: - -``` -conda install nest-simulator -``` - -It is possible to list all of the versions of `nest-simulator` available on your platform with: - -``` -conda search nest-simulator --channel conda-forge -``` - - -About conda-forge -================= - -[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](http://numfocus.org) - -conda-forge is a community-led conda channel of installable packages. -In order to provide high-quality builds, the process has been automated into the -conda-forge GitHub organization. The conda-forge organization contains one repository -for each of the installable packages. Such a repository is known as a *feedstock*. - -A feedstock is made up of a conda recipe (the instructions on what and how to build -the package) and the necessary configurations for automatic building using freely -available continuous integration services. Thanks to the awesome service provided by -[CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/) -and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable -packages to the [conda-forge](https://anaconda.org/conda-forge) -[Anaconda-Cloud](https://anaconda.org/) channel for Linux, Windows and OSX respectively. - -To manage the continuous integration and simplify feedstock maintenance -[conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. -Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of -this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. - -For more information please check the [conda-forge documentation](https://conda-forge.org/docs/). - -Terminology -=========== - -**feedstock** - the conda recipe (raw material), supporting scripts and CI configuration. - -**conda-smithy** - the tool which helps orchestrate the feedstock. - Its primary use is in the construction of the CI ``.yml`` files - and simplify the management of *many* feedstocks. - -**conda-forge** - the place where the feedstock and smithy live and work to - produce the finished article (built conda distributions) - - -Updating nest-simulator-feedstock -================================= - -If you would like to improve the nest-simulator recipe or build a new -package version, please fork this repository and submit a PR. Upon submission, -your changes will be run on the appropriate platforms to give the reviewer an -opportunity to confirm that the changes result in a successful build. Once -merged, the recipe will be re-built and uploaded automatically to the -`conda-forge` channel, whereupon the built conda packages will be available for -everybody to install and use from the `conda-forge` channel. -Note that all branches in the conda-forge/nest-simulator-feedstock are -immediately built and any created packages are uploaded, so PRs should be based -on branches in forks and branches in the main repository should only be used to -build distinct package versions. - -In order to produce a uniquely identifiable distribution: - * If the version of a package **is not** being increased, please add or increase - the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). - * If the version of a package **is** being increased, please remember to return - the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) - back to 0. - -Feedstock Maintainers -===================== - -* [@steffengraber](https://github.com/steffengraber/) - diff --git a/recipe/activate.sh b/recipe/activate.sh deleted file mode 100755 index 5679c21d..00000000 --- a/recipe/activate.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. "${CONDA_PREFIX}"/bin/nest_vars.sh \ No newline at end of file diff --git a/recipe/build.sh b/recipe/build.sh index 25ab9dbf..052cc74c 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -46,9 +46,3 @@ if [[ -d ${PREFIX}/lib64 ]] then cp -R "${PREFIX}"/lib64/* "${PREFIX}"/lib fi - -for CHANGE in "activate" "deactivate" -do - mkdir -p "${PREFIX}/etc/conda/${CHANGE}.d" - sed "s#!!!SP_DIR!!!#${SP_DIR}#g" "${RECIPE_DIR}/${CHANGE}.sh" > "${PREFIX}/etc/conda/${CHANGE}.d/${PKG_NAME}_${CHANGE}.sh" -done \ No newline at end of file diff --git a/recipe/deactivate.sh b/recipe/deactivate.sh deleted file mode 100644 index 5f20f74f..00000000 --- a/recipe/deactivate.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -unset NEST_INSTALL_DIR -unset NEST_DATA_DIR -unset NEST_DOC_DIR -unset NEST_MODULE_PATH -unset NEST_PYTHON_PREFIX \ No newline at end of file diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2167aecb..8133926d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,6 +1,6 @@ {% set name = "nest-simulator" %} {% set version = "3.6" %} -{% set build = 3 %} +{% set build = 4 %} package: name: {{ name|lower }} @@ -82,7 +82,6 @@ test: imports: - nest commands: - - python -c "import nest; nest.help();" - nest --help - sli --help diff --git a/recipe/post-link.sh b/recipe/post-link.sh index de151dfd..1664cd8f 100644 --- a/recipe/post-link.sh +++ b/recipe/post-link.sh @@ -1,28 +1,30 @@ #!/bin/bash -. "${CONDA_PREFIX}/bin/nest_vars.sh" +now=$(date +"%b%d-%Y-%H%M%S") COMPILER_FULL=$(bash nest-config --compiler) -COMPILER_NAME=$(basename "${CXX}") -#COMPILER_RUN="${CONDA_PREFIX}/bin/${COMPILER_NAME}" -COMPILER_RUN=$(which "${COMPILER_NAME}") +COMPILER_NAME=$(basename "${COMPILER_FULL}") +COMPILER="${CONDA_PREFIX}/bin/${COMPILER_NAME}" + +# Install the same compiler then on build time.env list +# To use nest with nestml in linux install +# mamba install -c conda-forge gxx_linux-64 +# +# To use nest with nestml in osx-64 install +# mamba install -c conda-forge clangxx_osx-64 +# +# To use nest with nestml in osx-arm64 install +# mamba install -c conda-forge clangxx_osx-arm64 +# +# Update `nest-config.sh` with `bash .nest-simulator-post-link.sh` if [[ "$OSTYPE" == "linux-gnu"* ]]; then - echo "COMPILER LINUX BUILD" >> "${PREFIX}"/.messages.txt - bash nest-config --compiler >> "${PREFIX}"/.messages.txt - sed -i "s|${COMPILER_FULL}|${COMPILER_RUN}|g" "${CONDA_PREFIX}"/bin/nest-config - echo "COMPILER LINUX RUN" >> "${PREFIX}"/.messages.txt - bash nest-config --compiler >> "${PREFIX}"/.messages.txt + cp "${CONDA_PREFIX}"/bin/nest-config "${CONDA_PREFIX}"/bin/nest-config-"${now}".orig + sed -i "s|${COMPILER_FULL}|${COMPILER}|g" "${CONDA_PREFIX}"/bin/nest-config elif [[ "$OSTYPE" == "darwin"* ]]; then - echo "COMPILER DARWIN BUILD" >> "${PREFIX}"/.messages.txt - bash nest-config --compiler >> "${PREFIX}"/.messages.txt - sed -i "s|${COMPILER_FULL}|${COMPILER_RUN}|g" "${CONDA_PREFIX}"/bin/nest-config - sed -i "s|-fopenmp=libomp|-Xclang -fopenmp|g" "${CONDA_PREFIX}"/bin/nest-config - echo "COMPILER DARWIN RUN" >> "${PREFIX}"/.messages.txt - bash nest-config --compiler >> "${PREFIX}"/.messages.txt - cat "${CONDA_PREFIX}"/bin/nest-config >> "${PREFIX}"/.messages.txt + cp "${CONDA_PREFIX}"/bin/nest-config "${CONDA_PREFIX}"/bin/nest-config-"${now}".orig + sed -i'.bac' "s|${COMPILER_FULL}|${COMPILER}|g" "${CONDA_PREFIX}"/bin/nest-config + sed -i'.bac' "s|-fopenmp=libomp|-Xclang -fopenmp|g" "${CONDA_PREFIX}"/bin/nest-config else - echo "$OSTYPE" >> "${PREFIX}"/.messages.txt -fi - - + echo $OSTYPE +fi \ No newline at end of file