@@ -917,18 +917,23 @@ which restricts the corresponding conda-forge recipes from becoming ``noarch``.
917
917
Therefore, some conda-forge recipes only create an actual package on specific Python versions and are otherwise an
918
918
empty placeholder. This allows them to be safely installed under all Python versions and makes using ``skips `` unnecessary.
919
919
920
- Currently available packages:
920
+ Similarly, some packages are `only ` platform-specific dependency of a package, such as ``pywin32 ``, and have
921
+ helper metapackages which can help recipes stay ``noarch ``. The version of the `actual ` package required
922
+ can be controlled with ``run_constrained ``, even for packages not available on all platforms.
921
923
922
- +-------------+-------------------+--------------+
923
- | Name | Available on: | Empty on: |
924
- +=============+===================+==============+
925
- | dataclasses | python >=3.6,<3.7 | python >=3.7 |
926
- +-------------+-------------------+--------------+
927
- | enum34 | python =2.7 | python >=3.4 |
928
- +-------------+-------------------+--------------+
929
- | typing | | python >=3 |
930
- +-------------+-------------------+--------------+
924
+ Currently available packages:
931
925
926
+ +--------------------+-------------------+--------------+
927
+ | Name | Available on: | Empty on: |
928
+ +====================+===================+==============+
929
+ | dataclasses | python >=3.6,<3.7 | python >=3.7 |
930
+ +--------------------+-------------------+--------------+
931
+ | enum34 | python =2.7 | python >=3.4 |
932
+ +--------------------+-------------------+--------------+
933
+ | typing | | python >=3 |
934
+ +--------------------+-------------------+--------------+
935
+ | pywin32-on-windows | windows | unix |
936
+ +--------------------+-------------------+--------------+
932
937
933
938
.. _knowledge:all-installs :
934
939
@@ -957,7 +962,7 @@ Noarch builds
957
962
Noarch packages are packages that are not architecture specific and therefore only have to be built once.
958
963
959
964
Declaring these packages as ``noarch `` in the ``build `` section of the meta.yaml, reduces shared CI resources.
960
- Therefore all packages that qualify to be noarch packages, should be declared as such.
965
+ Therefore all packages that qualify to be noarch packages ` should ` be declared as such.
961
966
962
967
963
968
.. _noarch :
@@ -977,7 +982,7 @@ In order to qualify as a noarch python package, all of the following criteria mu
977
982
statement and add version constraint on python in ``host `` and ``run ``
978
983
section.
979
984
- ``2to3 `` is not used
980
- - Scripts argument in setup.py is not used
985
+ - `` scripts `` argument in `` setup.py `` is not used
981
986
- If ``console_scripts `` ``entry_points `` are defined in ``setup.py `` or ``setup.cfg ``, they are also listed in
982
987
the ``build `` section of ``meta.yaml ``
983
988
- No activate scripts
@@ -991,7 +996,7 @@ In order to qualify as a noarch python package, all of the following criteria mu
991
996
992
997
.. note ::
993
998
994
- Only ``console_scripts `` entry points have to be listed in meta.yaml. Other entry points do not conflict
999
+ Only ``console_scripts `` entry points have to be listed in `` meta.yaml `` . Other entry points do not conflict
995
1000
with ``noarch `` and therefore do not require extra treatment.
996
1001
997
1002
.. note ::
@@ -1000,9 +1005,16 @@ In order to qualify as a noarch python package, all of the following criteria mu
1000
1005
``noarch `` even if one of its dependencies is not available on a given platform. If this is the case, conda will
1001
1006
display a helpful error message describing which dependency couldn't be found when it tries to install the package.
1002
1007
If the dependency is later made available, your package will be installable on that platform without having to make
1003
- any changes to the feedstock. However, keep in mind that since ``noarch `` packages are built on Linux, all
1004
- dependencies must be available on Linux.
1008
+ any changes to the feedstock.
1009
+
1010
+ By default, ``noarch `` packages are built on Linux, and all dependencies must be available on Linux.
1011
+
1012
+ .. hint ::
1005
1013
1014
+ If a ``noarch `` package `cannot ` be built on Linux, one or more ``noarch_platforms `` can be provided in
1015
+ ``conda-forge.yml ``. One example is `pywin32-on-windows <https://github.com/conda-forge/pywin32-on-windows-feedstock >`_,
1016
+ which builds on Linux `and ` Windows, with ``build_number `` offsets to create a pair packages, like
1017
+ ``dataclasses ``.
1006
1018
1007
1019
If an existing python package qualifies to be converted to a noarch package, you can request the required changes
1008
1020
by opening a new issue and including ``@conda-forge-admin, please add noarch: python ``.
0 commit comments