├── .github ├── CODEOWNERS └── workflows │ ├── webservices.yml │ └── automerge.yml ├── .gitignore ├── recipe ├── yum_requirements.txt └── meta.yaml ├── conda-forge.yml ├── .ci_support ├── linux_64_.yaml └── README ├── azure-pipelines.yml ├── .circleci └── config.yml ├── .gitattributes ├── .scripts ├── logging_utils.sh ├── build_steps.sh └── run_docker_build.sh ├── LICENSE.txt ├── .azure-pipelines └── azure-pipelines-linux.yml └── README.md /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @coroa @fneum @nworbmot -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | 3 | build_artifacts 4 | -------------------------------------------------------------------------------- /recipe/yum_requirements.txt: -------------------------------------------------------------------------------- 1 | xorg-x11-server-Xorg 2 | -------------------------------------------------------------------------------- /conda-forge.yml: -------------------------------------------------------------------------------- 1 | conda_forge_output_validation: true 2 | -------------------------------------------------------------------------------- /.ci_support/linux_64_.yaml: -------------------------------------------------------------------------------- 1 | cdt_name: 2 | - cos6 3 | channel_sources: 4 | - conda-forge 5 | channel_targets: 6 | - conda-forge main 7 | docker_image: 8 | - quay.io/condaforge/linux-anvil-cos7-x86_64 9 | -------------------------------------------------------------------------------- /.ci_support/README: -------------------------------------------------------------------------------- 1 | This file is automatically generated by conda-smithy. To change any matrix elements, you should change conda-smithy's input conda_build_config.yaml and re-render the recipe, rather than editing these files directly. -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - template: ./.azure-pipelines/azure-pipelines-linux.yml -------------------------------------------------------------------------------- /.github/workflows/webservices.yml: -------------------------------------------------------------------------------- 1 | on: repository_dispatch 2 | 3 | jobs: 4 | webservices: 5 | runs-on: ubuntu-latest 6 | name: webservices 7 | steps: 8 | - name: webservices 9 | id: webservices 10 | uses: conda-forge/webservices-dispatch-action@master 11 | with: 12 | github_token: ${{ secrets.GITHUB_TOKEN }} 13 | rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} 14 | -------------------------------------------------------------------------------- /.github/workflows/automerge.yml: -------------------------------------------------------------------------------- 1 | on: 2 | status: {} 3 | check_suite: 4 | types: 5 | - completed 6 | 7 | jobs: 8 | automerge-action: 9 | runs-on: ubuntu-latest 10 | name: automerge 11 | steps: 12 | - name: checkout 13 | uses: actions/checkout@v2 14 | - name: automerge-action 15 | id: automerge-action 16 | uses: conda-forge/automerge-action@master 17 | with: 18 | github_token: ${{ secrets.GITHUB_TOKEN }} 19 | rerendering_github_token: ${{ secrets.RERENDERING_GITHUB_TOKEN }} 20 | -------------------------------------------------------------------------------- /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | version: 2 6 | 7 | jobs: 8 | build: 9 | working_directory: ~/test 10 | machine: true 11 | steps: 12 | - run: 13 | # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. 14 | command: exit 0 15 | 16 | workflows: 17 | version: 2 18 | build_and_test: 19 | jobs: 20 | - build: 21 | filters: 22 | branches: 23 | ignore: 24 | - /.*/ 25 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | *.patch binary 4 | *.diff binary 5 | meta.yaml text eol=lf 6 | build.sh text eol=lf 7 | bld.bat text eol=crlf 8 | 9 | # github helper pieces to make some files not show up in diffs automatically 10 | .azure-pipelines/* linguist-generated=true 11 | .circleci/* linguist-generated=true 12 | .drone/* linguist-generated=true 13 | .drone.yml linguist-generated=true 14 | .github/* linguist-generated=true 15 | .travis/* linguist-generated=true 16 | .appveyor.yml linguist-generated=true 17 | .gitattributes linguist-generated=true 18 | .gitignore linguist-generated=true 19 | .travis.yml linguist-generated=true 20 | .scripts/* linguist-generated=true 21 | .woodpecker.yml linguist-generated=true 22 | LICENSE.txt linguist-generated=true 23 | README.md linguist-generated=true 24 | azure-pipelines.yml linguist-generated=true 25 | build-locally.py linguist-generated=true 26 | shippable.yml linguist-generated=true 27 | -------------------------------------------------------------------------------- /.scripts/logging_utils.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Provide a unified interface for the different logging 4 | # utilities CI providers offer. If unavailable, provide 5 | # a compatible fallback (e.g. bare `echo xxxxxx`). 6 | 7 | function startgroup { 8 | # Start a foldable group of log lines 9 | # Pass a single argument, quoted 10 | case ${CI:-} in 11 | azure ) 12 | echo "##[group]$1";; 13 | travis ) 14 | echo "$1" 15 | echo -en 'travis_fold:start:'"${1// /}"'\\r';; 16 | github_actions ) 17 | echo "::group::$1";; 18 | * ) 19 | echo "$1";; 20 | esac 21 | } 2> /dev/null 22 | 23 | function endgroup { 24 | # End a foldable group of log lines 25 | # Pass a single argument, quoted 26 | 27 | case ${CI:-} in 28 | azure ) 29 | echo "##[endgroup]";; 30 | travis ) 31 | echo -en 'travis_fold:end:'"${1// /}"'\\r';; 32 | github_actions ) 33 | echo "::endgroup::";; 34 | esac 35 | } 2> /dev/null 36 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | BSD 3-clause license 2 | Copyright (c) 2015-2022, conda-forge contributors 3 | All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | 11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14 | -------------------------------------------------------------------------------- /.azure-pipelines/azure-pipelines-linux.yml: -------------------------------------------------------------------------------- 1 | # This file was generated automatically from conda-smithy. To update this configuration, 2 | # update the conda-forge.yml and/or the recipe/meta.yaml. 3 | # -*- mode: yaml -*- 4 | 5 | jobs: 6 | - job: linux 7 | pool: 8 | vmImage: ubuntu-latest 9 | strategy: 10 | matrix: 11 | linux_64_: 12 | CONFIG: linux_64_ 13 | UPLOAD_PACKAGES: 'True' 14 | DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 15 | timeoutInMinutes: 360 16 | 17 | steps: 18 | - script: | 19 | rm -rf /opt/ghc 20 | df -h 21 | displayName: Manage disk space 22 | 23 | # configure qemu binfmt-misc running. This allows us to run docker containers 24 | # embedded qemu-static 25 | - script: | 26 | docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes 27 | ls /proc/sys/fs/binfmt_misc/ 28 | condition: not(startsWith(variables['CONFIG'], 'linux_64')) 29 | displayName: Configure binfmt_misc 30 | 31 | - script: | 32 | export CI=azure 33 | export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME 34 | export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) 35 | if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then 36 | export IS_PR_BUILD="True" 37 | else 38 | export IS_PR_BUILD="False" 39 | fi 40 | .scripts/run_docker_build.sh 41 | displayName: Run docker build 42 | env: 43 | BINSTAR_TOKEN: $(BINSTAR_TOKEN) 44 | FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) 45 | STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) -------------------------------------------------------------------------------- /recipe/meta.yaml: -------------------------------------------------------------------------------- 1 | {% set name = "pypsa" %} 2 | {% set version = "0.19.0" %} 3 | {% set sha256 = "5718c7394c788b5d8f5bd643340ed4f1657a25a1390eaa8cb739e222d1733072" %} 4 | 5 | package: 6 | name: {{ name|lower }} 7 | version: {{ version }} 8 | 9 | source: 10 | url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz 11 | sha256: {{ sha256 }} 12 | 13 | build: 14 | number: 0 15 | script: '{{ PYTHON }} -m pip install . -vvv ' 16 | noarch: python 17 | 18 | requirements: 19 | host: 20 | - python >=3.7 21 | - pip 22 | run: 23 | - cartopy >=0.16 24 | - matplotlib-base 25 | - networkx >=1.10 26 | - numpy 27 | - pandas >=0.24.0 28 | - pyomo >=5.7 29 | - python >=3.7 30 | - scipy 31 | - six >=1.13.0 32 | - netcdf4 33 | - pytables 34 | - deprecation 35 | - xarray 36 | 37 | test: 38 | imports: 39 | - pypsa 40 | 41 | about: 42 | home: https://pypsa.org/ 43 | license: MIT 44 | license_family: MIT 45 | license_file: LICENSE.txt 46 | summary: Python for Power Systems Analysis 47 | description: | 48 | PyPSA is a free software toolbox for simulating and optimising modern power 49 | systems that include features such as conventional generators with unit 50 | commitment, variable wind and solar generation, storage units, coupling to 51 | other energy sectors, and mixed alternating and direct current networks. 52 | PyPSA is designed to scale well with large networks and long time series. 53 | doc_url: https://pypsa.readthedocs.io 54 | dev_url: https://github.com/PyPSA/PyPSA 55 | 56 | extra: 57 | recipe-maintainers: 58 | - coroa 59 | - nworbmot 60 | - fneum 61 | -------------------------------------------------------------------------------- /.scripts/build_steps.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | # -*- mode: jinja-shell -*- 9 | 10 | set -xeuo pipefail 11 | export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" 12 | source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh 13 | 14 | 15 | ( endgroup "Start Docker" ) 2> /dev/null 16 | 17 | ( startgroup "Configuring conda" ) 2> /dev/null 18 | 19 | export PYTHONUNBUFFERED=1 20 | export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" 21 | export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" 22 | export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" 23 | 24 | cat >~/.condarc < /dev/null 54 | 55 | if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then 56 | if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then 57 | EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" 58 | fi 59 | conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 60 | ${EXTRA_CB_OPTIONS:-} \ 61 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" 62 | 63 | # Drop into an interactive shell 64 | /bin/bash 65 | else 66 | conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ 67 | --suppress-variables ${EXTRA_CB_OPTIONS:-} \ 68 | --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" 69 | ( startgroup "Validating outputs" ) 2> /dev/null 70 | 71 | validate_recipe_outputs "${FEEDSTOCK_NAME}" 72 | 73 | ( endgroup "Validating outputs" ) 2> /dev/null 74 | 75 | ( startgroup "Uploading packages" ) 2> /dev/null 76 | 77 | if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then 78 | upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" 79 | fi 80 | 81 | ( endgroup "Uploading packages" ) 2> /dev/null 82 | fi 83 | 84 | ( startgroup "Final checks" ) 2> /dev/null 85 | 86 | touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" -------------------------------------------------------------------------------- /.scripts/run_docker_build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here 4 | # will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent 5 | # changes to this script, consider a proposal to conda-smithy so that other feedstocks can also 6 | # benefit from the improvement. 7 | 8 | source .scripts/logging_utils.sh 9 | 10 | ( startgroup "Configure Docker" ) 2> /dev/null 11 | 12 | set -xeo pipefail 13 | 14 | THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" 15 | PROVIDER_DIR="$(basename $THISDIR)" 16 | 17 | FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) 18 | RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" 19 | 20 | if [ -z ${FEEDSTOCK_NAME} ]; then 21 | export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) 22 | fi 23 | 24 | docker info 25 | 26 | # In order for the conda-build process in the container to write to the mounted 27 | # volumes, we need to run with the same id as the host machine, which is 28 | # normally the owner of the mounted volumes, or at least has write permission 29 | export HOST_USER_ID=$(id -u) 30 | # Check if docker-machine is being used (normally on OSX) and get the uid from 31 | # the VM 32 | if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then 33 | export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) 34 | fi 35 | 36 | ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" 37 | 38 | if [ -z "$CONFIG" ]; then 39 | set +x 40 | FILES=`ls .ci_support/linux_*` 41 | CONFIGS="" 42 | for file in $FILES; do 43 | CONFIGS="${CONFIGS}'${file:12:-5}' or "; 44 | done 45 | echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" 46 | exit 1 47 | fi 48 | 49 | if [ -z "${DOCKER_IMAGE}" ]; then 50 | SHYAML_INSTALLED="$(shyaml -h || echo NO)" 51 | if [ "${SHYAML_INSTALLED}" == "NO" ]; then 52 | echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" 53 | DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) 54 | if [ "${DOCKER_IMAGE}" = "" ]; then 55 | echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" 56 | DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" 57 | fi 58 | else 59 | DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" 60 | fi 61 | fi 62 | 63 | mkdir -p "$ARTIFACTS" 64 | DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" 65 | rm -f "$DONE_CANARY" 66 | 67 | # Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) 68 | DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" 69 | if [ -z "${CI}" ]; then 70 | DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" 71 | fi 72 | 73 | ( endgroup "Configure Docker" ) 2> /dev/null 74 | 75 | ( startgroup "Start Docker" ) 2> /dev/null 76 | 77 | export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" 78 | export IS_PR_BUILD="${IS_PR_BUILD:-False}" 79 | docker pull "${DOCKER_IMAGE}" 80 | docker run ${DOCKER_RUN_ARGS} \ 81 | -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ 82 | -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ 83 | -e CONFIG \ 84 | -e HOST_USER_ID \ 85 | -e UPLOAD_PACKAGES \ 86 | -e IS_PR_BUILD \ 87 | -e GIT_BRANCH \ 88 | -e UPLOAD_ON_BRANCH \ 89 | -e CI \ 90 | -e FEEDSTOCK_NAME \ 91 | -e CPU_COUNT \ 92 | -e BUILD_WITH_CONDA_DEBUG \ 93 | -e BUILD_OUTPUT_ID \ 94 | -e BINSTAR_TOKEN \ 95 | -e FEEDSTOCK_TOKEN \ 96 | -e STAGING_BINSTAR_TOKEN \ 97 | "${DOCKER_IMAGE}" \ 98 | bash \ 99 | "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" 100 | 101 | # verify that the end of the script was reached 102 | test -f "$DONE_CANARY" 103 | 104 | # This closes the last group opened in `build_steps.sh` 105 | ( endgroup "Final checks" ) 2> /dev/null -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | About pypsa 2 | =========== 3 | 4 | Home: https://pypsa.org/ 5 | 6 | Package license: MIT 7 | 8 | Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/pypsa-feedstock/blob/master/LICENSE.txt) 9 | 10 | Summary: Python for Power Systems Analysis 11 | 12 | Development: https://github.com/PyPSA/PyPSA 13 | 14 | Documentation: https://pypsa.readthedocs.io 15 | 16 | PyPSA is a free software toolbox for simulating and optimising modern power 17 | systems that include features such as conventional generators with unit 18 | commitment, variable wind and solar generation, storage units, coupling to 19 | other energy sectors, and mixed alternating and direct current networks. 20 | PyPSA is designed to scale well with large networks and long time series. 21 | 22 | 23 | Current build status 24 | ==================== 25 | 26 | 27 | 28 | 33 | 34 |
All platforms: 29 | 30 | 31 | 32 |
35 | 36 | Current release info 37 | ==================== 38 | 39 | | Name | Downloads | Version | Platforms | 40 | | --- | --- | --- | --- | 41 | | [![Conda Recipe](https://img.shields.io/badge/recipe-pypsa-green.svg)](https://anaconda.org/conda-forge/pypsa) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pypsa.svg)](https://anaconda.org/conda-forge/pypsa) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pypsa.svg)](https://anaconda.org/conda-forge/pypsa) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pypsa.svg)](https://anaconda.org/conda-forge/pypsa) | 42 | 43 | Installing pypsa 44 | ================ 45 | 46 | Installing `pypsa` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: 47 | 48 | ``` 49 | conda config --add channels conda-forge 50 | conda config --set channel_priority strict 51 | ``` 52 | 53 | Once the `conda-forge` channel has been enabled, `pypsa` can be installed with: 54 | 55 | ``` 56 | conda install pypsa 57 | ``` 58 | 59 | It is possible to list all of the versions of `pypsa` available on your platform with: 60 | 61 | ``` 62 | conda search pypsa --channel conda-forge 63 | ``` 64 | 65 | 66 | About conda-forge 67 | ================= 68 | 69 | [![Powered by 70 | NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) 71 | 72 | conda-forge is a community-led conda channel of installable packages. 73 | In order to provide high-quality builds, the process has been automated into the 74 | conda-forge GitHub organization. The conda-forge organization contains one repository 75 | for each of the installable packages. Such a repository is known as a *feedstock*. 76 | 77 | A feedstock is made up of a conda recipe (the instructions on what and how to build 78 | the package) and the necessary configurations for automatic building using freely 79 | available continuous integration services. Thanks to the awesome service provided by 80 | [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/) 81 | and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable 82 | packages to the [conda-forge](https://anaconda.org/conda-forge) 83 | [Anaconda-Cloud](https://anaconda.org/) channel for Linux, Windows and OSX respectively. 84 | 85 | To manage the continuous integration and simplify feedstock maintenance 86 | [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. 87 | Using the ``conda-forge.yml`` within this repository, it is possible to re-render all of 88 | this feedstock's supporting files (e.g. the CI configuration files) with ``conda smithy rerender``. 89 | 90 | For more information please check the [conda-forge documentation](https://conda-forge.org/docs/). 91 | 92 | Terminology 93 | =========== 94 | 95 | **feedstock** - the conda recipe (raw material), supporting scripts and CI configuration. 96 | 97 | **conda-smithy** - the tool which helps orchestrate the feedstock. 98 | Its primary use is in the construction of the CI ``.yml`` files 99 | and simplify the management of *many* feedstocks. 100 | 101 | **conda-forge** - the place where the feedstock and smithy live and work to 102 | produce the finished article (built conda distributions) 103 | 104 | 105 | Updating pypsa-feedstock 106 | ======================== 107 | 108 | If you would like to improve the pypsa recipe or build a new 109 | package version, please fork this repository and submit a PR. Upon submission, 110 | your changes will be run on the appropriate platforms to give the reviewer an 111 | opportunity to confirm that the changes result in a successful build. Once 112 | merged, the recipe will be re-built and uploaded automatically to the 113 | `conda-forge` channel, whereupon the built conda packages will be available for 114 | everybody to install and use from the `conda-forge` channel. 115 | Note that all branches in the conda-forge/pypsa-feedstock are 116 | immediately built and any created packages are uploaded, so PRs should be based 117 | on branches in forks and branches in the main repository should only be used to 118 | build distinct package versions. 119 | 120 | In order to produce a uniquely identifiable distribution: 121 | * If the version of a package **is not** being increased, please add or increase 122 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string). 123 | * If the version of a package **is** being increased, please remember to return 124 | the [``build/number``](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-number-and-string) 125 | back to 0. 126 | 127 | Feedstock Maintainers 128 | ===================== 129 | 130 | * [@coroa](https://github.com/coroa/) 131 | * [@fneum](https://github.com/fneum/) 132 | * [@nworbmot](https://github.com/nworbmot/) 133 | 134 | --------------------------------------------------------------------------------