Shipping 3.7 wheels

Gregory Szorc gregory.szorc at gmail.com
Wed Jan 20 17:53:27 CST 2016


On Wed, Jan 20, 2016 at 3:35 PM, Matt Mackall <mpm at selenic.com> wrote:

> 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.
>

Oh, I assumed you were uploading source archives to PyPI. I see from
https://pypi.python.org/pypi/Mercurial/ that a few others have access. So I
guess it is one of them.


>
> > 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
>

I think this is acceptable for now. It's effectively how we do e.g. Windows
installers for example.


> - 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.
>

I wasn't suggesting you open a test account. I was just posting the wheels
so others could install them and report issues.

Would you feel comfortable giving me access rights to PyPI so I can upload
Windows wheels? If not, perhaps we could whip up a Digital Ocean or similar
Windows environment for building the wheels and putting them somewhere
where a trusted individual could upload them. Of course, once we do that we
can automate the whole release process most likely.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20160120/2fe5321f/attachment.html>


More information about the Mercurial-devel mailing list