[Distutils] setuptools 0.6a9 is released
Phillip J. Eby
pje at telecommunity.com
Thu Jan 5 02:37:35 CET 2006
At 01:23 PM 1/4/2006 -0600, Ian Bicking wrote:
>Phillip J. Eby wrote:
>>If that's all you're looking for, it wouldn't be hard to make resolve()
>>do it. Of course, that doesn't tell you the full story if there are more
>>layers of dependencies, but I think maybe a detailed dependency analysis
>>tool should be part of the "nest" command suite in the setuptools 0.7
>>series. Something like "nest analyze 'SomeProject>0.8'" to dump out all
>>the dependencies and how they are currently being met and/or conflicting.
>
>Since I'm requiring packages from places other than requires.txt (e.g.,
>config files) the nest command seems like it would be limited in what it
>could provide. Not useless, but limited. Runtime logging would be more
>complete in those situations. Or maybe just some way to indicate what
>requirements a config file implies, or otherwise wrap that analysis.
Note that the resolve() method of WorkingSet does this - it returns a list
of distributions, or raises either VersionConflict or
DistributionNotFound. Unlike require(), it does *not* alter the contents
of the WorkingSet you call it on, and it also allows you to specify an
'installer' callback that will be invoked for distributions that aren't found.
> If I want to analyze a paste.deploy config file, it really comes down
> to parsing out each section, and creating a list of requirements for each
> section, and then displaying the analysis results of that list. Then I'm
> guessing there would be an entirely different command that would analyze
> paste.deploy config files.
>
>Any particular plans for nest? We'd talked briefly about paster serving
>as a basis (with some portions removed and put in paste.deploy, where they
>probably already belong). Mostly it's just command-line UI, but the one
>more architectural issue is how plugins are picked up. I'm pretty happy
>with the .egg-info config file (paster_plugins.txt) that lists
>requirements (frameworks, typically) of a package, and entry points are
>brought in based on that. Though, now that I think about it, requires.txt
>might be perfectly usable for that (recursively bringing in all
>requirements, or just the immediate requirements? -- I'm thinking just
>immediate). Anyway, this applies to a package in development; I haven't
>really thought through how it applies to an installed package. Commands
>could still be installed globally, but for many commands that's not
>appropriate.
I'm not sure I followed everything you said, but note that entry point
definitions can list "extras" that will be require()'d when the entry point
is loaded, and it is recursive. So, I anticipate that some "nest" commands
will list extras that would be installed on demand, similar to what
buildutils does. So, if for example somebody wrote a web UI for doing
package management based on TurboGears or Paste, running "nest webui" could
first download and install the needed packages before firing up the UI. :)
More information about the Distutils-SIG
mailing list