@@ -1099,6 +1099,13 @@ almost equivalent packages from NuGet (the latter does not include Tcl/Tk,
1099
1099
making them significantly incompatible for some users, but this is likely okay
1100
1100
for especially old versions).
1101
1101
1102
+ As of this PEP's acceptance, the plan is to create packages for all versions of
1103
+ Python 3.10.0 onwards (including patch releases, but excluding pre-releases), so that all non-EOL releases can
1104
+ be fully installed using PyManager. Versions from Python 3.5.0 onwards (excluding
1105
+ pre-releases) will directly reference the packages on NuGet, making them easily
1106
+ available in reduced form. Neither approach requires rebuilding the existing
1107
+ releases, nor are any changes required to the sources of those releases.
1108
+
1102
1109
1103
1110
Administrator installs
1104
1111
----------------------
@@ -1149,6 +1156,41 @@ substitution of 64-bit binaries. As PyManager runs as a standalone executable,
1149
1156
this is not a necessary feature for the manager.
1150
1157
1151
1158
1159
+ Test suite and debug symbols
1160
+ ----------------------------
1161
+
1162
+ The existing installer optionally allows installation of the Python standard
1163
+ library test suite, and optional installation of debug symbols. Neither of these
1164
+ are necessary for most users, but they are convenient for some. Preliminary
1165
+ testing shows that omitting the test suite and debug symbols saves about 60% of
1166
+ the size of the compressed package (from 46MB to 18MB).
1167
+
1168
+ The "default" CPython packages installed by PyManager will therefore not include
1169
+ the test suite or the debug symbols. However, there will be a second set of
1170
+ packages that do include these extras, grouped under ``PythonTest `` (as opposed
1171
+ to the default, ``PythonCore ``). For example, where ``py install 3.13 `` would
1172
+ install the default, ``py install PythonTest\\3.13 `` would install a second
1173
+ runtime with the additional files (which can either be launched with ``py
1174
+ -V:PythonTest\\3.13 ``, or simply ``py -V:3.13 `` if no equivalent ``PythonCore ``
1175
+ version is installed).
1176
+
1177
+ Debug binaries are no longer distributed, and all other optional features are
1178
+ included by default.
1179
+
1180
+
1181
+ Global pip command
1182
+ ------------------
1183
+
1184
+ Unlike the current Windows Store install, no global ``pip `` command is included
1185
+ (the traditional installer also does not include a global ``pip `` command,
1186
+ unless the options to modify ``PATH `` and to install pip are selected; the first
1187
+ of these is off by default). This impacts global installation of packages, which
1188
+ is already discouraged, but has no impact on activated virtual environments.
1189
+
1190
+ The existing recommendation remains, which is to run ``python -m pip `` or
1191
+ ``py -V:<TAG> -m pip `` to launch pip.
1192
+
1193
+
1152
1194
Security Implications
1153
1195
=====================
1154
1196
@@ -1672,47 +1714,6 @@ We could also detect the metadata and warn if the selected runtime does not
1672
1714
match its requirement, but this is not part of the initial proposal.
1673
1715
1674
1716
1675
- Open Issues
1676
- ===========
1677
-
1678
- Generate packages for old versions
1679
- ----------------------------------
1680
-
1681
- At present, we can install versions of Python back to 3.5 from the NuGet feed.
1682
- These are identical to the traditional installer releases of the same versions,
1683
- but do not include Tkinter, IDLE, documentation, or the test suite. However, it
1684
- is very little work (and no additional storage space) to use them for older
1685
- releases.
1686
-
1687
- New binaries releases will generate new packages, even for already released
1688
- versions (currently 3.12 and 3.13). So these will exist. The open issue is
1689
- whether we go back through old releases and generate full PyManager packages for
1690
- them all, and how far back to go. This is merely repackaging, and does not
1691
- require rebuilding or modifying the release.
1692
-
1693
-
1694
- Include test suite in PyManager packages
1695
- ----------------------------------------
1696
-
1697
- The test suite consumes the majority of the size of our current distribution,
1698
- but is not intended to be used by most of our users. By omitting it from the
1699
- standard PyManager package, all downloads become smaller and faster, at the cost
1700
- of some users having to obtain the test suite in another way (such as building
1701
- from source).
1702
-
1703
- It seems obviously preferable to have some way to access the exact test suite
1704
- intended for a particular build. So the question is whether to include it by
1705
- default (there are no optional components anymore), to publish it independently
1706
- (for manual download as a ZIP file), or to publish a second feed of packages
1707
- that include both the runtime and the test suite.
1708
-
1709
-
1710
- Footnotes
1711
- =========
1712
-
1713
- TODO: Collate references
1714
-
1715
-
1716
1717
Copyright
1717
1718
=========
1718
1719
0 commit comments