Shipping 3.7 wheels

Matt Mackall mpm at selenic.com
Wed Jan 20 17:35:08 CST 2016


On Wed, 2016-01-20 at 13:46 -0800, Gregory Szorc wrote:
> On Wed, Jan 20, 2016 at 1:02 PM, Matt Mackall <mpm at selenic.com> wrote:
> 
> > On Mon, 2016-01-18 at 11:42 -0800, Gregory Szorc wrote:
> > > On Fri, Jan 15, 2016 at 11:25 AM, Matt Mackall <mpm at selenic.com> wrote:
> > > 
> > > > On Thu, 2016-01-14 at 13:57 -0800, Gregory Szorc wrote:
> > > > > I /think/ packaging improvements in this cycle finally put us in
> > position
> > > > > to offer binary wheels for Windows and OS X starting with the 3.7
> > > > release.
> > > > > (We can't offer binary wheels for Linux because, well, there still
> > isn't
> > > > a
> > > > > good answer for binary wheel compatibility on Linux.) The advantage
> > of
> > > > > binary wheels is we can upload them to PyPI and people can `pip
> > install
> > > > > Mercurial` and get the C extensions without needing to have a working
> > > > > compile environment.
> > > > > 
> > > > > There /might/ be an issue with the hg version string. I think wheels
> > are
> > > > > more strict about the version format and may not like our "+1"
> > > > annotation.
> > > > > This should be easily correctable with some setup.py muckery.
> > > > > 
> > > > > The bigger issue is how to produce and distribute them. I'm not sure
> > what
> > > > > changes to the release process need to be made to support generating
> > > > wheels.
> > > > > 
> > > > > What needs to be done for us to produce wheels and upload them to
> > PyPI as
> > > > > part of the release process?
> > > > 
> > > > I haven't the foggiest. I have a hacked[1] tool named twine in my
> > release
> > > > script
> > > > and that's just about the sum total of my interaction with PyPI over
> > the
> > > > past
> > > > decade.
> > > > 
> > > > Probably the best way forward is for someone (not it!) to make a test
> > > > package on PyPI to experiment with wheel uploads and report back.
> > > > 
> > > > [1] The capitalization of the package on PyPI and setup.py disagree
> > > > causing stock twine to puke.
> > > > 
> > > > 
> > > I created an account on the test pypi service and uploaded wheels for
> > > Windows. https://testpypi.python.org/pypi/mercurial
> > > 
> > > In theory you can point pip at this PyPI instance, but I haven't figured
> > > out how to do that yet. (`pip -i https://testpypi.python.org/pypi/
> > install
> > > mercurial` is complaining with "Could not find a version that satisfies
> > the
> > > requirement install (from versions: ) No matching distribution found for
> > > install"). But e.g. `pip install
> > > 
> > https://testpypi.python.org/packages/cp27/m/mercurial/mercurial-3.7rc1-cp27-
> > no
> > > ne-win_amd64.whl`
> > > should work.
> > > 
> > > Ping me with your test PyPI username and I'll add you as a maintainer for
> > > the "mercurial" project there (they do wipe the database every so often).
> > 
> > Umm.. why? I'm not able to/going to build wheels?
> > 
> > 
> The whole point of my original e-mail was to figure out how we would start
> creating and distributing wheels to end users.

I understood that. And my response was: I have no idea about PyPI at all,
someone needs to figure it out. 

> I understand you don't have a Windows machine (and possibly a Mac as well).
> So who needs to change what so we can produce wheels and upload them to
> PyPI as part of the release process?

So there are basically two ways we can do this:

- I upload a source release, other parties upload wheels for various platforms
after
- We somehow stage everything to be uploaded at once

I have no idea how we'd manage that latter in a timely fashion without a multi-
OS build farm in place, so I presume we're going to try to do the former. If
you're suggesting that I open a test account and upload a source tar.gz so you
can see if you can do a follow-up upload of a binary package.. that wasn't
obvious. Is that what you're suggesting? You can probably emulate this scenario
well enough without waiting for me.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list