classification
Title: distutils: Remove bdist_wininst (Windows .exe installers) in favor of bdist_wheel (.whl)
Type: Stage: resolved
Components: Library (Lib) Versions: Python 3.9
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: p-ganssle, vstinner
Priority: normal Keywords: patch

Created on 2020-02-03 13:19 by vstinner, last changed 2020-03-25 16:31 by vstinner. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 18329 closed vstinner, 2020-02-03 13:25
Messages (5)
msg361290 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-02-03 13:19
The distutils bdist_wininst has been deprecated in Python 3.8 by bpo-37481 in favor of bdist_wheel.

See "Deprecate bdist_wininst" discussion:
https://discuss.python.org/t/deprecate-bdist-wininst/1929

I now propose to remove it from the Python code base to ease the Python maintenance.

One of the project project which used .exe Windows installer was Pillow, but this project doesn't publish .exe installers since Pillow 6.2.0 (October 2019):

* "No more deprecated bdist_wininst .exe installers #4029 [hugovk]"
* https://github.com/python-pillow/Pillow/pull/4029

Attached PR removes bdist_wininst: use bdist_whell instead.
msg361291 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-02-03 13:32
I created a topic in the Packaging discourse to announce this removal:
https://discuss.python.org/t/remove-distutils-bdist-wininst-command/3115

I plan to merge my PR at the end of the week, except if someone speaks out to request to keep the deprecated command.
msg361299 - (view) Author: Paul Ganssle (p-ganssle) * (Python committer) Date: 2020-02-03 14:24
Per my reasoning in the discourse thread, I disagree with this move. I think that this should be handled in setuptools, which is where we tend to handle breaking changes or even enhancements to distutils.

If we do this in setuptools, we'll get a backport of the deprecation and removal back to 3.5, and it will make it easier to maintain setuptools.

The deprecation of bdist_wininst in Python 3.8 already made it harder to maintain setuptools with no real benefit to the CPython project, I would prefer to not repeat this mistake.
msg361478 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-02-06 11:14
Small update, my setuptools change has been merged:

" Add support for installing scripts in environments where bdist_wininst is missing (i.e. Python 3.9)."

https://github.com/pypa/setuptools/commit/5d17586a56077dfa3109a5861cf0ff579095a42e
msg364998 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2020-03-25 16:31
There is no clear consensus towards removing distutils bdist_wininst command. I close this PR for now, it's too late for Python 3.9 (feature freeze is coming soon). We can reconsider removing it once setuptools will be more ready for this removal.
History
Date User Action Args
2020-03-25 16:31:27vstinnersetstatus: open -> closed
resolution: rejected
messages: + msg364998

stage: patch review -> resolved
2020-02-06 11:14:41vstinnersetmessages: + msg361478
2020-02-03 14:24:21p-gansslesetnosy: + p-ganssle
messages: + msg361299
2020-02-03 13:32:50vstinnersetmessages: + msg361291
2020-02-03 13:25:42vstinnersetkeywords: + patch
stage: patch review
pull_requests: + pull_request17702
2020-02-03 13:19:57vstinnercreate