Re: [Distutils] formencode as .egg in Debian ??

2005-11-25 Thread David Arnold
--Phillip == Phillip J Eby [EMAIL PROTECTED] writes:

(btw Phillip, thanks muchly for your patience with this thread)

  Phillip If you unpack this as-is, but rename EGG-INFO to
  Phillip foobar.egg-info (today) or foobar-1.2.egg-info (when I
  Phillip release 0.6a9 of setuptools), and the whole tree above is in
  Phillip a directory on sys.path, this egg is good to go.

Ok.

  Phillip I would like to clarify the phrase shipped as an egg,
  Phillip though.  To me, that would mean that the developer is
  Phillip distributing a binary .egg file, and I'm assuming that Debian
  Phillip is primarily interested in *source* packages, being a Free
  Phillip Software distribution.

Debian ships both source packages and binary packages.  It's my
impression (although I could be wrong) that most users use only the
binary packages.

  Phillip (A binary .egg doesn't have to contain source code at all;
  Phillip you can specifically build it with the source stripped if you
  Phillip desire.)

Normal Debian Python (binary) packages include .py files, which are
compiled to both .pyc and .pyo as part of their installation, but C
extensions are shipped as pre-built .so libraries.


  Phillip While I don't advocate changing all Debian Python packages to
  Phillip add this metadata, I do suggest it's a practical way to deal
  Phillip with certain dependency issues.

Assume a developer grabs some setuptools-using Python app, and tries to
run it on a Debian system.  It will look in sys.path for its
dependencies.  If it doesn't find the egg info, as I understand it, the
app will then go out and grab those dependencies via PyPI until it's
able to run.

But, if compatible versions of those dependencies are already installed
as Debian packages *without* egg metadata, will these be ignored?


Even if it was possible for Debian to extend this downloading mechanism
so that it looked for dependencies via apt-get before trying to install
from the raw source or egg or whatever, it would usually be the case
that the user running the newly downloaded Python application would not
have permission to install system packages.

Ultimately, I suppose this isn't a major problem -- if a user (or
developer) runs such an application, they might end up pulling down and
installing a bunch of dependencies in their home directory (that's where
they'd go by default, right?)  But once the app is packaged, both it and
its dependencies will be available for all users, so it'll just be early
adopters who will encounter this.




d


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [Distutils] formencode as .egg in Debian ??

2005-11-24 Thread David Arnold
--Phillip == Phillip J Eby [EMAIL PROTECTED] writes:

  Phillip Python developers would *love* to have Debian manage their
  Phillip packages, they would simply like to be able to verify at
  Phillip runtime that the management has in fact been done.  It's not
  Phillip that we don't trust you, it's just that we're paranoid.  :)

From a Debian perspective, that's strictly your own affair.  Debian
packages just work, and if they don't it's a bug.  There's no need for
anyone other than the packager to worry about this.

Of course, the application is free to do its own verification of this,
but it would need to use an internal mechanism: since there's no *need*
for it, Debian doesn't expose this information from its internal
dependency database.

  Phillip We'd like for Debian to advertise to our packages, precisely
  Phillip what versions of which of our dependencies are installed.

In general, I don't see why packages should care.  Either it works, in
which case there's no problem, or it doesn't, in which case it's a
packaging bug, and it will be fixed.

Of course, when supporting packages fail to provide a stable API, this
means you end up needing to install multiple versions, or have the
application adapt internally.

Supporting the installation and simultaneous use of multiple versions
seems to be a goal of eggs?  FWIW, that's kinda heretical on Unix (which
might explain some of the antipathy).

  Phillip We'd also like for Debian to include the metadata we provided
  Phillip with our packages, when it installs them.

It think that's a reasonable expectation.  So long as Python packages
are location-agnostic, and allow Debian to put such things where it
thinks is reasonable?

  Phillip And we'd like all this to cleanly work with any
  Phillip locally-installed non-Debian eggs that might be in the mix,
  Phillip since we need to do development, beta testing, etc.

And non-egg packages as well, right?  But again, I don't see why that
would be a problem.


Perhaps it's worth pointing out: Debian users typically don't recognise
dependency management as a problem, because it's not a problem for them.  

If you can't apt-get something, the choice is to wait a month for it to
arrive in unstable, or to enter a world of pain where you're dealing
with other (often conflicting) dependency management systems or no
dependency management at all (and btw, this is the commonality I think
eggs have with CPAN and PEAR).

Debian developers take their role of banishing this problem seriously,
which I suppose is why this is a contentious topic.



d


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [Distutils] formencode as .egg in Debian ??

2005-11-23 Thread David Arnold
--Paul == Paul Moore [EMAIL PROTECTED] writes:

   My point to David was simply that egg packaging in the .egg form is
   more akin to Stow than to CPAN, so most of the flaws of CPAN are
   not applicable to them.

  Paul Sorry, I don't know what Stow is, so that doesn't clarify things
  Paul to me (but that's OK, I got your point from the previous
  Paul paragraph, so if the clarification helps David, that's enough).

In fact, I use stow for anything not supported by Debian.

Stow allows you to maintain a repository of built installations, and
to activate overlapping things one at a time.  Normally, this means
different versions of the one product.  It achieves this by managing
symlink farms.

It's a fairly Unix-y thing :-)

   I would call these system packages, to distinguish them from
   Python packages.  You (and others) would like to ensure that any
   project you install is wrapped in a system package.

  Paul Gotcha. And you understand my position perfectly.

That's my wish also.  

I realise that other people (possibly more so on non-Debian systems?)
don't have such an attachment to the way the system manages installed
products.

Don't get me wrong: I'm not disputing that .eggs are useful, nor that
they provide capabilities that a Debian-packaged result of an
installation using 'python setup.py install' might not (at least now,
easy-deb aside).

And, fwiw, as a developer of Python modules, a way of distributing them
that allows others to safely and easily install different versions of my
modules with different applications on the same machine is attractive.

But I was hoping that I could help clarify the point of view of a Debian
user, by pointing out that there's at least some part of the Debian user
community that won't like installing .egg applications unless they're
sanely converted to .debs





d


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [Distutils] formencode as .egg in Debian ??

2005-11-22 Thread David Arnold
--Phillip == Phillip J Eby [EMAIL PROTECTED] writes:

  Phillip This is a major advantage over developers who do not do this,
  Phillip not only in developer effectivness, but also because a
  Phillip developer who depends exclusively on a specific packaging
  Phillip system will not have the same effective reach for their
  Phillip offering, or conversely will require a greater investment of
  Phillip effort to support various packaging systems.

coming to this a little late

So, this would seem to imply that installation of eggs is similar to
using PEAR or CPAN?

If so, from the perspective of a Debian user, this is a major
disadvantage.  I'm used to having a single framework that manages my
packages and their dependency relationships, and it works well.

Adding a language-specific mechanism simply causes problems, with stray
files installed into directories owned by a .deb package, versions of
CPAN/PEAR-installed packages drifting out of date with the interpreter
and standard library, and just the cognitive load of needing to deal
with something other than apt-get.  My experiences with CPAN/PEAR
packages have been universally bad, and I now try very, very hard to use
nothing except apt/dpkg.

I understand that from a Python-only perspective eggs might have a bunch
of ease-of-use advantages, but from my point of view I'd suggest it's
better that the developer (or Debian packager) takes the trouble to make
it work with dpkg so all Debian users get to maintain the consistency
they're used to.

My 2c, etc,




d





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]