Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop using legacy bdist_wininst #614

Closed
wants to merge 3 commits into from
Closed

Conversation

hugovk
Copy link
Contributor

@hugovk hugovk commented Feb 3, 2020

The bdist_wininst file type is deprecated by PyPI:

It will probably be removed soon:

@p
Copy link
Member

p commented Feb 4, 2020

HI @hugovk , thank you for the patch.

I actually use the exe/msi artifacts for testing pycurl, as follows:

  1. Install all supported pythons (3.5-3.8 in 32/64 bits, 8 total)
  2. Build all pycurl packages
  3. Pick a package (say 3.7/64)
  4. Execute this package's installer, either exe or msi
  5. The installer locates where the respective python version is installed and offers to install itself there, systemwide.
  6. I can now run the respective python binary and test that the package is functional by executing import pycurl and using it.
  7. I uninstall the package using the windows add/remove programs functionality.

If exe/msi artifacts are no longer supported, what is the replacement artifact/workflow/tool that satisfies the following requirements:

  1. It installs pycurl globally into my chosen python interpreter.
  2. It provides a way to uninstall pycurl completely from that interpreter.

@hugovk
Copy link
Contributor Author

hugovk commented Feb 5, 2020

Looks like PEP 527 suggests bdist_egg, but I'm not an expert in Windows packaging, so I suggest checking the PEP and asking at Discourse or Warehouse, perhaps here:

https://discuss.python.org/t/deprecate-bdist-wininst/1929?u=hugovk

@p
Copy link
Member

p commented Feb 5, 2020

Since this PR proposes removing functionality which I use, I am not able to merge this PR without an alternative being put forth.

Assorted notes from me reading the various related issues/discussions:

  1. It was mentioned that very few pypi projects upload msi binaries. IIRC this is because, at least for pycurl, either twine or pypi rejects the ones that are produced by pycurl's setup.py. I don't know what is needed to upload msi binaries successfully but I expect the reason they have such a low popularity is because they are largely broken (as far as pypi uploads are concerned).

  2. Binaries produced by pycurl's setup.py and binaries uploaded to pypi do not have to be the same set of files. For example, already I do not upload msi files to pypi (because that doesn't work) but these files are published on and are downloadable from bintray/the downloads repo. As such a change in what pypi accepts does not necessarily lead to what pycurl's setup.py should generate.

@hugovk
Copy link
Contributor Author

hugovk commented Feb 5, 2020

Sure, this PR was mainly to share info about the upcoming changes, so feel free to close or modify it to suit this project's needs.

In addition to PyPI, there are plans to remove/stub out bdist_wininst from CPython. They are asking for feedback by the end of the week from anyone who has strong opinion on keeping it:

@p
Copy link
Member

p commented Feb 6, 2020

Thank you, I posted there.

@p
Copy link
Member

p commented Feb 6, 2020

Since production of exe/msi installers is apparently not going away, let's keep this functionality in pycurl.

@p p closed this Feb 6, 2020
@hugovk
Copy link
Contributor Author

hugovk commented Feb 6, 2020

I understood that that there's no current plan to remove bdist_msi (to produce msi), but bdist_wininst (to produce exe) will be going away.

@p
Copy link
Member

p commented Feb 10, 2020

OK, in this case, when exe targets no longer work let's remove the command used to produce them.

@hugovk
Copy link
Contributor Author

hugovk commented Feb 10, 2020

👍

@hugovk hugovk deleted the patch-1 branch February 10, 2020 07:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants