Skip to content

Commit 1e22327

Browse files
committed
improve pinning_deps.md
1 parent ebbe8ac commit 1e22327

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

docs/maintainer/pinning_deps.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,24 @@ Should be replaced by
4444
requirements:
4545
host:
4646
- gmp
47+
# most libraries will automatically add the corresponding runtime requirement using
48+
# a so-called "run-export" from the gmp build pulled into the host environment.
49+
# In that case you can leave out the following run-requirement:
4750
run:
4851
- gmp
4952
```
5053
54+
The run-export mechanism (see below) additionally ensures the correct version constraints
55+
(corresponding to the expected API/ABI stability of `gmp`) are added, so a recipe with an
56+
unpinned `gmp` dependency in the host environment will, in the end, work as follows:
57+
```yaml
58+
requirements:
59+
host:
60+
- gmp {{ version_from_global_pinning }}.*
61+
run:
62+
- gmp >={{ version_from_global_pinning }},<{{ next_version_with_breaking_changes }}
63+
```
64+
5165
When there's a new ABI version of gmp (say 7.0), then conda-forge-pinning will be updated. A re-rendering of a package using gmp will change. Therefore to check that a recipe needs to be rebuilt for updated pinnings, you only need to check if the package needs a rerender.
5266

5367
:::
@@ -56,7 +70,11 @@ If a package is not pinned in [conda-forge-pinning](https://github.com/conda-for
5670

5771
:::note
5872

59-
If the constraints in `conda-forge-pinning` are not strict enough, you can override them by changing back to pinning the package with a version manually. You can make a pinning stricter by adding `{{ pin_compatible('gmp', max_pin='x.x.x') }}` to run requirements.
73+
If the constraints in `conda-forge-pinning` (resp. those coming from the package's run-exports)
74+
are not strict enough, you can override them by changing back to pinning the package with
75+
a version manually.
76+
You can make a pinning stricter by adding `{{ pin_compatible('gmp', max_pin='x.x.x') }}`
77+
to run requirements.
6078

6179
:::
6280

0 commit comments

Comments
 (0)