Skip to content

PKG_HASH not carried through to run_exports #6078

Description

@ifitchet

Checklist

  • I added a descriptive title
  • I searched open reports and couldn't find a duplicate

What happened?

This appears to be related to the stale #5571

If my recipe says:

build:
  noarch: python
  #number: 37
  string: dst_h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}
  run_exports:
    - {{ pin_subpackage (name, exact=True) }}

then conda render reports both the build string and the run_exports with a dummy PKG_HASH value:

$conda render {feedstock}
...
build:
  noarch: python
  string: dst_h1234567_0
  run_exports:
    - distro-smoke-test-conda-build 0.1 dst_h1234567_0

...

which might be fine.

conda-build generates a useable PKG_HASH for the build but not for the run_exports:

$conda build {feedstock}
...
INFO :: The inputs making up the hashes for the built packages are as follows:
{
  "distro-smoke-test-conda-build-0.1-dst_hd3eb1b0_0.conda": {
    "recipe": {
      "channel_targets": "defaults"
    }
  }
}

poking about:

$tar xf .../conda-bld/noarch/distro-smoke-test-conda-build-0.1-dst_hd3eb1b0_0.tar.bz2 -O info/run_exports.json | jq .
{
  "weak": [
    "distro-smoke-test-conda-build 0.1 dst_h1234567_0"
  ]
}

where dst_h1234567_0 is not going to be found by the solver.


If I comment out my explicit setting of string (which would lead to a PKG_HASH of pyhd3eb1b0) and set number to 37 then it feels somewhat worse as run_exports is revealed to be:

$tar xf .../conda-bld/noarch/distro-smoke-test-conda-build-0.1-pyhd3eb1b0_37.tar.bz2 -O info/run_exports.json | jq .
{
  "weak": [
    "distro-smoke-test-conda-build 0.1 37"
  ]
}

No PKG_HASH at all?

Conda Info

active environment : base
    active env location : /Users/ifitchet/mc1
            shell level : 1
       user config file : /Users/ifitchet/.condarc
 populated config files : /Users/ifitchet/mc1/condarc.d/anaconda-auth.yml
                          /Users/ifitchet/mc1/condarc.d/registration.yml
                          /Users/ifitchet/.condarc
          conda version : 26.5.3
    conda-build version : 26.5.0
         python version : 3.10.20.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=m2
                          __conda=26.5.3=0
                          __osx=26.5.1=0
                          __unix=0=0
       base environment : /Users/ifitchet/mc1  (writable)
      conda av data dir : /Users/ifitchet/mc1/etc/conda
  conda av metadata url : None
           channel URLs : https://repo.anaconda.com/pkgs/main/osx-arm64
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/r/osx-arm64
                          https://repo.anaconda.com/pkgs/r/noarch
          package cache : /Users/ifitchet/mc1/pkgs
                          /Users/ifitchet/.conda/pkgs
       envs directories : /Users/ifitchet/mc1/envs
                          /Users/ifitchet/.conda/envs
    temporary directory : /var/folders/mg/frr99xbs2cbg4dt01s1r5gmh0000gp/T
               platform : osx-arm64
             user-agent : conda/26.5.3 requests/2.34.2 CPython/3.10.20 Darwin/25.5.0 OSX/26.5.1 solver/libmamba conda-libmamba-solver/26.7.0 libmambapy/2.3.2 aau/0.8.1 c/. s/. e/. a/. o/.
                UID:GID : 502:20
             netrc file : None
           offline mode : False

Conda Config

==> /Users/ifitchet/mc1/condarc.d/anaconda-auth.yml <==
channel_settings:
  - channel: https://repo.anaconda.cloud/*
    auth: anaconda-auth

==> /Users/ifitchet/mc1/condarc.d/registration.yml <==
anaconda_anon_usage: True

==> /Users/ifitchet/.condarc <==
changeps1: True
pkgs_dirs: []
channel_alias: https://conda.anaconda.org
channels:
  - defaults
conda_build:
  matrix_base_dir: /Users/ifitchet/src/onboarding/automated-build/c3i_configurations/anaconda_public

==> envvars <==
allow_softlinks: False

Conda list

# packages in environment at /Users/ifitchet/mc1:
#
# Name                           Version          Build            Channel
anaconda-anon-usage              0.8.1            pyhb46e38b_100   defaults
anaconda-auth                    0.15.1           py310hca03da5_0  defaults
anaconda-cli-base                0.9.1            py310hca03da5_0  defaults
anaconda-registration            1.0              hd3eb1b0_0       https://repo.anaconda.cloud/repo/anaconda-tools
annotated-doc                    0.0.4            py310hca03da5_0  defaults
annotated-types                  0.7.0            py310hca03da5_0  defaults
anyio                            4.12.1           py310hca03da5_0  defaults
archspec                         0.2.6            py310hca03da5_0  defaults
asttokens                        3.0.1            py310hca03da5_0  defaults
attrs                            26.1.0           py310h0d18f5d_0  defaults
backports                        1.1              pyhd3eb1b0_1     defaults
backports.functools_lru_cache    1.6.4            pyhd3eb1b0_0     defaults
backports.tarfile                1.2.0            py310hca03da5_0  defaults
backports.tempfile               1.0              pyhd3eb1b0_1     defaults
backports.weakref                1.0.post1        py_1             defaults
backports.zstd                   1.3.0            py310hb3cf4b8_0  defaults
beautifulsoup4                   4.15.0           py310hca03da5_0  defaults
black                            26.5.1           py310hca03da5_0  defaults
boltons                          25.0.0           py310hca03da5_0  defaults
brotlicffi                       1.2.0.0          py310h50f4ffc_0  defaults
bzip2                            1.0.8            h80987f9_6       defaults
c-ares                           1.34.7           hfe05a68_0       defaults
ca-certificates                  2026.7.16        hca03da5_0       defaults
cctools                          1030.6.3         h0aecbd0_1       defaults
certifi                          2026.7.22        py310hca03da5_0  defaults
cffi                             2.1.0            py310h73c2a22_0  defaults
cfgv                             3.5.0            py310hca03da5_0  defaults
chardet                          5.2.0            py310hca03da5_0  defaults
charset-normalizer               3.4.7            py310hca03da5_0  defaults
click                            8.4.1            py310hca03da5_0  defaults
conda                            26.5.3           py310hca03da5_0  defaults
conda-anaconda-telemetry         0.3.0            pyhd3eb1b0_1     https://repo.anaconda.cloud/repo/anaconda-tools
conda-build                      26.5.0           py310h4f616cb_0  defaults
conda-content-trust              0.3.2            py310hca03da5_0  defaults
conda-index                      0.12.1           py310hca03da5_0  defaults
conda-libmamba-solver            26.7.0           pyh3785b3c_0     defaults
conda-lockfiles                  0.2.1            py310hca03da5_0  defaults
conda-package-handling           2.5.0            py310hca03da5_0  defaults
conda-package-streaming          0.13.0           py310hca03da5_0  defaults
conda-pypi                       0.11.0           py310hca03da5_0  defaults
conda-rattler-solver             0.1.1            py310hca03da5_0  defaults
conda-self                       0.2.1            py310hca03da5_0  defaults
conda-verify                     3.4.2            py_1             defaults
cpp-expected                     1.1.0            h48ca7d4_0       defaults
cryptography                     49.0.0           py310h482b559_0  defaults
curl                             8.21.0           h4db5624_0       defaults
decorator                        5.3.1            py310hca03da5_0  defaults
defusedxml                       0.7.1            pyhd3eb1b0_0     defaults
distlib                          0.4.3            py310haa24f5a_0  defaults
distro                           1.9.0            py310hca03da5_0  defaults
evalidate                        2.1.4            py310hca03da5_0  defaults
exceptiongroup                   1.3.1            py310hca03da5_0  defaults
executing                        2.2.1            py310hca03da5_0  defaults
filelock                         3.29.4           py310hca03da5_0  defaults
flake8                           7.3.0            py310hca03da5_0  defaults
fmt                              12.1.0           hc20ec9e_0       defaults
frozendict                       2.4.7            py310haa24f5a_0  defaults
future                           1.0.0            py310hca03da5_0  defaults
gettext                          0.25.1           h0087489_2       defaults
gettext-tools                    0.25.1           h47834f4_2       defaults
glob2                            0.7              pyhd3eb1b0_0     defaults
h11                              0.16.0           py310hca03da5_1  defaults
httpcore                         1.0.9            py310hca03da5_0  defaults
httpx                            0.28.1           py310hca03da5_1  defaults
icu                              78.3             hb5f10ac_1       defaults
identify                         2.6.19           py310hca03da5_0  defaults
idna                             3.18             py310hca03da5_0  defaults
importlib-metadata               9.0.0            py310hca03da5_0  defaults
ipython                          8.30.0           py310hca03da5_0  defaults
jansson                          2.15.0           h9db958f_0       defaults
jaraco.classes                   3.4.0            py310hca03da5_0  defaults
jaraco.context                   6.1.0            py310hca03da5_0  defaults
jaraco.functools                 4.4.0            py310hca03da5_0  defaults
jedi                             0.20.0           py310hca03da5_0  defaults
jinja2                           3.1.6            py310hca03da5_0  defaults
jira                             3.10.5           pyhd3eb1b0_0     defaults
jsonpatch                        1.33             py310hca03da5_1  defaults
jsonpointer                      3.1.1            py310hca03da5_0  defaults
jsonschema                       4.19.0           pypi_0           pypi
jsonschema-specifications        2025.9.1         py310hca03da5_0  defaults
keyring                          25.7.0           py310hca03da5_0  defaults
ld64                             956.6            haf59c80_1       defaults
libarchive                       3.8.8            h2304516_1       defaults
libasprintf                      0.25.1           hcc4682f_2       defaults
libasprintf-devel                0.25.1           hcc4682f_2       defaults
libbrotlicommon                  1.2.0            hbd7815e_0       defaults
libbrotlidec                     1.2.0            h1e834b2_0       defaults
libbrotlienc                     1.2.0            h5439a07_0       defaults
libcurl                          8.21.0           h033922a_0       defaults
libcxx                           22.1.2           hf894667_0       defaults
libev                            4.33             h1a28f6b_1       defaults
libexpat                         2.8.2            h50f4ffc_1       defaults
libffi                           3.4.8            h4a3ca97_3       defaults
libgettextpo                     0.25.1           hd3943a6_2       defaults
libgettextpo-devel               0.25.1           hd3943a6_2       defaults
libiconv                         1.18             h92f5915_0       defaults
libidn2                          2.3.8            h9681e36_0       defaults
libintl                          0.25.1           h55097f8_2       defaults
libintl-devel                    0.25.1           h55097f8_2       defaults
libkrb5                          1.22.2           hbbdc3aa_0       defaults
liblief                          0.17.5           h35ee89b_0       defaults
libllvm22                        22.1.2           h61cb577_3       defaults
libmamba                         2.3.2            h4b9b42c_3       defaults
libmambapy                       2.3.2            py310h678a34b_3  defaults
libnghttp2                       1.69.0           h04a03c9_1       defaults
libsodium                        1.0.21           h58dafb5_1       defaults
libsolv                          0.7.39           h01d500d_0       defaults
libssh2                          1.11.1           h3e2b118_0       defaults
libunistring                     1.4.2            hd80fe18_0       defaults
libxml2                          2.15.3           h9e20a13_0       defaults
libzlib                          1.3.2            hb4cf58c_0       defaults
lmdb                             1.0.0            hdceb957_0       defaults
lz4-c                            1.9.4            hd7fd590_5       defaults
markdown-it-py                   4.0.0            py310hca03da5_2  defaults
markupsafe                       3.0.3            py310haa24f5a_0  defaults
matplotlib-inline                0.2.2            py310hca03da5_0  defaults
mbedtls                          3.5.1            h313beb8_1       defaults
mccabe                           0.7.0            pyhd3eb1b0_0     defaults
mdurl                            0.1.2            py310hca03da5_0  defaults
menuinst                         2.5.2            py310hca03da5_0  defaults
more-itertools                   11.0.2           py310hca03da5_0  defaults
msgpack-python                   1.2.1            py310h50f4ffc_0  defaults
mypy_extensions                  1.1.0            py310hca03da5_0  defaults
ncurses                          6.5              hee39554_0       defaults
networkx                         3.4.2            py310hca03da5_0  defaults
nlohmann_json                    3.11.2           h313beb8_0       defaults
nodeenv                          1.10.0           py310hca03da5_0  defaults
oauthlib                         3.3.1            py310hca03da5_0  defaults
openssl                          3.5.7            ha0b305a_0       defaults
packaging                        26.0             py310hca03da5_0  defaults
parso                            0.8.7            py310hca03da5_0  defaults
patch                            2.8              h79febb2_0       defaults
pathspec                         1.0.4            py310hca03da5_0  defaults
pcre2                            10.46            h1dacb4a_0       defaults
pexpect                          4.9.0            py310hca03da5_1  defaults
pip                              26.1.2           pyhc872135_0     defaults
pkce                             1.0.3            py310hca03da5_0  defaults
pkginfo                          1.12.1.2         py310hca03da5_0  defaults
platformdirs                     4.11.0           py310hca03da5_0  defaults
pluggy                           1.6.0            py310hca03da5_0  defaults
pre-commit                       4.6.0            py310hca03da5_0  defaults
prompt-toolkit                   3.0.53           py310hca03da5_0  defaults
prompt_toolkit                   3.0.53           hd3eb1b0_0       defaults
psutil                           7.2.2            py310haa24f5a_0  defaults
ptyprocess                       0.7.0            pyhd3eb1b0_3     defaults
pure_eval                        0.2.3            py310hca03da5_0  defaults
py-lief                          0.17.5           py310h35ee89b_0  defaults
py-rattler                       0.25.0           py310h482b559_0  defaults
py-rattler-build                 0.65.1           py310h482b559_0  defaults
pybind11-abi                     4                hd3eb1b0_1       defaults
pycodestyle                      2.14.0           py310hca03da5_0  defaults
pycosat                          0.6.6            py310h80987f9_2  defaults
pycparser                        3.0              py310hca03da5_0  defaults
pydantic                         2.13.4           py310hca03da5_0  defaults
pydantic-core                    2.46.4           py310h3983f12_0  defaults
pydantic-settings                2.14.2           py310hca03da5_0  defaults
pyflakes                         3.4.0            py310hca03da5_0  defaults
pygithub                         2.9.1            py310hca03da5_0  defaults
pygments                         2.20.0           py310hca03da5_0  defaults
pyjwt                            2.13.0           py310hca03da5_0  defaults
pynacl                           1.6.2            py310h58dafb5_1  defaults
pyproject_hooks                  1.2.0            py310hca03da5_1  defaults
python                           3.10.20          h478e877_1       defaults
python-build                     1.5.1            py310hca03da5_0  defaults
python-discovery                 1.4.2            pyhd3eb1b0_0     defaults
python-dotenv                    1.2.1            py310hca03da5_0  defaults
python-installer                 1.0.1            py310hca03da5_0  defaults
python-libarchive-c              5.3              py310hca03da5_0  defaults
python.app                       3                py310h80987f9_2  defaults
pytokens                         0.4.1            py310haa24f5a_0  defaults
pyyaml                           6.0.3            py310h091b9d3_0  defaults
rattler-build                    0.55.1           h02d9002_0       defaults
readchar                         4.2.2            py310hca03da5_0  defaults
readline                         8.3              h0b18652_0       defaults
referencing                      0.37.0           py310hca03da5_0  defaults
reproc                           14.2.7           h279499b_0       defaults
reproc-cpp                       14.2.7           h279499b_0       defaults
requests                         2.34.2           py310hca03da5_0  defaults
requests-oauthlib                2.0.0            py310hca03da5_0  defaults
requests-toolbelt                1.0.0            py310hca03da5_0  defaults
rich                             15.0.0           py310hca03da5_0  defaults
ruamel.yaml                      0.18.16          py310h091b9d3_0  defaults
ruamel.yaml.clib                 0.2.14           py310h091b9d3_0  defaults
semver                           3.0.4            py310hca03da5_0  defaults
setuptools                       83.0.0           py310hca03da5_0  defaults
shellingham                      1.5.4            py310hca03da5_0  defaults
simdjson                         3.10.1           h48ca7d4_0       defaults
six                              1.17.0           py310hca03da5_0  defaults
soupsieve                        2.8.4            py310hca03da5_0  defaults
sqlite                           3.53.2           h1cce5ff_0       defaults
stack_data                       0.6.3            py310hca03da5_0  defaults
tapi                             1100.0.11        h8754e6a_1       defaults
tk                               8.6.15           hcd8a7d5_0       defaults
tomli                            2.4.0            py310hca03da5_0  defaults
tomli-w                          1.2.0            pyhd3eb1b0_0     defaults
tomlkit                          0.15.1           py310hca03da5_0  defaults
tqdm                             4.68.2           py310h7eb115d_0  defaults
traitlets                        5.15.0           py310hca03da5_0  defaults
truststore                       0.10.4           py310hca03da5_0  defaults
typer                            0.25.1           py310hca03da5_0  defaults
typing-extensions                4.16.0           py310hca03da5_0  defaults
typing-inspection                0.4.2            py310hca03da5_0  defaults
typing_extensions                4.16.0           py310hca03da5_0  defaults
tzdata                           2026c            he532380_0       defaults
ukkonen                          1.1.0            py310haeee614_0  defaults
unearth                          0.18.2           py310hca03da5_0  defaults
urllib3                          2.7.0            py310hca03da5_0  defaults
virtualenv                       21.5.1           py310hca03da5_0  defaults
wcwidth                          0.8.2            py310hca03da5_0  defaults
wheel                            0.47.0           py310hca03da5_0  defaults
xz                               5.8.2            h8bbcb1d_0       defaults
yaml                             0.2.5            h1a28f6b_0       defaults
yaml-cpp                         0.9.0            h9fe17f6_1       defaults
zipp                             3.23.0           py310hca03da5_0  defaults
zlib                             1.3.2            hb4cf58c_0       defaults
zstandard                        0.24.0           py310hbc14757_0  defaults
zstd                             1.5.7            h817c040_0       defaults

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    type::bugdescribes erroneous operation, use severity::* to classify the type

    Type

    No type

    Projects

    Status
    TODO 📬

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions