conda / conda-build

Commands and tools for building conda packages
https://docs.conda.io/projects/conda-build/
Other
381 stars 423 forks source link

variants not rendered properly w/ jinja2 if statements and skips #5445

Closed beckermr closed 2 months ago

beckermr commented 2 months ago

Checklist

What happened?

Using this recipe

{% if CLANG_VERSION is not defined %}
{% set CLANG_VERSION = "16.0.6" %}
{% set CL_VERSION = "19.29" %}
{% set VCVER = "" %}
{% endif %}
{% set clang_major = CLANG_VERSION.split(".")[0] %}
{% set cl_minor = CL_VERSION.split(".")[1] %}
{% set vc_major = VCVER.split(".")[0] %}

package:
  name: clang-win-activation
  version: {{ CLANG_VERSION }}

build:
  number: 0
  {% if clang_major|int == 16 and cl_minor|int >= 40 %}
  skip: true
  {% endif %}

outputs:
  - name: clang_win-64
    build:
      run_exports:
        strong:
          - vc >={{ VCVER }}
    requirements:
      run:
        - clang {{ CLANG_VERSION }}.*

and this CBC

CLANG_VERSION:
  - 16.0.6
  - 17.0.6
  - 18.1.8
  - 19.1.0.rc1

VCVER:
  - 14.3
  - 14.2
CL_VERSION:
  - 19.40.33808
  - 19.29.30139

zip_keys:
  -
    - VCVER
    - CL_VERSION

I get the following depending on the python hash seed

