Skip to content

Instantly share code, notes, and snippets.

@traversaro
Last active October 8, 2025 11:24
Show Gist options
  • Select an option

  • Save traversaro/4bf16dee58666ecffcdc2e93ab483842 to your computer and use it in GitHub Desktop.

Select an option

Save traversaro/4bf16dee58666ecffcdc2e93ab483842 to your computer and use it in GitHub Desktop.
# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
# pixi environments
.pixi/*
!.pixi/config.toml

Files to reproduce problem with rattler-build and variant's ignore_keys.

eigen_abi_profile:
- 100
- 80 # [x86_64]
- 70 # [x86_64]
version: 6
environments:
default:
channels:
- url: https://conda.anaconda.org/conda-forge/
packages:
linux-64:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.10.5-hbd8a1cb_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-h767d61c_6.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_6.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-h767d61c_6.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h8f9b012_6.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-h4852527_6.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda
- conda: https://conda.anaconda.org/conda-forge/linux-64/rattler-build-0.47.1-h60886be_0.conda
packages:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
md5: d7c89558ba9fa0495403155b64376d81
license: None
size: 2562
timestamp: 1578324546067
- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
build_number: 16
sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22
md5: 73aaf86a425cc6e73fcf236a5a46396d
depends:
- _libgcc_mutex 0.1 conda_forge
- libgomp >=7.5.0
constrains:
- openmp_impl 9999
license: BSD-3-Clause
license_family: BSD
size: 23621
timestamp: 1650670423406
- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.10.5-hbd8a1cb_0.conda
sha256: 3b5ad78b8bb61b6cdc0978a6a99f8dfb2cc789a451378d054698441005ecbdb6
md5: f9e5fbc24009179e8b0409624691758a
depends:
- __unix
license: ISC
size: 155907
timestamp: 1759649036195
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-h767d61c_6.conda
sha256: 29c6ce15cf54f89282581d19329c99d1639036c5dde049bf1cae48dcc4137470
md5: 99eee6aa5abea12f326f7fc010aef0c8
depends:
- __glibc >=2.17,<3.0.a0
- _openmp_mutex >=4.5
constrains:
- libgomp 15.2.0 h767d61c_6
- libgcc-ng ==15.2.0=*_6
license: GPL-3.0-only WITH GCC-exception-3.1
license_family: GPL
size: 823770
timestamp: 1759796589812
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_6.conda
sha256: 12c91470ceb8d7d38fcee1a4ff1f50524625349059988f6bd0e8e6b27599a1ad
md5: d9717466cca9b9584226ce57a7cd58e6
depends:
- libgcc 15.2.0 h767d61c_6
license: GPL-3.0-only WITH GCC-exception-3.1
license_family: GPL
size: 29249
timestamp: 1759796603487
- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-h767d61c_6.conda
sha256: 60263a73f3826f4e24a45d18826cb324711c980c13c0155e9d10eaca8a399851
md5: a8637a77aec40557feb12dbc8dc37c6f
depends:
- __glibc >=2.17,<3.0.a0
license: GPL-3.0-only WITH GCC-exception-3.1
license_family: GPL
size: 448095
timestamp: 1759796487876
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h8f9b012_6.conda
sha256: fafd1c1320384a664f57e5d75568f214a31fe2201fc8baace6c15d88b8cf89a8
md5: 9acaf38d72dcddace144f28506d45afa
depends:
- __glibc >=2.17,<3.0.a0
- libgcc 15.2.0 h767d61c_6
license: GPL-3.0-only WITH GCC-exception-3.1
license_family: GPL
size: 3903545
timestamp: 1759796640725
- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-h4852527_6.conda
sha256: 462fa002d3ab6702045ee330ab45719ac2958a092a4634a955cebc095f564794
md5: 89611cb5b685d19e6201065720f97561
depends:
- libstdcxx 15.2.0 h8f9b012_6
license: GPL-3.0-only WITH GCC-exception-3.1
license_family: GPL
size: 29290
timestamp: 1759796693929
- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda
sha256: e807f3bad09bdf4075dbb4168619e14b0c0360bacb2e12ef18641a834c8c5549
md5: 14edad12b59ccbfa3910d42c72adc2a0
depends:
- __glibc >=2.17,<3.0.a0
- ca-certificates
- libgcc >=14
license: Apache-2.0
license_family: Apache
size: 3119624
timestamp: 1759324353651
- conda: https://conda.anaconda.org/conda-forge/linux-64/patchelf-0.17.2-h58526e2_0.conda
sha256: eb355ac225be2f698e19dba4dcab7cb0748225677a9799e9cc8e4cadc3cb738f
md5: ba76a6a448819560b5f8b08a9c74f415
depends:
- libgcc-ng >=7.5.0
- libstdcxx-ng >=7.5.0
license: GPL-3.0-or-later
license_family: GPL
size: 94048
timestamp: 1673473024463
- conda: https://conda.anaconda.org/conda-forge/linux-64/rattler-build-0.47.1-h60886be_0.conda
sha256: 4730229fa76c24691de2a7421a8211dce90e0fc95b20e3606786ee54895f3fe8
md5: b1ecad9508aa5523751df500e54284a8
depends:
- patchelf
- __glibc >=2.17,<3.0.a0
- libgcc >=14
- openssl >=3.5.3,<4.0a0
constrains:
- __glibc >=2.17
license: BSD-3-Clause
license_family: BSD
size: 16797503
timestamp: 1759323480687
[workspace]
authors = ["Silvio Traversaro <[email protected]>"]
channels = ["conda-forge"]
name = "variant-ignored"
platforms = ["linux-64"]
version = "0.1.0"
[tasks]
reproduce = "rattler-build build --recipe-dir . -m ./conda_build_config.yaml"
[dependencies]
rattler-build = "*"
schema_version: 1
context:
version: 3.4.0
eigen_max_align_bytes: ${{ "16" if eigen_abi_profile == "100" else ("32" if eigen_abi_profile == "80" else ("64" if eigen_abi_profile == "70" else "unsupported_eigen_abi_profile_value")) }}
recipe:
name: eigen-variant-example
version: ${{ version }}
source:
- url: https://github.com/ami-iit/github-issues-context-extractor/archive/refs/tags/v0.1.1.zip
sha256: 2d8aa147ed24a3957966f2db055468f7e8d4cd89a3257c52592fead7adc7ac5e
build:
number: 1
outputs:
- package:
name: eigen
version: ${{ version }}
build:
script:
- if: unix
then: echo "dummy"
- if: win
then: echo "dummy"
variant:
ignore_keys:
- eigen_abi_profile
tests:
- script:
- echo "This is a metapackage, no test is necessary."
# The eigen-abi and eigen-abi-devel logic is discussed in detail recipe/README.md
- package:
name: eigen-abi-devel
# The version of eigen-abi is composed by the eigen version, and the eigen_abi_profile value
version: ${{ version }}.${{ eigen_abi_profile }}
requirements:
run_exports:
- ${{ pin_subpackage('eigen-abi', upper_bound='x.x.x.x') }}
run_constraints:
- if: x86_64 and eigen_max_align_bytes == "16"
then:
- x86_64-microarch-level >=1,<3
run:
- ${{ pin_subpackage('eigen', upper_bound='x.x.x') }}
- ${{ pin_subpackage('eigen-abi', upper_bound='x.x.x.x') }}
- if: x86_64 and eigen_max_align_bytes == "32"
then: x86_64-microarch-level 3.*
- if: x86_64 and eigen_max_align_bytes == "64"
then: x86_64-microarch-level 4.*
tests:
- script:
- echo "This is a metapackage, no test is necessary."
- package:
name: eigen-abi
# The version of eigen-abi is composed by the eigen version, and eigen_abi_profile value
version: ${{ version }}.${{ eigen_abi_profile }}
tests:
- script:
- echo "This is a metapackage, no test is necessary."
about:
homepage: http://eigen.tuxfamily.org/
license: MPL-2.0
summary: C++ template library for linear algebra
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment