On Thu, Oct 09, 2014 at 07:26 -0700, Paul Moore wrote:
On Thursday, 10 July 2014 02:52:31 UTC+1, Richard Jones wrote:
Is it possible (or desirable) that devpi be able to trigger builds of wheels for packages that it caches? I realise it'd be possible as part of a Jenkins trigger for an upload, but this is for cached packages from PyPI.
What I would like is actually somewhat simpler. I'd like to be able to set things up so that whenever devpi serves an egg or wininst file, it also serves the equivalent wheel (by running wheel convert). The "obvious" way to do this would be whenever devpi mirrors a project from PyPI it (or a hook/plugin) runs wheel convert on any exe and egg files, and caches the resulting wheels as if they had come from PyPI.
Alternatively, and just as good from my POV, would be for the plugin to add the wheels to a local index of my choosing. That would preserve /root/pypi as a PyPI mirror, but I could add my wheel index as an extra index URL, to get the wheels that way.
The second option seems to fit better how things work internally currently. So something like: 1. setup X/pypi_with_wheels, inherit from root/pypi 2. implement a wheel builder plugin that implements a new devpi_server_on_pypi_upload(link) hook which triggers an async script that does download, convert, upload to root/pypi_with_wheels. should be implementable without too much effort. Somehow it'd be nice, i guess, if we could make things more real-time, i.e. you would always see wheel links on the simple page to begin with. There would be wheels made out of sdists, exe, whatnot and they would be created dynamically when actually accessed. This would probably make most sense for per-machine devpi deployments. Implementing this requires probably some more effort. best, holger