Skip to content

Support buildng multiple outputs from a recipe #138

@agriyakhetarpal

Description

@agriyakhetarpal

This feature request is based on a requirement that came up in #109 – it would be great if we could also support the conda-forge feature for multiple outputs for builds, which would use the same build environment for building multiple variations of a package.

The proposed implementation could be as follows:

  • add an outputs: field to the recipe that allows subfields such as script:, about: post:, more requirements: (and sub-requirements), etc.
  • build in the order they are specified, building the first listed output and proceed to the next one if it passes
    • we can stop if it fails; I don't think we need a --keep-going option or building in parallel at the moment
  • the graph builder can keep the same logic, more or less – it's just that one recipe will generate $n$ packages instead of just one

The rationale is that many recipes could benefit from this – for example:

  • packages such as NumPy/SciPy/etc. and various Meson-based packages can then use their "install tags" integration with Meson to build WASM wheels for scipy and scipy-tests, which can be installed together in the same environment. this can be used to control build sizes better than stripping away wheels.
  • it allows packages to ship multiple variants of their builds: we could ship NumPy + OpenBLAS and NumPy with Netlib BLAS from the same recipe file, just with different build scripts listed together.
  • for libraries: SuiteSparse, for example, can be instructed to build different components separately for packages that need only a specific one.

Reference:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions