Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Multiple build with boa #308

@ffirmanff

Description

@ffirmanff

First off, hats off to @wolfv and other mamba/boa project members. This is a huge improvements in developer quality of life vs conda build.

I have a requirement to create multiple C++ builds in our pipeline using boa (e.g. build vs debug, static vs dynamic).
With conda build, I can specify the variants in the conda_build_config.yaml file like such:

buildtype:
  - debug
  - release

I can reference the buildtype as a variable in meta.yaml file directly like so:

build:
  string: 'build{{ buildtype }}'
  number: 0
  script_env:
    - CMAKE_BUILD_TYPE={{ buildtype }}

Conda build will take the vars and update the recipe accordingly.

However, if I were to do the same in boa's recipe.yaml, I find that the variables from the conda_build_config.yaml are not accessible, and really only useable as version references for packages that matched the variable name.

Peeking through the codes, seems boa parses out the recipe.yaml alone (without using any values from the variants), and replaces non-matching jinja2 variables with blank. Only later is the variants from conda_build_config.yaml used to apply the versions against matching packages.

  1. Can someone please help explain the reasoning for changing the logic this extensively? I had read the reasoning for simplifying the recipe format, but this seems a bit drastic.
  2. What is the recommendation for how I can create separate debug and release build of my packages?

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