[Distutils] Time for a setuptools_lite??
Wayne Werner
waynejwerner at gmail.com
Wed Oct 21 13:08:45 EDT 2015
On Wed, Oct 21, 2015 at 11:42 AM, Chris Barker <chris.barker at noaa.gov>
wrote:
> But a lot was "wrong" with setuptools -- most prominently (in my mind
> anyway) that it put too many kind-sorta orthogonal stuff into one package:
> building, installing, distributing, managing version, managing
> dependencies, managing non-python resources, (and others??). And we didn't
> like how easy-install installed things :-)
>
> So distribute, and pip, and wheel, and now a new backward compatible
> setuptools was born.
>
> But we still have a bunch of should be orthogonal stuff tangled up
> together. In particular, I find that I often find easy-install getting
> invoked when I don't want ot to, and I get those darn eggs scattered all
> over the place, and easy_install.pth, and ????
>
> I think if I am really careful about what I invoke when, this could be
> avoided, but the reality is that I've been dealing with this for years, and
> am trying desperately to do things the "right, modern" way, and I still get
> ugliness. I seriously doubt that I am alone.
>
> So -- here's my thought:
>
> I think we have it pretty well mapped out what functionality belongs where:
>
> one system for building packages (setuptools?)
> one system for installing packages and managing dependencies (pip)
> one system (really standard) for metadata and distributing packages (wheel)
>
> [I'm just whipping this out off the top of my head, I'm sure we'd need to
> more clearly define what belongs where]
>
> So why not have a setuptools-lite that only does the building? We need to
> keep the full over-burdened setuptools around, because lot sof folks are
> using those features. But for those of us that are doing something fairly
> new, and don't want to use stuff that setuptools "shouldn't" be doing, I'd
> love to have a setuptools-lite that only did what I really need, and was
> guaranteed NOT to accidentally introduce easy_install, etc...
>
> This seems to me to be a way to go forward -- as it is we'll have people
> using setuptools features that they "shouldn't" forever, and never be able
> to move to a cleaner system.
>
> Or maybe a flag:
>
> import setuptools
> setuptools.use_only_modern()
>
> That would make the dependencies easier -- i.e. pip depends on some of
> setuptools being there -- hard to say that it needs either setuptools OR
> setuptools_lite.
>
> Maybe I'm missing something here, but if the goal is for there to be one
> way to do things, let's have a tool chain that only does things one way.....
>
I've been thinking about packaging in general and some of the complaints
that I've seen and heard raised, as well as some that I have harbored
personally, like having a venv per app that I've installed, or my own env
where I install several things.
I actually don't know if I've ran into the issues with easy_install, but I
haven't been involved in installing things enough to know :)
I do like the idea of having distinct pieces to the toolchain, though. Of
course maybe it's also a good idea to have something that integrates all
the pieces, too.
-Wayne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20151021/cc139fd8/attachment-0001.html>
More information about the Distutils-SIG
mailing list