[Distutils] PEP 426: proposed metadata caching convention

Nick Coghlan ncoghlan at gmail.com
Mon Feb 25 16:10:43 CET 2013

On Tue, Feb 26, 2013 at 12:46 AM, Daniel Holth <dholth at gmail.com> wrote:
> I like the idea of making the installer a little smarter for backwards
> compat. reasons. Wouldn't the specific cached files generated be the sole
> domain of a post-install hook provided by pkg_resources?

I'm not a fan of post-install hooks - that way lies setup.py. If
people want to run arbitrary code at install time, they can publish a
platform specific installer.

*Maybe* we can go down that path in the Python 3.5 timeframe, but for now, no.

> The version is not parsed from METADATA when it can be read from the
> .dist-info directory's filename (true when it is not in development). When
> it is read, METADATA is only parsed until the line that starts with Version:

I forgot the version was already in the directory name when I
suggested version.txt, so ignore that part.

> It would be a win to evaluate the environment markers at install time. For
> my web applications that evaluate many .dist-info directories runtime
> parsing is good enough for me, but startup time pressure is higher for
> console scripts.

Yeah, that's where I realised it was a useful idea for more than just
backwards compatibility reasons, at least for requires-dist.txt - keep
METADATA as the original cross-platform info, cache the installation
specific version.

entry-points.txt is pure backwards compatibility, though. The only
reason I didn't suggest reusing the setuptools name for the file is
because I want the __cache__ in the name to clearly identify the files
the installer derives from METADATA rather than the ones defined in
PEP 376 or installed as part of the distribution.


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

More information about the Distutils-SIG mailing list