[TIP] Mock 0.8.0b4: easy_install and pip treat differently...

Michael Foord fuzzyman at voidspace.org.uk
Tue Dec 20 17:44:53 PST 2011


On 20 Dec 2011, at 23:42, Chris Withers wrote:

> On 20/12/2011 20:29, Carl Meyer wrote:
>> Pip does not prefer "released packages" to beta releases; it has no
>> algorithm for telling the difference. What's happening here is that
>> mock's download page includes this link:
>> 
>> http://www.voidspace.org.uk/downloads/mock-0.8.0beta4.tar.gz#egg=mock-dev
>> 
>> The sdist filename here claims that this is mock version 0.8.0beta4, but
>> the #egg fragment claims that it is mock version "dev". It seems that
>> easy_install gives the filename preference, whereas pip gives preference
>> to the explicit fragment.
>> 
>> You can get pip to install this version by requesting "mock==dev".
>> 
>> If Michael makes available another link to that tarball without the egg
>> fragment, pip would be able to find it as "0.8.0beta4" - this would also
>> have the effect that it would be considered the latest version available
>> and thus installed by default (like easy_install does), which may not be
>> what he wants.
> 
> Well, I guess my preferences, in order, would be:
> 
> - release Mock 0.8.0, it's awesome, what's stopping a full release? ;-)
> 
> - drop the #egg=mock-dev fragment
> 
> - provide two links, one with the fragment, one without
> 


Most of my users are using pip. With the dev fragment as it is the default version, for "pip install mock", is the latest stable version (0.7.2). For users who want the in development version they can do "pip install mock==dev". This works well and is what I want.

The fact that easy_install decides to install a dev / beta version as the latest version is its fault. Several times I've had trouble with easy_install spidering links and just installing *completely the wrong bloody thing* - so I'm done with bending over backwards for its crazy semantics. 

If someone can suggest a simple answer that retains the pip semantics (latest stable as default with dev available on demand) and still satisfy easy_install I'm all ears.

What is holding back a final release of mock is time to complete the documentation. This is a big release, with lots of good changes, and consequently lots of doc work before I can release. There are also a couple of fixes in the repo (mainly performance improvements) so I should do a beta 5 as well.

Unfortunately if you're relying on features in the dev version of mock then for the moment you'll have to use mock==dev in your tox.ini. Sorry.

(I can't do PyPI releases of 0.8 betas as then *pip* will choose them by default instead of the stable version.)

All the best,

Michael



> Michael, anything I can do to help?
> 
> cheers,
> 
> Chris
> 
> -- 
> Simplistix - Content Management, Batch Processing & Python Consulting
>           - http://www.simplistix.co.uk
> 


--
http://www.voidspace.org.uk/


May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing 
http://www.sqlite.org/different.html








More information about the testing-in-python mailing list