[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Working group for Python CPAN-equivalence?

Olof Bjarnason

3/3/2010 12:45:00 PM

Hi everybody!

The "Where is CPAN for Python?" question keeps popping up, with
answers ranging from "There is no CPAN for Python" and "We already
have CPAN for Python" (confusing).

I'm wondering - is there any work being done identifying ..

(1) what is so good with CPAN?
(2) how can it be brought to the Python world?

Is there a working group/initiative for this? Web page? Discussion group?


/Olof
14 Answers

Ben Finney

3/3/2010 1:21:00 PM

0

Olof Bjarnason <olof.bjarnason@gmail.com> writes:

> Hi everybody!
>
> The "Where is CPAN for Python?" question keeps popping up, with
> answers ranging from "There is no CPAN for Python" and "We already
> have CPAN for Python" (confusing).

Caused in no small measure by the fact that Perl people mean at least
two distinct things by â??Where is CPAN for Python?â?:

* The central package registry, CPAN, with metadata in a standard
queryable format, and all registered packages redundantly mirrored and
available for installation at user-specified versions.

We have an equivalent in PyPI, though it's incomplete since many
*registered* packages are not actually hosted *at* PyPI.

* The command-line tool, â??cpanâ??, used for performing operations on the
set of locally-installed Perl packages, and for package maintainers
performing operations on the repository.

We have nothing like this. The Distutils library does a small part of
the job, and the third-party â??easy_installâ?? program works for those
which use the Setuptools extensions; but there's nothing at all
equivalent to Perl's â??cpanâ?? tool.

Often, Perl people asking simply â??Where is CPAN for Python?â? are asking
about a third thing:

* The unified, mature, actively-maintained, seamless combination of the
CPAN repository and the â??cpanâ?? tool, that work together as a single
reliable system to such an extent that one can sensibly talk about
them *both* as one thing, â??CPANâ?.

This one we're a *long* way from with Python, IMO. Much work has been
going on over the last year or so, and it's encouraging to see; but so
much of that work is dealing with the legacy burden of Distutils that
I get weary seeing how far there is to go.

--
\ â??A child of five could understand this. Fetch me a child of |
`\ five.â? â??Groucho Marx |
_o__) |
Ben Finney

jmg3000

3/3/2010 3:04:00 PM

0

On Mar 3, 7:45 am, Olof Bjarnason <olof.bjarna...@gmail.com> wrote:
> Hi everybody!
>
> The "Where is CPAN for Python?" question keeps popping up, with
> answers ranging from "There is no CPAN for Python" and "We already
> have CPAN for Python" (confusing).
>
> I'm wondering - is there any work being done identifying ..
>
> (1) what is so good with CPAN?
> (2) how can it be brought to the Python world?
>
> Is there a working group/initiative for this? Web page? Discussion group?

Hi Olof,

Discussions about that often take place on the distutils-sig and
catalog-sig MLs.

People are currently working on making the Cheeseshop even better and
the situation is improving. Have a look at [Tarek's blog](http://
tarekziade.wordpress.com/) for more info.

---John

John Nagle

3/3/2010 5:06:00 PM

0

Ben Finney wrote:
> Olof Bjarnason <olof.bjarnason@gmail.com> writes:
>
>> Hi everybody!
>>
>> The "Where is CPAN for Python?" question keeps popping up, with
>> answers ranging from "There is no CPAN for Python" and "We already
>> have CPAN for Python" (confusing).
>
> Caused in no small measure by the fact that Perl people mean at least
> two distinct things by â??Where is CPAN for Python?â?:
>
> * The central package registry, CPAN, with metadata in a standard
> queryable format, and all registered packages redundantly mirrored and
> available for installation at user-specified versions.
>
> We have an equivalent in PyPI, though it's incomplete since many
> *registered* packages are not actually hosted *at* PyPI.

CPAN is a repository. PyPi is an collection of links.

CPAN has over 260 mirrors. PyPi has none.

CPAN enforces standard organization on packages. PyPi does not.

CPAN has quality control, with testers and a test reporting system.
PyPi does not.

John Nagle

Terry Reedy

3/3/2010 9:00:00 PM

0

On 3/3/2010 12:05 PM, John Nagle wrote:

>> We have an equivalent in PyPI, though it's incomplete since many
>> *registered* packages are not actually hosted *at* PyPI.
>
> CPAN is a repository. PyPi is an collection of links.

As Ben said, PyPI currently is also a respository and not just links to
other repositories.

> CPAN has over 260 mirrors. PyPi has none.

A mirroring system has been or is being set up with at least a couple of
mirrors for things that are hosted at PyPI.

> CPAN enforces standard organization on packages. PyPi does not.
>
> CPAN has quality control, with testers and a test reporting system.
> PyPi does not.

People who are familiar with and like CPAN are free to help improve
PyPI. Those of us not familiar with it may not know what we are missing,
or have little idea about what works with CPAN.

Terry Jan Reedy

Jonathan Gardner

3/3/2010 10:17:00 PM

0

On Wed, Mar 3, 2010 at 1:00 PM, Terry Reedy <tjreedy@udel.edu> wrote:
>
> People who are familiar with and like CPAN are free to help improve PyPI.
> Those of us not familiar with it may not know what we are missing, or have
> little idea about what works with CPAN.
>


CPAN also covers up some deficiencies in Perl that Python doesn't
suffer from. I am sure we could do well not to replicate those
features.

Regardless, Python's packages are distributed in a number of ways.
PyPI is only one of them. Fedora and Ubuntu are two other ways.

--
Jonathan Gardner
jgardner@jonathangardner.net

Ben Finney

3/3/2010 10:31:00 PM

0

Terry Reedy <tjreedy@udel.edu> writes:

> On 3/3/2010 12:05 PM, John Nagle wrote:
> > CPAN is a repository. PyPi is an collection of links.
>
> As Ben said, PyPI currently is also a respository and not just links
> to other repositories.

It's a repository with holes. Just because a package is registered is no
indication that the package is available from PyPI.

> > CPAN has over 260 mirrors. PyPi has none.
>
> A mirroring system has been or is being set up with at least a couple
> of mirrors for things that are hosted at PyPI.

And that caveat is a big problem. Since PyPI allows registration of
packages that are not themselves hosted at PyPI (often because their
license terms are too restrictive for PyPI to redistribute the work),
the mirror system will miss them.

So there will be package-shaped holes in the PyPI mirror, meaning that
even well-specified dependencies and a reliable mirror network will not
be enough to make dependencies reliably satisfiable.

> > CPAN enforces standard organization on packages. PyPi does not.

This is, I think, something we don't need as much in Python; there is a
fundamental difference between Perl's deeply nested namespace hierarchy
and Python's inherently flat hierarchy.

> > CPAN has quality control, with testers and a test reporting system.
> > PyPi does not.
>
> People who are familiar with and like CPAN are free to help improve
> PyPI. Those of us not familiar with it may not know what we are
> missing, or have little idea about what works with CPAN.

An important first step would be to reject from PyPI any package that
isn't available for automated testing on the servers. That requires,
AFAICT, rejecting any package without the source package uploaded.

--
\ â??Oh, I realize it's a penny here and a penny there, but look at |
`\ me: I've worked myself up from nothing to a state of extreme |
_o__) poverty.â? â??Groucho Marx |
Ben Finney

