On Wed, Oct 21, 2015 at 11:42 AM, Chris Barker <chris.bar...@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
_______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org https://mail.python.org/mailman/listinfo/distutils-sig