@@ -79,7 +79,21 @@ the following source types:
79
79
(see :ref: `section-spkg-install `);
80
80
81
81
- Sage records the version number of the package installed using a file in
82
- ``$SAGE_LOCAL/var/lib/sage/installed/ `` and will re-run the installation
82
+ ``$SAGE_LOCAL/var/lib/sage/installed/ `` and will rerun the installation
83
+ if ``package-version.txt `` changes.
84
+
85
+ #. A ``wheel `` package:
86
+
87
+ - comes from the wheel file named in the required file ``checksums.ini ``
88
+ and hosted on the Sage mirrors;
89
+
90
+ - per policy, only platform-independent wheels are allowed, i.e.,
91
+ ``*-none-any.whl `` files;
92
+
93
+ - its version number is defined by the required file ``package-version.txt ``;
94
+
95
+ - Sage records the version number of the package installed using a file in
96
+ ``$SAGE_LOCAL/var/lib/sage/installed/ `` and will rerun the installation
83
97
if ``package-version.txt `` changes.
84
98
85
99
#. A ``pip `` package:
@@ -107,7 +121,7 @@ the following source types:
107
121
(see :ref: `section-spkg-install `);
108
122
109
123
- Sage records the version number of the package installed using a file in
110
- ``$SAGE_LOCAL/var/lib/sage/installed/ `` and will re-run the installation
124
+ ``$SAGE_LOCAL/var/lib/sage/installed/ `` and will rerun the installation
111
125
if ``package-version.txt `` changes.
112
126
113
127
#. A ``dummy `` package:
@@ -119,7 +133,7 @@ the following source types:
119
133
120
134
To summarize: the package source type is determined as follows: if
121
135
there is a file ``requirements.txt ``, it is a ``pip `` package. If not,
122
- then if there is a ``checksums.ini `` file, it is ``normal ``.
136
+ then if there is a ``checksums.ini `` file, it is ``normal `` or `` wheel `` .
123
137
Otherwise, if it has an ``spkg-install `` script, it is a ``script `` package,
124
138
and if it does not, then it is a ``dummy `` package.
125
139
@@ -584,7 +598,7 @@ For example, the ``scipy`` ``spkg-check.in`` file contains the line
584
598
585
599
exec python3 spkg-check.py
586
600
587
- All normal Python packages must have a file ` ` install-requires.txt` ` .
601
+ All normal Python packages and all wheel packages must have a file ` ` install-requires.txt` ` .
588
602
If a Python package is available on PyPI, this file must contain the
589
603
name of the package as it is known to PyPI. Optionally,
590
604
` ` install-requires.txt` ` can encode version constraints (such as lower
@@ -778,7 +792,7 @@ Where packages are installed
778
792
The Sage distribution has the notion of several installation trees.
779
793
780
794
- ` ` $SAGE_VENV ` ` is the default installation tree for all Python packages, i.e.,
781
- normal packages with an ` ` install-requires.txt` ` and pip packages
795
+ normal packages with an ` ` install-requires.txt` ` , wheel packages, and pip packages
782
796
with a ` ` requirements.txt` ` .
783
797
784
798
- ` ` $SAGE_LOCAL ` ` is the default installation tree for all non-Python packages.
@@ -1199,6 +1213,9 @@ must meet the following requirements:
1199
1213
1200
1214
- **Build Support**. The code must build on all the fully supported
1201
1215
platforms (Linux, macOS, Cygwin); see :ref:`chapter-portability_testing`.
1216
+ It must be installed either from source as a normal package,
1217
+ or as a Python (platform-independent) wheel package, see
1218
+ :ref:`section-package-source-types`.
1202
1219
1203
1220
- **Quality**. The code should be "better" than any other available
1204
1221
code (that passes the two above criteria), and the authors need to
0 commit comments