% PYTHONHASHSEED=100 conda render . | grep "CLANG_VERSION"
{'CLANG_VERSION': '16.0.6', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '16.0.6', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '17.0.6', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '17.0.6', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '18.1.8', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '18.1.8', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '19.1.0.rc1', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '19.1.0.rc1', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
% PYTHONHASHSEED=4 conda render . | grep "CLANG_VERSION"  
{'CLANG_VERSION': '18.1.8', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '18.1.8', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '17.0.6', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '17.0.6', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '19.1.0.rc1', 'VCVER': '14.3', 'target_platform': 'osx-arm64'}
{'CLANG_VERSION': '19.1.0.rc1', 'VCVER': '14.2', 'target_platform': 'osx-arm64'}

I would have expected all of the version 19.*, 18.* and 17.* variants with only one of the version 16.* variants.

Conda Info

active environment : cf-dev
    active env location : /Users/beckermr/mambaforge/envs/cf-dev
            shell level : 2
       user config file : /Users/beckermr/.condarc
 populated config files : /Users/beckermr/mambaforge/.condarc
                          /Users/beckermr/.condarc
          conda version : 24.7.1
    conda-build version : 24.7.1
         python version : 3.11.9.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m2
                          __conda=24.7.1=0
                          __osx=13.6.7=0
                          __unix=0=0
       base environment : /Users/beckermr/mambaforge  (writable)
      conda av data dir : /Users/beckermr/mambaforge/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/osx-arm64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /Users/beckermr/mambaforge/pkgs
                          /Users/beckermr/.conda/pkgs
       envs directories : /Users/beckermr/mambaforge/envs
                          /Users/beckermr/.conda/envs
               platform : osx-arm64
             user-agent : conda/24.7.1 requests/2.32.3 CPython/3.11.9 Darwin/22.6.0 OSX/13.6.7 solver/libmamba conda-libmamba-solver/24.7.0 libmambapy/1.5.8
                UID:GID : 501:20
             netrc file : /Users/beckermr/.netrc
           offline mode : False

Conda Config

==> /Users/beckermr/mambaforge/.condarc <==
add_pip_as_python_dependency: False
auto_update_conda: False
aggressive_update_packages:
  - ca-certificates
  - certifi
channel_priority: strict
channels:
  - conda-forge
show_channel_urls: True
conda_build:
  pkg_format: 2
  zstd_compression_level: 19

==> /Users/beckermr/.condarc <==
add_pip_as_python_dependency: False
auto_update_conda: False
channel_priority: strict
channels:
  - conda-forge
show_channel_urls: True
report_errors: False
solver: libmamba
conda_build:
  pkg_format: 2

==> envvars <==
allow_softlinks: False

Conda list

# packages in environment at /Users/beckermr/mambaforge/envs/cf-dev:
#
# Name                    Version                   Build  Channel
aiobotocore               2.13.1             pyhd8ed1ab_0    conda-forge
aiohappyeyeballs          2.3.2              pyhd8ed1ab_0    conda-forge
aiohttp                   3.10.1          py311hd3f4193_0    conda-forge
aioitertools              0.11.0             pyhd8ed1ab_0    conda-forge
aiosignal                 1.3.1              pyhd8ed1ab_0    conda-forge
anaconda-client           1.12.3             pyhd8ed1ab_1    conda-forge
annotated-types           0.7.0              pyhd8ed1ab_0    conda-forge
anyio                     4.4.0              pyhd8ed1ab_0    conda-forge
appdirs                   1.4.4              pyh9f0ad1d_0    conda-forge
appnope                   0.1.4              pyhd8ed1ab_0    conda-forge
archspec                  0.2.3              pyhd8ed1ab_0    conda-forge
argcomplete               3.4.0              pyhd8ed1ab_0    conda-forge
arrow                     1.3.0              pyhd8ed1ab_0    conda-forge
asttokens                 2.4.1              pyhd8ed1ab_0    conda-forge
async-timeout             4.0.3              pyhd8ed1ab_0    conda-forge
attrs                     24.1.0             pyh71513ae_0    conda-forge
aws-c-auth                0.7.22              h8a62e84_10    conda-forge
aws-c-cal                 0.7.1                h94d0942_1    conda-forge
aws-c-common              0.9.23               h99b78c6_0    conda-forge
aws-c-compression         0.2.18               h94d0942_7    conda-forge
aws-c-event-stream        0.4.2               hb74cd8f_15    conda-forge
aws-c-http                0.8.2                had1507a_6    conda-forge
aws-c-io                  0.14.10              hcdb10ff_1    conda-forge
aws-c-mqtt                0.10.4               h856d8ab_8    conda-forge
aws-c-s3                  0.6.0                ha9fd6de_2    conda-forge
aws-c-sdkutils            0.1.16               h94d0942_3    conda-forge
aws-checksums             0.1.18               h94d0942_7    conda-forge
aws-crt-cpp               0.27.3               h9d3339c_2    conda-forge
aws-sdk-cpp               1.11.329             he6360a2_9    conda-forge
azure-core                1.30.2             pyhd8ed1ab_0    conda-forge
azure-core-cpp            1.13.0               hd01fc5c_0    conda-forge
azure-identity-cpp        1.8.0                h13ea094_2    conda-forge
azure-storage-blobs-cpp   12.12.0              hfde595f_0    conda-forge
azure-storage-common-cpp  12.7.0               hcf3b6fd_1    conda-forge
azure-storage-files-datalake-cpp 12.11.0              h082e32e_1    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                pyhd8ed1ab_4    conda-forge
backports.functools_lru_cache 2.0.0              pyhd8ed1ab_0    conda-forge
backports.strenum         1.2.8              pyhd8ed1ab_0    conda-forge
backports.tarfile         1.0.0              pyhd8ed1ab_1    conda-forge
beautifulsoup4            4.12.3             pyha770c72_0    conda-forge
binaryornot               0.4.4                      py_1    conda-forge
black                     24.4.2          py311h267d04e_0    conda-forge
bleach                    6.1.0              pyhd8ed1ab_0    conda-forge
blinker                   1.8.2              pyhd8ed1ab_0    conda-forge
bokeh                     3.5.1              pyhd8ed1ab_0    conda-forge
boltons                   24.0.0             pyhd8ed1ab_0    conda-forge
boolean.py                4.0                pyhd8ed1ab_0    conda-forge
botocore                  1.34.131        pyge310_1234567_0    conda-forge
brotli                    1.1.0                hb547adb_1    conda-forge
brotli-bin                1.1.0                hb547adb_1    conda-forge
brotli-python             1.1.0           py311ha891d26_1    conda-forge
brotlipy                  0.7.0           py311heffc1b2_1006    conda-forge
bzip2                     1.0.8                h99b78c6_7    conda-forge
c-ares                    1.32.3               h99b78c6_0    conda-forge
ca-certificates           2024.7.4             hf0a4a13_0    conda-forge
cachetools                5.4.0              pyhd8ed1ab_0    conda-forge
cctools                   986                  h4c9edd9_3    conda-forge
cctools_osx-arm64         986                  hf2da8af_3    conda-forge
certifi                   2024.7.4           pyhd8ed1ab_0    conda-forge
cffi                      1.16.0          py311h4a08483_0    conda-forge
cfgv                      3.3.1              pyhd8ed1ab_0    conda-forge
chardet                   5.2.0           py311h267d04e_1    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
cirun                     0.30               pyhd8ed1ab_0    conda-forge
click                     8.1.7           unix_pyh707e725_0    conda-forge
click-log                 0.4.0              pyhd8ed1ab_0    conda-forge
click-option-group        0.5.6              pyhd8ed1ab_0    conda-forge
cloudpickle               3.0.0              pyhd8ed1ab_0    conda-forge
cmarkgfm                  0.8.0           py311heffc1b2_3    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
comm                      0.2.2              pyhd8ed1ab_0    conda-forge
conda                     24.7.1          py311h267d04e_0    conda-forge
conda-build               24.7.1          py311h267d04e_0    conda-forge
conda-forge-conda-plugins 0.1.dev23+g000f3a9          pypi_0    pypi
conda-forge-metadata      0.8.1              pyhd8ed1ab_0    conda-forge
conda-forge-pinning       2024.08.05.15.28.08      hd8ed1ab_0    conda-forge
conda-forge-webservices   1.0                      pypi_0    pypi
conda-index               0.5.0              pyhd8ed1ab_0    conda-forge
conda-libmamba-solver     24.7.0             pyhd8ed1ab_0    conda-forge
conda-oci-mirror          0.1.0              pyhd8ed1ab_0    conda-forge
conda-package-handling    2.3.0              pyh7900ff3_0    conda-forge
conda-package-streaming   0.10.0             pyhd8ed1ab_0    conda-forge
conda-smithy              3.37.3.dev83+g4b632ac8          pypi_0    pypi
conda-suggest             0.1.1              pyh9f0ad1d_0    conda-forge
conda-suggest-conda-forge 2021.8.24            hf450f58_0    conda-forge
contourpy                 1.2.1           py311hcc98501_0    conda-forge
cookiecutter              2.6.0              pyhca7485f_0    conda-forge
cramjam                   2.8.3           py311h94f323b_0    conda-forge
cryptography              43.0.0          py311hcaeb4ce_0    conda-forge
curl                      8.9.1                hbf5303f_0    conda-forge
cycler                    0.12.1             pyhd8ed1ab_0    conda-forge
cytoolz                   0.12.3          py311h05b510d_0    conda-forge
dask                      2024.7.1           pyhd8ed1ab_0    conda-forge
dask-core                 2024.7.1           pyhd8ed1ab_0    conda-forge
dask-expr                 1.1.9              pyhd8ed1ab_0    conda-forge
debugpy                   1.8.3           py311hb9542d7_0    conda-forge
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
defusedxml                0.7.1              pyhd8ed1ab_0    conda-forge
deprecated                1.2.14             pyh1a96a4e_0    conda-forge
distlib                   0.3.8              pyhd8ed1ab_0    conda-forge
distributed               2024.7.1           pyhd8ed1ab_0    conda-forge
distro                    1.9.0              pyhd8ed1ab_0    conda-forge
docutils                  0.21.2             pyhd8ed1ab_0    conda-forge
dotty-dict                1.3.1              pyhd8ed1ab_0    conda-forge
editables                 0.5                pyhd8ed1ab_0    conda-forge
entrypoints               0.4                pyhd8ed1ab_0    conda-forge
exceptiongroup            1.2.2              pyhd8ed1ab_0    conda-forge
executing                 2.0.1              pyhd8ed1ab_0    conda-forge
fastparquet               2024.5.0        py311h5d790af_0    conda-forge
filelock                  3.15.4             pyhd8ed1ab_0    conda-forge
flake8                    7.1.1              pyhd8ed1ab_0    conda-forge
fmt                       10.2.1               h2ffa867_0    conda-forge
fonttools                 4.53.1          py311hd3f4193_0    conda-forge
freetype                  2.12.1               hadb7bae_2    conda-forge
frozendict                2.4.4           py311hd3f4193_0    conda-forge
frozenlist                1.4.1           py311h05b510d_0    conda-forge
fsspec                    2024.6.1           pyhff2d567_0    conda-forge
gettext                   0.22.5               h8fbad5d_2    conda-forge
gettext-tools             0.22.5               h8fbad5d_2    conda-forge
gflags                    2.2.2             hc88da5d_1004    conda-forge
git                       2.46.0          pl5321h41514c7_0    conda-forge
gitdb                     4.0.11             pyhd8ed1ab_0    conda-forge
github3.py                4.0.1              pyhd8ed1ab_0    conda-forge
gitpython                 3.1.43             pyhd8ed1ab_0    conda-forge
glob2                     0.7                        py_0    conda-forge
glog                      0.7.1                heb240a5_0    conda-forge
gmp                       6.3.0                h7bae524_2    conda-forge
h11                       0.14.0             pyhd8ed1ab_0    conda-forge
h2                        4.1.0              pyhd8ed1ab_0    conda-forge
hatch                     1.12.0             pyhd8ed1ab_0    conda-forge
hatch-vcs                 0.4.0              pyhd8ed1ab_0    conda-forge
hatchling                 1.25.0             pyhd8ed1ab_0    conda-forge
hpack                     4.0.0              pyh9f0ad1d_0    conda-forge
httpcore                  1.0.5              pyhd8ed1ab_0    conda-forge
httpx                     0.27.0             pyhd8ed1ab_0    conda-forge
hyperframe                6.0.1              pyhd8ed1ab_0    conda-forge
hyperlink                 21.0.0             pyhd3deb0d_0    conda-forge
icu                       75.1                 hfee45f7_0    conda-forge
identify                  2.6.0              pyhd8ed1ab_0    conda-forge
idna                      3.7                pyhd8ed1ab_0    conda-forge
importlib-metadata        8.2.0              pyha770c72_0    conda-forge
importlib-resources       6.4.0              pyhd8ed1ab_0    conda-forge
importlib_metadata        8.2.0                hd8ed1ab_0    conda-forge
importlib_resources       6.4.0              pyhd8ed1ab_0    conda-forge
iniconfig                 2.0.0              pyhd8ed1ab_0    conda-forge
inline-snapshot           0.12.0             pyhd8ed1ab_0    conda-forge
intake                    2.0.6              pyhd8ed1ab_0    conda-forge
invoke                    2.2.0              pyhd8ed1ab_0    conda-forge
ipykernel                 6.29.5             pyh57ce528_0    conda-forge
ipython                   8.26.0             pyh707e725_0    conda-forge
isodate                   0.6.1              pyhd8ed1ab_0    conda-forge
jaraco.classes            3.4.0              pyhd8ed1ab_1    conda-forge
jaraco.context            5.3.0              pyhd8ed1ab_1    conda-forge
jaraco.functools          4.0.0              pyhd8ed1ab_0    conda-forge
jedi                      0.19.1             pyhd8ed1ab_0    conda-forge
jinja2                    3.1.4              pyhd8ed1ab_0    conda-forge
jmespath                  1.0.1              pyhd8ed1ab_0    conda-forge
joblib                    1.4.2              pyhd8ed1ab_0    conda-forge
jq                        1.7.1                h93a5062_0    conda-forge
jsonpatch                 1.33               pyhd8ed1ab_0    conda-forge
jsonpointer               3.0.0           py311h267d04e_0    conda-forge
jsonschema                4.23.0             pyhd8ed1ab_0    conda-forge
jsonschema-specifications 2023.12.1          pyhd8ed1ab_0    conda-forge
jupyter_client            8.6.2              pyhd8ed1ab_0    conda-forge
jupyter_core              5.7.2           py311h267d04e_0    conda-forge
keyring                   25.3.0             pyh534df25_0    conda-forge
kiwisolver                1.4.5           py311he4fd1f5_1    conda-forge
krb5                      1.21.3               h237132a_0    conda-forge
lazyasd                   0.1.4                      py_1    conda-forge
lcms2                     2.16                 ha0e7c42_0    conda-forge
ld64                      711                  h4c6efb1_3    conda-forge
ld64_osx-arm64            711                  h5ecc89c_3    conda-forge
lerc                      4.0.0                h9a09cb3_0    conda-forge
libabseil                 20240116.2      cxx17_h00cdb27_1    conda-forge
libarchive                3.7.4                h83d404f_0    conda-forge
libarrow                  17.0.0           ha3ffeb4_3_cpu    conda-forge
libarrow-acero            17.0.0           hf9b8971_3_cpu    conda-forge
libarrow-dataset          17.0.0           hf9b8971_3_cpu    conda-forge
libarrow-flight           17.0.0           h3db07f8_3_cpu    conda-forge
libarrow-flight-sql       17.0.0           h2269caf_3_cpu    conda-forge
libarrow-gandiva          17.0.0           h9cbd563_3_cpu    conda-forge
libarrow-substrait        17.0.0           hbf8b706_3_cpu    conda-forge
libasprintf               0.22.5               h8fbad5d_2    conda-forge
libasprintf-devel         0.22.5               h8fbad5d_2    conda-forge
libblas                   3.9.0           17_osxarm64_openblas    conda-forge
libbrotlicommon           1.1.0                hb547adb_1    conda-forge
libbrotlidec              1.1.0                hb547adb_1    conda-forge
libbrotlienc              1.1.0                hb547adb_1    conda-forge
libcblas                  3.9.0           17_osxarm64_openblas    conda-forge
libcrc32c                 1.1.2                hbdafb3b_0    conda-forge
libcurl                   8.9.1                hfd8ffcc_0    conda-forge
libcxx                    18.1.8               h5a72898_2    conda-forge
libdeflate                1.21                 h99b78c6_0    conda-forge
libedit                   3.1.20191231         hc8eb9b7_2    conda-forge
libev                     4.33                 h93a5062_2    conda-forge
libevent                  2.1.12               h2757513_1    conda-forge
libexpat                  2.6.2                hebf3989_0    conda-forge
libffi                    3.4.2                h3422bc3_5    conda-forge
libgettextpo              0.22.5               h8fbad5d_2    conda-forge
libgettextpo-devel        0.22.5               h8fbad5d_2    conda-forge
libgfortran               5.0.0           12_2_0_hd922786_32    conda-forge
libgfortran5              12.2.0              h0eea778_32    conda-forge
libgoogle-cloud           2.26.0               hfe08963_0    conda-forge
libgoogle-cloud-storage   2.26.0               h1466eeb_0    conda-forge
libgrpc                   1.62.2               h9c18a4f_0    conda-forge
libhwloc                  2.11.1          default_h7685b71_1000    conda-forge
libiconv                  1.17                 h0d3ecfb_2    conda-forge
libintl                   0.22.5               h8fbad5d_2    conda-forge
libintl-devel             0.22.5               h8fbad5d_2    conda-forge
libjpeg-turbo             3.0.0                hb547adb_1    conda-forge
liblapack                 3.9.0           17_osxarm64_openblas    conda-forge
liblief                   0.14.1               h3f3aa29_1    conda-forge
libllvm15                 15.0.7               h2621b3d_4    conda-forge
libllvm16                 16.0.6               haab561b_3    conda-forge
libllvm17                 17.0.6               h5090b49_2    conda-forge
libllvm18                 18.1.8               h5090b49_1    conda-forge
libmamba                  1.5.8                h90c426b_0    conda-forge
libmambapy                1.5.8           py311h26e1311_0    conda-forge
libnghttp2                1.58.0               ha4dd798_1    conda-forge
libopenblas               0.3.23          openmp_hc731615_0    conda-forge
libparquet                17.0.0           h56531a6_3_cpu    conda-forge
libpng                    1.6.43               h091b4b1_0    conda-forge
libprotobuf               4.25.3               hbfab5d5_0    conda-forge
libre2-11                 2023.09.01           h7b2c953_2    conda-forge
libsodium                 1.0.18               h27ca646_1    conda-forge
libsolv                   0.7.30               h6c9b7f8_0    conda-forge
libsqlite                 3.46.0               hfb93653_0    conda-forge
libssh2                   1.11.0               h7a5bd25_0    conda-forge
libthrift                 0.19.0               h026a170_1    conda-forge
libtiff                   4.6.0                hf8409c0_4    conda-forge
libutf8proc               2.8.0                h1a8c8d9_0    conda-forge
libwebp-base              1.4.0                h93a5062_0    conda-forge
libxcb                    1.16                 hf2054a2_0    conda-forge
libxml2                   2.12.7               h01dff8b_4    conda-forge
libxslt                   1.1.39               h223e5b9_0    conda-forge
libzlib                   1.3.1                hfb2fe0b_1    conda-forge
license-expression        30.1.1             pyhd8ed1ab_0    conda-forge
llvm-openmp               18.1.8               hde57baf_0    conda-forge
locket                    1.0.0              pyhd8ed1ab_0    conda-forge
loky                      3.4.1              pyhd8ed1ab_0    conda-forge
lxml                      5.2.2           py311hf9a6a72_0    conda-forge
lz4                       4.3.3           py311hd44b8e9_0    conda-forge
lz4-c                     1.9.4                hb7217d7_0    conda-forge
lzo                       2.10              h93a5062_1001    conda-forge
mamba                     1.5.8           py311hb045da1_0    conda-forge
markdown-it-py            3.0.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.5           py311h05b510d_0    conda-forge
matplotlib                3.9.1           py311ha1ab1f8_2    conda-forge
matplotlib-base           3.9.1           py311hba6b155_2    conda-forge
matplotlib-inline         0.1.7              pyhd8ed1ab_0    conda-forge
mccabe                    0.7.0              pyhd8ed1ab_0    conda-forge
mdurl                     0.1.2              pyhd8ed1ab_0    conda-forge
menuinst                  2.1.1           py311h267d04e_0    conda-forge
more-itertools            10.3.0             pyhd8ed1ab_0    conda-forge
mpi                       1.0                     openmpi    conda-forge
msgpack-python            1.0.8           py311h6bde47b_0    conda-forge
msrest                    0.7.1              pyhd8ed1ab_0    conda-forge
multidict                 6.0.5           py311he2be06e_0    conda-forge
munkres                   1.1.4              pyh9f0ad1d_0    conda-forge
mypy_extensions           1.0.0              pyha770c72_0    conda-forge
nbformat                  5.10.4             pyhd8ed1ab_0    conda-forge
ncurses                   6.5                  hb89a1cb_0    conda-forge
nest-asyncio              1.6.0              pyhd8ed1ab_0    conda-forge
networkx                  3.3                pyhd8ed1ab_1    conda-forge
nh3                       0.2.18          py311h98c6a39_0    conda-forge
nodeenv                   1.9.1              pyhd8ed1ab_0    conda-forge
numpy                     2.0.1           py311h4268184_0    conda-forge
oauthlib                  3.2.2              pyhd8ed1ab_0    conda-forge
oniguruma                 6.9.9                h93a5062_0    conda-forge
openjpeg                  2.5.2                h9f1df11_0    conda-forge
openmpi                   4.1.5              h4e676fc_101    conda-forge
openssl                   3.3.1                hfb2fe0b_2    conda-forge
oras-py                   0.1.14             pyhd8ed1ab_0    conda-forge
orc                       2.0.1                h47ade37_1    conda-forge
packaging                 24.1               pyhd8ed1ab_0    conda-forge
pandas                    2.2.2           py311h4b4568b_1    conda-forge
parameterized             0.9.0              pyhd8ed1ab_0    conda-forge
parso                     0.8.4              pyhd8ed1ab_0    conda-forge
partd                     1.4.2              pyhd8ed1ab_0    conda-forge
patch                     2.7.6             h27ca646_1002    conda-forge
pathspec                  0.12.1             pyhd8ed1ab_0    conda-forge
pcre2                     10.44                h297a79d_0    conda-forge
perl                      5.32.1          7_h4614cfb_perl5    conda-forge
pexpect                   4.9.0              pyhd8ed1ab_0    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    10.4.0          py311hd7951ec_0    conda-forge
pip                       24.2               pyhd8ed1ab_0    conda-forge
pkginfo                   1.11.1             pyhd8ed1ab_0    conda-forge
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_1    conda-forge
platformdirs              4.2.2              pyhd8ed1ab_0    conda-forge
pluggy                    1.5.0              pyhd8ed1ab_0    conda-forge
pre-commit                3.8.0              pyha770c72_0    conda-forge
prompt-toolkit            3.0.47             pyha770c72_0    conda-forge
prompt_toolkit            3.0.47               hd8ed1ab_0    conda-forge
psutil                    6.0.0           py311hd3f4193_0    conda-forge
pthread-stubs             0.4               h27ca646_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pure_eval                 0.2.3              pyhd8ed1ab_0    conda-forge
py-lief                   0.14.1          py311h6376970_1    conda-forge
pyarrow                   17.0.0          py311h35c05fe_1    conda-forge
pyarrow-core              17.0.0          py311he42f270_1_cpu    conda-forge
pyarrow-hotfix            0.6                pyhd8ed1ab_0    conda-forge
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycodestyle               2.12.1             pyhd8ed1ab_0    conda-forge
pycosat                   0.6.6           py311heffc1b2_0    conda-forge
pycparser                 2.22               pyhd8ed1ab_0    conda-forge
pycryptodome              3.20.0          py311h7939e9c_0    conda-forge
pydantic                  2.8.2              pyhd8ed1ab_0    conda-forge
pydantic-core             2.20.1          py311h98c6a39_0    conda-forge
pyflakes                  3.2.0              pyhd8ed1ab_0    conda-forge
pygithub                  2.3.0              pyhd8ed1ab_0    conda-forge
pygments                  2.18.0             pyhd8ed1ab_0    conda-forge
pyjwt                     2.9.0              pyhd8ed1ab_1    conda-forge
pynacl                    1.5.0           py311heffc1b2_3    conda-forge
pyobjc-core               10.3.1          py311h5f135c3_0    conda-forge
pyobjc-framework-cocoa    10.3.1          py311h5f135c3_0    conda-forge
pyopenssl                 24.2.1             pyhd8ed1ab_2    conda-forge
pyparsing                 3.1.2              pyhd8ed1ab_0    conda-forge
pyperclip                 1.9.0              pyh534df25_0    conda-forge
pyproject_hooks           1.1.0              pyhd8ed1ab_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
pytest                    8.3.2              pyhd8ed1ab_0    conda-forge
python                    3.11.9          h932a869_0_cpython    conda-forge
python-build              1.2.1              pyhd8ed1ab_0    conda-forge
python-dateutil           2.9.0              pyhd8ed1ab_0    conda-forge
python-fastjsonschema     2.20.0             pyhd8ed1ab_0    conda-forge
python-gitlab             4.8.0              pyhd8ed1ab_0    conda-forge
python-libarchive-c       5.1             py311h267d04e_0    conda-forge
python-rapidjson          1.20            py311hb9542d7_0    conda-forge
python-semantic-release   9.8.6              pyhd8ed1ab_0    conda-forge
python-slugify            8.0.4              pyhd8ed1ab_0    conda-forge
python-snappy             0.7.2              pyh7a18afe_0    conda-forge
python-tzdata             2024.1             pyhd8ed1ab_0    conda-forge
python_abi                3.11                    4_cp311    conda-forge
pytz                      2024.1             pyhd8ed1ab_0    conda-forge
pyyaml                    6.0.1           py311heffc1b2_1    conda-forge
pyzmq                     26.0.3          py311h9bed540_0    conda-forge
qhull                     2020.2               h420ef59_5    conda-forge
rattler-build             0.19.0               hc069d6b_0    conda-forge
rattler-build-conda-compat 1.1.1              pyhd8ed1ab_0    conda-forge
re2                       2023.09.01           h4cba328_2    conda-forge
readline                  8.2                  h92ec313_1    conda-forge
readme_renderer           44.0               pyhd8ed1ab_0    conda-forge
referencing               0.35.1             pyhd8ed1ab_0    conda-forge
reproc                    14.2.4.post0         h93a5062_1    conda-forge
reproc-cpp                14.2.4.post0         h965bd2d_1    conda-forge
requests                  2.32.3             pyhd8ed1ab_0    conda-forge
requests-oauthlib         2.0.0              pyhd8ed1ab_0    conda-forge
requests-toolbelt         1.0.0              pyhd8ed1ab_0    conda-forge
rever                     0.5.1              pyhd8ed1ab_0    conda-forge
rfc3986                   2.0.0              pyhd8ed1ab_0    conda-forge
rich                      13.7.1             pyhd8ed1ab_0    conda-forge
ripgrep                   14.1.0               h5ef7bb8_0    conda-forge
rpds-py                   0.19.1          py311h98c6a39_0    conda-forge
ruamel.yaml               0.18.6          py311h05b510d_0    conda-forge
ruamel.yaml.clib          0.2.8           py311h05b510d_0    conda-forge
ruamel.yaml.jinja2        0.2.4                      py_1    conda-forge
ruff                      0.5.6           py311hd374d79_0    conda-forge
s3fs                      2024.6.1           pyhd8ed1ab_0    conda-forge
scrypt                    0.8.24          py311ha9e1553_0    conda-forge
semver                    3.0.2              pyhd8ed1ab_0    conda-forge
setproctitle              1.3.3           py311heffc1b2_0    conda-forge
setuptools                72.1.0             pyhd8ed1ab_0    conda-forge
setuptools-scm            8.1.0              pyhd8ed1ab_0    conda-forge
setuptools_scm            8.1.0                hd8ed1ab_0    conda-forge
shellingham               1.5.4              pyhd8ed1ab_0    conda-forge
sigtool                   0.1.3                h44b9a77_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
smmap                     5.0.0              pyhd8ed1ab_0    conda-forge
snappy                    1.2.1                hd02b534_0    conda-forge
sniffio                   1.3.1              pyhd8ed1ab_0    conda-forge
sortedcontainers          2.4.0              pyhd8ed1ab_0    conda-forge
soupsieve                 2.5                pyhd8ed1ab_1    conda-forge
stack_data                0.6.2              pyhd8ed1ab_0    conda-forge
tapi                      1100.0.11            he4954df_0    conda-forge
tblib                     3.0.0              pyhd8ed1ab_0    conda-forge
text-unidecode            1.3                pyhd8ed1ab_1    conda-forge
tk                        8.6.13               h5083fa2_1    conda-forge
toml                      0.10.2             pyhd8ed1ab_0    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
tomli-w                   1.0.0              pyhd8ed1ab_0    conda-forge
tomlkit                   0.13.0             pyha770c72_0    conda-forge
toolz                     0.12.1             pyhd8ed1ab_0    conda-forge
tornado                   6.4.1           py311hd3f4193_0    conda-forge
tqdm                      4.66.5             pyhd8ed1ab_0    conda-forge
traitlets                 5.14.3             pyhd8ed1ab_0    conda-forge
trove-classifiers         2024.7.2           pyhd8ed1ab_0    conda-forge
truststore                0.8.0              pyhd8ed1ab_0    conda-forge
twine                     5.1.0              pyhd8ed1ab_0    conda-forge
typer                     0.12.3             pyhd8ed1ab_0    conda-forge
typer-slim                0.12.3             pyhd8ed1ab_0    conda-forge
typer-slim-standard       0.12.3               hd8ed1ab_0    conda-forge
types-python-dateutil     2.9.0.20240316     pyhd8ed1ab_0    conda-forge
types-pyyaml              6.0.12.20240724    pyhd8ed1ab_0    conda-forge
types-toml                0.10.8.20240310    pyhd8ed1ab_0    conda-forge
typing-extensions         4.12.2               hd8ed1ab_0    conda-forge
typing_extensions         4.12.2             pyha770c72_0    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
ukkonen                   1.0.1           py311he4fd1f5_4    conda-forge
uritemplate               4.1.1              pyhd8ed1ab_0    conda-forge
urllib3                   2.2.2              pyhd8ed1ab_1    conda-forge
userpath                  1.7.0              pyhd8ed1ab_0    conda-forge
uv                        0.2.33               h3b92f66_0    conda-forge
virtualenv                20.26.3            pyhd8ed1ab_0    conda-forge
vsts-python-api           0.1.22                     py_0    conda-forge
wcwidth                   0.2.13             pyhd8ed1ab_0    conda-forge
webencodings              0.5.1              pyhd8ed1ab_2    conda-forge
wheel                     0.44.0             pyhd8ed1ab_0    conda-forge
wrapt                     1.16.0          py311h05b510d_0    conda-forge
wurlitzer                 3.1.1              pyhd8ed1ab_0    conda-forge
xmltodict                 0.13.0             pyhd8ed1ab_0    conda-forge
xonsh                     0.18.2          py311h267d04e_0    conda-forge
xorg-libxau               1.0.11               hb547adb_0    conda-forge
xorg-libxdmcp             1.1.3                h27ca646_0    conda-forge
xyzservices               2024.6.0           pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h57fd34a_0    conda-forge
yaml                      0.2.5                h3422bc3_2    conda-forge
yaml-cpp                  0.8.0                h13dd4ca_0    conda-forge
yamllint                  1.35.1             pyhd8ed1ab_0    conda-forge
yarl                      1.9.4           py311h05b510d_0    conda-forge
yq                        3.4.3              pyhd8ed1ab_0    conda-forge
zeromq                    4.3.5                hcc0f68c_4    conda-forge
zict                      3.0.0              pyhd8ed1ab_0    conda-forge
zipp                      3.19.2             pyhd8ed1ab_0    conda-forge
zlib                      1.3.1                hfb2fe0b_1    conda-forge
zstandard                 0.23.0          py311h4a6b76e_0    conda-forge
zstd                      1.5.6                hb46c0d2_0    conda-forge

Additional Context

xref https://github.com/conda-forge/conda-smithy/issues/2012

cc @h-vetinari

beckermr commented 2 months ago

If I remove the output and use a simple recipe like this:

{% if CLANG_VERSION is not defined %}
{% set CLANG_VERSION = "16.0.6" %}
{% set CL_VERSION = "19.29" %}
{% set VCVER = "" %}
{% endif %}
{% set clang_major = CLANG_VERSION.split(".")[0] %}
{% set cl_minor = CL_VERSION.split(".")[1] %}
{% set vc_major = VCVER.split(".")[0] %}

package:
  name: clang-win-activation
  version: {{ CLANG_VERSION }}

build:
  number: 0
  {% if clang_major|int == 16 and cl_minor|int >= 40 %}
  skip: true
  {% endif %}
  run_exports:
    strong:
      - vc >={{ VCVER }}

requirements:
  run:
    - clang {{ CLANG_VERSION }}.*

the bug appears to go away.

beckermr commented 2 months ago

Moving the skip to the output also works fine:

{% if CLANG_VERSION is not defined %}
{% set CLANG_VERSION = "16.0.6" %}
{% set CL_VERSION = "19.29" %}
{% set VCVER = "" %}
{% endif %}
{% set clang_major = CLANG_VERSION.split(".")[0] %}
{% set cl_minor = CL_VERSION.split(".")[1] %}
{% set vc_major = VCVER.split(".")[0] %}

package:
  name: clang-win-activation
  version: {{ CLANG_VERSION }}

build:
  number: 0

outputs:
  - name: clang_win-64
    build:
      {% if clang_major|int == 16 and cl_minor|int >= 40 %}
      skip: true
      {% endif %}
      run_exports:
        strong:
          - vc >={{ VCVER }}
    requirements:
      run:
        - clang {{ CLANG_VERSION }}.*
beckermr commented 2 months ago

An explicit skip via a selector works OK too:

{% if CLANG_VERSION is not defined %}
{% set CLANG_VERSION = "16.0.6" %}
{% set CL_VERSION = "19.29" %}
{% set VCVER = "" %}
{% endif %}
{% set clang_major = CLANG_VERSION.split(".")[0] %}
{% set cl_minor = CL_VERSION.split(".")[1] %}
{% set vc_major = VCVER.split(".")[0] %}

package:
  name: clang-win-activation
  version: {{ CLANG_VERSION }}

build:
  number: 0
  skip: true  # [CLANG_VERSION == "16.0.6" and CL_VERSION == "19.40.33808"]

outputs:
  - name: clang_win-64
    build:
      run_exports:
        strong:
          - vc >={{ VCVER }}
    requirements:
      run:
        - clang {{ CLANG_VERSION }}.*
beckermr commented 2 months ago

This same bug is present all the way back to conda-build 3.24.*. However this worked before @h-vetinari, it was apparently not the exact same edge case or something.