@@ -6,10 +6,8 @@ Discussions-To: https://discuss.python.org/t/pre-pep-a-python-installation-manag
66Status: Draft
77Type: Standards Track
88Topic: Release
9- Created: 12-12-2024
10- Python-Version: N/A
11- Post-History: 18-12-2024
12- Resolution: TBD
9+ Created: 21-Jan-2025
10+ Post-History: 18-Dec-2024
1311
1412
1513Abstract
@@ -246,7 +244,7 @@ Challenges
246244----------
247245
248246There are numerous challenges we face with the current set of installers,
249- which largely break down into two categories: mismatched or unachievable
247+ which largely break down into two categories: mismatched or unachievable
250248user expectations, and general unreliability.
251249
252250The traditional installer has the highest level of unreliability. The Windows
@@ -781,65 +779,65 @@ The initial schema is shown below::
781779 {
782780 # Should be 1.
783781 "schema": int,
784-
782+
785783 # Unique ID used for install detection/side-by-side.
786784 # Must be valid as a filename.
787785 "id": str,
788-
786+
789787 # Name to display in the UI
790788 "displayName": str,
791-
789+
792790 # Version used to sort packages. Also determines prerelease status.
793791 # Should follow Python's format, but is only compared among releases
794792 # with the same Company.
795793 "sort-version": Version,
796-
794+
797795 # Specifies platforms to consider this package for.
798796 # Initially, 'win32' is the only supported value. Others may be
799797 # defined in the future. This condition is evaluated silently, and
800798 # is not intended to replace platform requests in "install-for".
801799 "platform": [str],
802-
800+
803801 # Company field, used for filtering and displayed as the publisher.
804802 "company": str,
805-
803+
806804 # Default tag, mainly for UI purposes.
807805 # It should also be specified in 'install-for' and 'run-for'.
808806 "tag": str,
809-
807+
810808 # List of tags to install this package for. This does not have to be
811809 # unique across all installs; the first match will be selected.
812810 "install-for": [str],
813-
811+
814812 # List of tags to run this package for. Does not have to be unique
815813 # across all installs; the first match will be selected. The target
816814 # is the executable path relative to the root of the archive.
817815 # Explicit args (optional) are inserted before user args.
818816 "run-for": [{"tag": str, "target": str, "args": [str], "windowed": int}, ...],
819-
817+
820818 # List of global CLI aliases to create for this package. Does not
821819 # have to be unique across all installs; the first match will be
822820 # created.
823821 "alias": [{"name": str, "target": str, "windowed": int}, ...],
824-
822+
825823 # List of shortcuts to create for this package. Additional keys on
826824 # each instance are allowed based on the value of 'kind'.
827825 # Initially, 'kind' supports the following values:
828826 # * 'pep514' - other keys define registry values to set
829827 # * 'start' - generate shortcuts in the user's Start Menu
830828 # * 'uninstall' - generate an Add/Remove Programs entry
831829 "shortcuts": [{"kind": str, ...}, ...]
832-
830+
833831 # Default executable path, relative to the root of the archive.
834832 # Usually the values from 'run-for' will be used instead, and this
835833 # is mainly for display purposes.
836834 "executable": str,
837835 # Default executable args
838836 "executable_args": [str],
839-
837+
840838 # URL to download the package archive from
841839 "url": str,
842-
840+
843841 # Optional set of hashes to validate the download. Hashes are stored
844842 # as hex digests. Any hash supported by hashlib without OpenSSL is
845843 # permitted.
@@ -848,7 +846,7 @@ The initial schema is shown below::
848846 }
849847 }
850848 ],
851-
849+
852850 # Full or partial URL to the next index file
853851 "next": str,
854852 }
@@ -1177,12 +1175,12 @@ text:
11771175 the script you are launching (if any). If you have a preference for a
11781176 particular version, you can specify it with ``py -V:<version>`` followed
11791177 by the rest of your command.
1180-
1178+
11811179 To install a version of Python without running any command, use ``py install
11821180 <version>``. You can see all of your installs with ``py list`` and remove them
11831181 with ``py uninstall <version>``. Run ``py help`` to see all the options that
11841182 are available.
1185-
1183+
11861184 Because each version of Python will be shared by all your projects, we
11871185 recommend using virtual environments. This will usually be created for a
11881186 particular Python version by running ``py -V:<version> -m venv .venv``, and
@@ -1203,7 +1201,7 @@ these lines:
12031201 To install and use our application, first install Python following the
12041202 guidance for your operating system at https://docs.python.org/using/. Then,
12051203 create a virtual environment and use 'pip' to install.
1206-
1204+
12071205 ``python3 -m venv .venv``
12081206 ``source .venv/bin/activate`` or ``.venv\Scripts\Activate`` (on Windows)
12091207 ``python -m pip install OurAwesomePackage``
@@ -1236,9 +1234,9 @@ We suggest an explanation like this:
12361234
12371235 Before you uninstall the Python install manager, you'll want to uninstall any
12381236 runtimes that you added. This can be done easily with the "purge" option:
1239-
1237+
12401238 ``py uninstall --purge``
1241-
1239+
12421240 This will remove all installs and any shortcuts that would otherwise be left
12431241 behind. If you already removed the manager, you can reinstall it and run the
12441242 above uninstall command again to clean up. Individual runtimes can be
@@ -1270,9 +1268,9 @@ lines:
12701268
12711269 Our distribution can be installed on Windows using the Python Install Manager
12721270 (include link) by referencing our index:
1273-
1271+
12741272 ``py install --source <your index URL here> latest``
1275-
1273+
12761274 This index contains all our versions. Use ``py list --source <URL>`` to
12771275 see everything that is available.
12781276
0 commit comments