The wheel build tag is only stored in the filename. The feature is not well tested.
On Thu, Jan 9, 2014 at 7:35 AM, Donald Stufft <don...@stufft.io> wrote: > > On Jan 9, 2014, at 4:29 AM, Bohuslav Kabrda <bkab...@redhat.com> wrote: > >> Hi all, >> the wheel package format, as defined in pep 427 specifies, that wheel name >> can contain an optional "build tag" [1]. This build tag is supposed to be a >> tie-breaker if two wheels have the same version. I decided that I would try >> to send a patch to upstream wheel project [2] to support adding this tag. >> I have a few questions and maybe someone here (Nick?) can help me with this: >> - Where is the "build tag" supposed to be stored in a built distribution? >> The pep doesn't seem to specify this. Should it be somewhere in METADATA or >> pydist.json? >> - How should the bdist_wheel command be told to use a "build tag"? By using >> some commandline option, e.g. "--build-tag 3"? >> >> My motivation for doing this is: >> For Fedora's Python 3.4 packaging, I'll have to unbundle the bundled >> setuptools and pip wheels and make ensurepip work differently. The best >> approach seems to be to make python3 require setuptools and pip (in other >> words, they'll always install along), so if user runs "python3 -m >> ensurepip", ensurepip won't need to do anything. This gets tricky if the >> same command is run in a virtualenv, since I don't have the bundled wheels. >> I've discussed this with Nick and we've agreed that the best solution would >> be to recreate the wheels from the system installed RPMs dynamically and >> then installing these wheels into virtualenv (I've already done some >> progress on this front with a small project that I call rewheel [3]). I'm >> now working on a downstream patch of ensurepip, that would use rewheel to do >> this. >> Now let me explain a bit about how we package setuptools/pip in Fedora. When >> there is a security issue or just a bug in a package, we don't upgrade it to >> latest upstream version in stable Fedora releases, since as a distribution >> we try to maintain API/ABI stability. We rather bump the "release" (which is >> sort of downstream version of the package). E.g. if there is a bug in >> package pip-%{version}-%{release}, we fix it and bump it to >> pip-%{version}-%{release+1}. But that means that if we fix a package and >> someone runs "python -m ensurepip --upgrade", he won't get the fix into >> virtualenv because the version is the same. That's why I'd like to use >> Fedora's release as the "build tag", so that this use case would work. I >> hope this all makes some sense :) >> >> >> Thanks! >> >> -- >> Regards, >> Bohuslav "Slavek" Kabrda. >> >> [1] http://www.python.org/dev/peps/pep-0427/#file-name-convention >> [2] https://bitbucket.org/dholth/wheel/ >> [3] https://github.com/bkabrda/rewheel >> _______________________________________________ >> Distutils-SIG maillist - Distutils-SIG@python.org >> https://mail.python.org/mailman/listinfo/distutils-sig > > I’m not entirely sure the build tag actually works at this point in time. It > might though. > > Another option would be to use the local version number as specified in > PEP440. So > if you have pip 1.5 bundled, and you change something, you make it pip 1.5-1, > then if > another change comes out you make it pip 1.5-2, etc. Again this might not > work exactly > right at the moment as this is a case that hasn’t been well tested yet and it > might be > seen as a pre-release. > > ----------------- > Donald Stufft > PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA > > > _______________________________________________ > Distutils-SIG maillist - Distutils-SIG@python.org > https://mail.python.org/mailman/listinfo/distutils-sig > _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig