[Distutils] Parallel installation of incompatible versions

Nick Coghlan ncoghlan at gmail.com
Tue Mar 19 18:02:42 CET 2013


On Mon, Mar 18, 2013 at 3:04 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> The second part has to do with a possible way to organise the
> versioned installs: group them by the initial fragment of the version
> number according to semantic versioning. For example, define a
> "versioned-packages" directory that sits adjacent to "site-packages".
> When doing the parallel install of CherryPy2 the actual *code* would
> be installed into "versioned-packages/2/", with the cherrypy2.pth file
> pointing to that directory. For 0.x releases, there would be a
> directory per minor version, while for higher releases, there would
> only be a directory per major version.

Jason pointed out this wouldn't actually work, since you might have
spurious version conflicts in this model (e.g. if you require v2.x of
one dependency, but v3.x of another). So it would need to be 1
directory per parallel installed versioned package. The "but what
about long sys.paths?" problem can be dealt with as a performance
issue for the import system.

Cheers,
Nick.

>
> The nice thing though is that Python wouldn't actually care about the
> actual layout of the installed versions, so long as the *.pth files in
> the dist-info directories described the mapping correctly.
>
> Cheers,
> Nick.
>
> --
> Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list