Release Notes 3.0.0.rc1 - conda-forge/conda-smithy GitHub Wiki

Conda-smithy 3.0.0 switches to conda-build=3. In conda-smithy 3.0.0, we use a central configuration file from conda-forge-pinning for the build matrices and versions of specific packages.

When a rerendering happens, conda-smithy will render the recipe using conda-build and output configuration files for each job and save them in .ci_support file. For example there's a output configuration file for each OS, each python version, etc.

These output configuration files are stripped to options that are used in the build and therefore a change in the config files in .ci_support folder implies that there needs to be a new build.

Pinning of packages are handled by the same configuration file and conda-build. This means that packages need not be pinned manually. For eg:

requirements:
  build:
    - gmp 6.1.*
  run:
    - gmp 6.1.*

can be replaced by

requirements:
  build:
    - gmp

Note that gmp need not be in run requirements as run_exports feature of conda-build will add it automatically.

WARNING: run_exports are not added to packages yet. These will be added with the use of 3.0.0 after 3.0.0 is released.

When there's a new ABI version of gmp (say 7.0), then conda-forge-pinning will be updated. A rerendering of a package using gmp will change. Therefore to check that a recipe needs to be rebuilt for updated pinnings, you only need to check if the package needs a rerender.

conda-build-all's build matrices is removed in conda-smithy=3. To get a build matrix, create a conda_build_config.yaml file inside recipe folder. For example following will give you 2 builds and you can use the selector vtk_with_osmesa in the meta.yaml

vtk_with_osmesa:
  - False
  - True

Using Anaconda 5 compilers: Although conda-build=3 gives the ability to use Anaconda 5 compilers, they should be used only on Windows as packages built with them are incompatible with conda-forge packages built using the CI compilers. All the packages in conda-forge needs to be rebuilt using the compilers and released simultaneously to avoid package incompatibility.

  • conda-build=3 update - #690, #676, #652, #664, #656, #655, #625
  • Drop conda-forge.yml's matrix option - #625
  • Drop the --no-git-repo option - #659
  • Add feedstock PR/issue templates and contribution guidance - #598
  • Use Travis-CI API 3 - #679
  • Use new shields.io badges in the readme - #685, #583
  • API for github team updates - #565
  • conda-forge-build-setup is replaced by conda-forge-ci-setup - #681, #677
  • Move content from ci_support to .circleci - #620
  • Rename build_artefacts to build_artifacts - #638
  • Mount directories in conda user's home - #635
  • Hide AppVeyor config file in feedstocks - #619
  • Linter error if recipes are added to recipes/example - #686
  • Linter error if recipe exists in bioconda - #649
  • Linter error if version doesn't match conda spec - #673
  • Linter error if noarch python doesn't use pip - #669
  • Linter error instead of crashing when requirements has unexpected keys - #554
  • Change LICENSE to LICENSE.txt in feedstocks - #684
  • Bump license year to 2018 - #639, #636

Contributors

  • @CJ-Wright
  • @dougalsutherland
  • @epruesse
  • @isuruf
  • @jakirkham
  • @jschueller
  • @msarahan
  • @ocefpaf