[Pythonmac-SIG] Pack Man issues on OS X 10.3.4
Kevin Ollivier
kevino at tulane.edu
Wed Jun 9 12:38:22 EDT 2004
Hi Ronald,
On Jun 9, 2004, at 7:56 AM, Ronald Oussoren wrote:
>
> On 7-jun-04, at 14:38, has wrote:
>
>> Bob Ippolito
>>
>> [snip 'Bill Cosby' moment]
>>
>>> PackageManager was designed to have as simple of an *implementation*
>>> as possible, and it pretty much does. You do a lot of hand-waving
>>> about how awful it is, but the reality is that it is VERY simple and
>>> works pretty well. The GUI application is horrible and has lots of
>>> bugs, but that is easy to fix. The underlying system doesn't have
>>> very many real problems.
>>
>> My problem isn't that it's inherently awful, it's that it's
>> inherently pointless. 1. Expending 100% of labour creating a solution
>> that caters to <1% of module installations if not an efficient use of
>> extremely scarce, and therefore extremely valuable, manpower and
>> brainpower resources (i.e. yours, Jack's and the other core MacPython
>> developers). 2. Its administration model is inherently non-scalable,
>> being utterly dependent on the good will and hard work of a few elite
>> MacPython gurus to maintain its custom databases.
>
> PackMan tries to provide an easy to use interface for installing
> *tested* packages. I hope it
> will grow an easy to use interface for maintaining a database and for
> doing coopereative management of the database. The debian projects
> seems to manage this just fine for an entire
> Linux distribution :-)
Yes, but that's because they've got a good number of people using
Debian testing/unstable. If they had no one testing packages, and had
to QA all packages with no help from the outside world, their stable
packages would probably be based on even older packages than it is now.
;-) The point, IMHO, is that while a few gurus can maintain "the
database" and make sure all contributions are on the up-and-up, I'm not
sure it's a good idea to put all the work of developing packages,
testing and QA on their shoulders alone, as they can't test on a very
large number of machines and we'll end up having so few QA packages
that it won't really be much of a Package Manager. Instead, there
should be a "testing" or "unstable" branch built into PM (which people
can enable after clicking yes to an "ARE YOU SURE!?" type of dialog) so
that people like myself can install packages, report any problems, and
not have to wait until everything is QA'd to use it. I'll be happy to
test a package if it means getting access to the package faster, and by
all accounts, this strategy ensures a lot of package testing for the
Debian folks.
So I don't think it means we'll end up with a bunch of "non-QA'd"
packages in the database, rather, the packages would get QA'd faster.
Build/install problems are caught by the software itself, so the error
could be forwarded directly to the "scapegoat" along with the version
of Python/OS X they are using, and I think that would actually speed up
the diagnosis and resolution of problems. We could also implement ways
of keeping track of the number of successful installs on Jaguar,
Panther, etc.
BTW, as for the interface, for the Windows/Linux version of PackMan (I
guess Mac will be using Cocoa), I plan on providing a GUI wrapper to
Bob's buildpkg script so that people can "submit" packages for
inclusion into the database, and once a scapegoat properly ensures the
package installs on their machine, it goes into the "testing/unstable"
branch. I think this would encourage more contributions and help build
the database. Hopefully I will have more time to do contributions now
that summer is here and I have *finally* finished my schooling. ;-) But
we need to get wxPython 2.5.2 out first, which should be in the next
week or two.
> What you seem to forget is that there is a difference between theory
> and practice. In theory
> installing a package is as easy as 'tar zxf some-packaget.tgz && cd
> some-package && python setup.py install'. In practice, there are a
> number of interesting packages where you have to modify setup.py or
> some other configuration file before you get a working installation.
>
> An anecdote from the real world: this morning I tried to install the
> perl BerkelyDB package on a Solaris machine at work. The obvious way
> to do this is "perl -MCPAN -e 'install BerkelyDB'", but that didn't
> work because it's config.in contained data that didn't work on this
> particular machine.
This is exactly why I think we need a testing/unstable branch to find
and work out the "corner cases". Of course, making a package work on
Panther or Jaguar alone provides a more homogeneous environment that
needs less testing, but we should still be mindful of the various ways
in which people configure their machines. (Off hand, I can think of
library conflicts due to other versions of libraries installed as well,
etc.) QA'd packages should only blow up if the user REALLY mucked up
their machine, but it should at least provide warnings for problems
with alternative configurations.
[snip]
> The hardware engeneering folks are very serious about creating working
> stuff, I suppose programmers get inspired by that (why else would we
> have the misnomer software engeneering?).
>
> BTW. PyPI isn't very useful as a component of a larger system (at
> least not at the moment). It doesn't seem to have a UI for querying it
> programmaticly, there are no links to downloadable archives (neither
> source nor binary), .... Fixing those issues is at least as much work
> as fixing PackMan, that's without considering the "politics" that
> would be needed to get those changes accepted.
There is room for integration, though, and I think we should visibly
integrate with PyPI if only for political reasons. =) It would show
some goodwill to show we're not really trying to step on the work of
others. In the end, I see it as providing a web-based interface to
PackMan. Source and Binary "links" could be made that fire up PackMan
and have it start fetching the package you clicked on.
Thanks,
Kevin
More information about the Pythonmac-SIG
mailing list