Peter Billam

3/3/2010 10:37:00 PM

0

On 2010-03-03, John Nagle <nagle@animats.com> wrote:
> Ben Finney wrote:
>> Olof Bjarnason <olof.bjarnason@gmail.com> writes:
>>> The "Where is CPAN for Python?" question keeps popping up, with
>>> answers ranging from "There is no CPAN for Python" and "We already
>>> have CPAN for Python" (confusing).
>>
>> Caused in no small measure by the fact that Perl people mean at
>> least two distinct things by â??Where is CPAN for Python?â?:
>> * The central package registry, CPAN, with metadata in a standard
>> queryable format, and all registered packages redundantly mirrored
>> and available for installation at user-specified versions.
>> We have an equivalent in PyPI, though it's incomplete since
>> many *registered* packages are not actually hosted *at* PyPI.
>
> CPAN is a repository. PyPi is an collection of links.
> CPAN has over 260 mirrors. PyPi has none.
> CPAN enforces standard organization on packages. PyPi does not.
> CPAN has quality control, with testers and a test reporting system.
> PyPi does not.

One important thing that CPAN does _not_ have is a formalised
"I put this module up for adoption" mechanism. Debian has one,
for example. It's necessary, because not having one leads to
many (in the long run, all) modules becoming unmaintained and
abandoned, even though they worked perfectly well and were very
useful to people...

It would also be nice to be able to get module download stats.

A very important thing about CPAN modules is the consistent
basic install method: perl Makefile.PL ; make ; make install

I'm not sure if the Perl code that runs CPAN is free software... (?)

Regards, (CPAN author) Peter

--
Peter Billam www.pjb.com.au www.pjb.com.au/comp/contact.html

Philip Semanchuk

3/3/2010 11:44:00 PM

0


On Mar 3, 2010, at 5:17 PM, Jonathan Gardner wrote:

> On Wed, Mar 3, 2010 at 1:00 PM, Terry Reedy <tjreedy@udel.edu> wrote:
>>
>> People who are familiar with and like CPAN are free to help improve
>> PyPI.
>> Those of us not familiar with it may not know what we are missing,
>> or have
>> little idea about what works with CPAN.
>>
>
>
> CPAN also covers up some deficiencies in Perl that Python doesn't
> suffer from. I am sure we could do well not to replicate those
> features.
>
> Regardless, Python's packages are distributed in a number of ways.
> PyPI is only one of them. Fedora and Ubuntu are two other ways.

Do Fedora & Ubuntu's package managers offer modules that appear in
CPAN? In other words, if I was a Perl user under Ubuntu would I use
the pkg manager to add a Perl module, or CPAN, or would both work?


Thanks
Philip

John Bokma

3/4/2010 2:11:00 AM

0

Philip Semanchuk <philip@semanchuk.com> writes:

> Do Fedora & Ubuntu's package managers offer modules that appear in
> CPAN?

Yes, I've installed so far all Perl modules I need that way (sudo
apt-get install ...)

> In other words, if I was a Perl user under Ubuntu would I use
> the pkg manager to add a Perl module, or CPAN, or would both work?

Both would work, but I would make very sure to use a separate
installation directory for modules installed via CPAN.

AFAIK there are also programs that pack CPAN modules/bundles into
something the package manager can use to install.

--
John Bokma j3b

Hacking & Hiking in Mexico - http://john...
http://castle... - Perl & Python Development

Gregory Ewing

3/4/2010 11:21:00 AM

0

Peter Billam wrote:

> A very important thing about CPAN modules is the consistent
> basic install method: perl Makefile.PL ; make ; make install

Well, we more or less have that with Python, too:

python setup.py install

It may not always work smoothly, but it's the
one obvious thing to try when you've downloaded
a Python package in source form.

--
Greg