Fwd: Re: A Semi-Public Version Control Repository for Your CPAN Modules

2006-07-10 Thread Shlomi Fish
--  Forwarded Message  --

Subject: Re: A Semi-Public Version Control Repository for Your CPAN Modules
Date: Thursday 06 July 2006 21:12
From: Damian Conway [EMAIL PROTECTED]
To: Shlomi Fish [EMAIL PROTECTED]

Hi Shlomi,

Sorry for the delay in responding...I'm on my summer speaking tour at the
moment and this is the first free hour I've had in two weeks.

I appreciate you suggestion, and I'm watching Alias's experiment with
considerable interest.

You asked if there was a reason not to do this, and my reason is that I
 simply do not (yet) feel comfortable with this approach to distributed
 development. Nor am I convinced that it would be a win for me. Opening up
 the module to other committers doesn't eliminate the work, it just reduces
 it from development (which I enjoy) to supervision (which I loathe). And it
 doesn't address the real problem: it's not that I don't have enough time to
 maintain most of my modules...it's that I don't have *any* time to do so.
 Changing how that maintenance is done won't magically make that time
 available.

All the best,

Damian

---

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.


Re: A Semi-Public Version Control Repository for Your CPAN Modules

2006-06-27 Thread Frank Wiles
On Tue, 27 Jun 2006 00:42:58 +0300
Shlomi Fish [EMAIL PROTECTED] wrote:

 I really don't want to do that, because it's not a real solution.
 This mailing list, modules@perl.org and other forums are inundated
 with such requests for gaining maintainership of authors who
 disappeared. Now Damian did not disappear - he's still alive and
 kicking - he just doesn't have the time to apply all patches or fix
 all bugs. 
 
 Once a FOSS project becomes popular and the author becomes busy, then
 having only one person able to commit changes to such a project,
 scales less and less. That's what version control and multiple
 commiters (or alternatively or complementarily distributed version
 control) is for. 

  You can have co-maintainers in CPAN today that allows for multiple
  people to inject real versions into CPAN.  But you have to be
  setup by the maintainer as a co-maintainer. 

  But like with all FOSS projects, I think it should be up to the
  current maintainer ( or the CPAN gods if the maintainer disappears )
  to grant that.  Limiting commits to just people with PAUSE logins
  would probably not cause too many problems... but the chance for
  abuse is still higher than I would like if the decision were up to 
  me. 

  As for your ideas on vendor tags, in-house CPAN sources, etc. I
  think can all be handled adequately today with CPAN::Mini and 
  injecting your own modules.  Obviously, you'd have to host these
  yourself and point your cpan shell at them, but it should work 
  with todays tools. 

 -
   Frank Wiles [EMAIL PROTECTED]
   http://www.wiles.org
 -



Re: CPAN6 (was: A Semi-Public Version Control Repository for Your CPAN Modules)

2006-06-26 Thread Mark Overmeer
 Sam Vilain wrote:
 If you are in Europe in August, you might like to come to YAPC and see
 the announcement of cpan6, this concern is included in the design
 requirements and making small changes to other's code will be natural
 and safe.

* Randy W. Sims ([EMAIL PROTECTED]) [060626 06:12]:
 Has there been any public discussion of cpan6? I've only seen vague 
 references and wishful posting. Will the design requirements be open to 
 public review and comment before it's implemented?

Sam and I work on the CPAN6 idea for a few months now.  It goes much further
than simply security and multi-developer extensions to Pause. You can use it
to create, distribute, and merge CPAN-like archives; on a meta-archiving
level.  Especially this requires new terminology, which we now try to freeze
in the YAPC-paper and other design documents.  Public discussion on this
moment would eat all our time.  Of course, we hope it will grow into a
community project after the YAPC.
-- 
Regards,
   MarkOv


   Mark Overmeer MScMARKOV Solutions
   [EMAIL PROTECTED]  [EMAIL PROTECTED]
http://Mark.Overmeer.net   http://solutions.overmeer.net



Re: CPAN6 (was: A Semi-Public Version Control Repository for Your CPAN Modules)

2006-06-26 Thread Leon Brocard

On 6/26/06, Randy W. Sims [EMAIL PROTECTED] wrote:


Has there been any public discussion of cpan6? I've only seen vague
references and wishful posting. Will the design requirements be open to
public review and comment before it's implemented?


Of course not - but in the usual Perl way, if you don't like it, you
can build your own cpan6!
And release it to, errr, CPAN.

Sorry, slightly tongue in cheek.

But as with most Perl 6 projects, I have to ask: Why do we have to
wait for Perl 6 before we get a better CPAN?

Or is this getting too meta and should I wait until your yapc talk
instead... Leon


Re: A Semi-Public Version Control Repository for Your CPAN Modules

2006-06-26 Thread Shlomi Fish
On Monday 26 June 2006 08:54, Sam Vilain wrote:
 Shlomi Fish wrote:
  Now, Adam Kennedy recently made an interesting step of making commit
  access to a Subversion repository with the source code for most of his
  modules to anyone with a valid PAUSE login:
 
  http://use.perl.org/~Alias/journal/29327
 
  My suggestion is for you to do something similar. What do you think? Is
  there any reason for you not to do so?

 Shlomi,

 Another option is to just upload the distribution with your changes
 using your own PAUSE ID to cpan.  It will not get indexed, but succeeds
 in that users who don't know about or trust some external repository can
 still access your changes via the CPAN network.

I really don't want to do that, because it's not a real solution. This mailing 
list, modules@perl.org and other forums are inundated with such requests for 
gaining maintainership of authors who disappeared. Now Damian did not 
disappear - he's still alive and kicking - he just doesn't have the time to 
apply all patches or fix all bugs. 

Once a FOSS project becomes popular and the author becomes busy, then having 
only one person able to commit changes to such a project, scales less and 
less. That's what version control and multiple commiters (or alternatively or 
complementarily distributed version control) is for. 

I could release a module I have changed for with patch A, and then patch B, 
and then patch C, etc. I've already done it with 
http://www.shlomifish.org/open-source/bits-and-bobs/gringotts-patch/ which is 
written in C. However, I'd rather take advantage of Audrey Tang's and Adam 
Kennedy's lead and simply commit changes directly to their version control 
system so they'll eventually be available upstream.


 If you are in Europe in August, you might like to come to YAPC and see
 the announcement of cpan6, this concern is included in the design
 requirements and making small changes to other's code will be natural
 and safe.

 http://www.birmingham2006.com/cgi-bin/yapc.pl?act=talk-itemtalkid=51

 Sam.

Well cpan6 aside, I've thought about an idea for Park ( 
http://www.shlomifish.org/park-lisp-fooware/park-lisp-informal-spec/ ) which 
I have yet to put in writing in the slowly-progressing informal spec, but 
it's doable for other languages too:

What happens is that everyone can register a vendor tag in CPAN, which is an 
alphanumeric name. He can also make other people co-maintainers of this 
vendor tag. Then new versions of modules of an existing author can be 
released under a vendor tag that they belong to. And the user can specify to 
install modules that belong to a certain vendor tag. 
(e.g: install --vendor=ShlomiFish Parse::RecDescent).

Naturally, it introduces some problems, and probably not a perfect solution 
but worth thinking of. Note that I hope to see some of the non-Perl6-related 
improvements to Perl6 back-ported to CPAN (or to CPAN 2.0 - ;-)).

Another improvement I thought is a list of secondary sources, each one with 
its own list of mirrors. This will allow:

1. For projects to set up secondary sources of modules, where they have more 
control of (or alternatively are of a non-free license).

2. For organisations to set up CPAN-like sources of in-house 
(so-called proprietary) packages for the entire organisation, to be 
installable and updatable from a central location.

Regards,

Shlomi Fish

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.


Re: A Semi-Public Version Control Repository for Your CPAN Modules

2006-06-26 Thread Sam Vilain
Shlomi Fish wrote:
 Another option is to just upload the distribution with your changes
 using your own PAUSE ID to cpan.  It will not get indexed, but succeeds
 in that users who don't know about or trust some external repository can
 still access your changes via the CPAN network.
 

 I really don't want to do that, because it's not a real solution.  This 
 mailing 
 list, modules@perl.org and other forums are inundated with such requests for 
 gaining maintainership of authors who disappeared. Now Damian did not 
 disappear - he's still alive and kicking - he just doesn't have the time to 
 apply all patches or fix all bugs. 
   

I'm not sure why you say it is not real - would you care to elaborate
the failings in this working solution that you see?  I've come across
authors who have thanked me for doing a release for them, and it means
that the *users* of the modules don't have to wait for the upstream
author to do a release if they want to get the modified version.

Sometimes it's just the simplest and most effective way to publish the
changes.

 Once a FOSS project becomes popular and the author becomes busy, then having 
 only one person able to commit changes to such a project, scales less and 
 less. That's what version control and multiple commiters (or alternatively or 
 complementarily distributed version control) is for. 

 I could release a module I have changed for with patch A, and then patch B, 
 and then patch C, etc. I've already done it with 
 http://www.shlomifish.org/open-source/bits-and-bobs/gringotts-patch/ which is 
 written in C. However, I'd rather take advantage of Audrey Tang's and Adam 
 Kennedy's lead and simply commit changes directly to their version control 
 system so they'll eventually be available upstream.
   

A lot of what you say is true, but we should be extremely careful not to
enforce or specifically condone any particular style of development. 
Some prefer the wiki-style/open commit approach and hence use SVN as a
robust filesystem for this, others prefer that changes are reviewed
first and probably use a distributed system like bazaar, git, darcs,
etc, for a cleaner concept of branches.

Consider how this works with savannah.gnu.org.  If you have a patch to a
software package that implements a particular feature, you can just
upload it to the system.  It is then available for all users, not just
the maintainer.  Later, the maintainer can mark the patch as included in
a release, and the patch gets marked done.  Making it easy for these
changes to be available to a given user is just a matter of installation
tool sophistication.

However, if you just commit on an SVN trunk, your trunk becomes a
ghetto of features which may or may not work.  Some relish in delight
at the prospect of grokking these new ideas from people, and the success
of pugs is testament to the energy of people like Audrey who actively
engage in this process.  But if the maintainer doesn't do that for all
their modules all the time, the ghetto ends up needing much clean-up
before release, possibly involving a painful process of branching and
cherry picking, which is always painful with svn.

I think the point is that it is not valid to imply that a module author
is not fulfilling their moral duty because they do not embrace the wiki
model and want to adopt your changes.  There are plenty of options - set
up your own VCS, upload to CPAN independently, post a patch to the
module's users' mailing list, etc.

The reason I recommended uploading to CPAN, is because as CPAN to VCS
bridges emerge, your new version will fit in tidily as a separate
branch.  Assuming the author uses this bridge they can then just merge,
then commit back via the bridge to CPAN.

 Well cpan6 aside, I've thought about an idea for Park ( 
 http://www.shlomifish.org/park-lisp-fooware/park-lisp-informal-spec/ ) which 
 I have yet to put in writing in the slowly-progressing informal spec, but 
 it's doable for other languages too:

 What happens is that everyone can register a vendor tag in CPAN, which is 
 an 
 alphanumeric name. He can also make other people co-maintainers of this 
 vendor tag. Then new versions of modules of an existing author can be 
 released under a vendor tag that they belong to. And the user can specify to 
 install modules that belong to a certain vendor tag. 
 (e.g: install --vendor=ShlomiFish Parse::RecDescent).
   

This is actually required for Perl 6, to be able to specify a vendor. 
eg, `use Parse::RecDescent-(Any)-cpan:SHLOMI'.  The vendor tag is just
your PAUSE ID, or perhaps a cpan6 archive URL.

It is expected that this functionality will eventually be retrofitted
into Perl 5 via CPAN6.pm.

 Naturally, it introduces some problems, and probably not a perfect solution 
 but worth thinking of. Note that I hope to see some of the non-Perl6-related 
 improvements to Perl6 back-ported to CPAN (or to CPAN 2.0 - ;-)).

 Another improvement I thought is a list of secondary sources, each one with 
 

Re: A Semi-Public Version Control Repository for Your CPAN Modules

2006-06-25 Thread Sam Vilain
Shlomi Fish wrote:
 Now, Adam Kennedy recently made an interesting step of making commit access 
 to 
 a Subversion repository with the source code for most of his modules to 
 anyone with a valid PAUSE login:

 http://use.perl.org/~Alias/journal/29327

 My suggestion is for you to do something similar. What do you think? Is there 
 any reason for you not to do so?
   

Shlomi,

Another option is to just upload the distribution with your changes
using your own PAUSE ID to cpan.  It will not get indexed, but succeeds
in that users who don't know about or trust some external repository can
still access your changes via the CPAN network.

If you are in Europe in August, you might like to come to YAPC and see
the announcement of cpan6, this concern is included in the design
requirements and making small changes to other's code will be natural
and safe.

http://www.birmingham2006.com/cgi-bin/yapc.pl?act=talk-itemtalkid=51

Sam.


A Semi-Public Version Control Repository for Your CPAN Modules

2006-06-24 Thread Shlomi Fish
Hi Dr. Conway!

I'm CCing this message to module-authors@perl.org, to hear what people think 
and to encourage other authors to consider it.

You have quite a few distributions on the CPAN:

http://search.cpan.org/~dconway/

Now, the problem is that many of them (naturally) have bugs and several have 
pending patches on the Request Tracker. I myself have a patch for a small 
annoyance in NEXT (which is part of core), and a fellow Israel.PMer said he 
encountered a bug in Toolkit, and recently a discussion about Boston.pm 
talked about Parse::RecDescent's memory scalability problems.

Now, Adam Kennedy recently made an interesting step of making commit access to 
a Subversion repository with the source code for most of his modules to 
anyone with a valid PAUSE login:

http://use.perl.org/~Alias/journal/29327

My suggestion is for you to do something similar. What do you think? Is there 
any reason for you not to do so?

--

As for the disqualifier disqualifying based on his own fault[1]: I'm not aware 
of any outstanding bugs in any of my CPAN modules except for SVN::Pusher. I 
also can usually commmit patches that get sent to me during the next weekend 
or sooner. (With some constraints due to my new full-time job and the fact 
I'm organising the August Penguin 5 community FOSS conference in Israel).

Nevertheless most of my CPAN modules are available in this Subversion 
repository:

http://svn.berlios.de/svnroot/repos/web-cpan/

(Most of the others are available in other public Subversion repositories).

I'll gladly give Subversion access through the Berlios system if people will 
register an account on Berlios, and send me one patch. Following Audrey 
Tang's lead, I will make them committers so they can commit there themselves.

Naturally, Alias may agree that I move my modules to his repository instead, 
which will open it for contributions by any PAUSE author. I'll gladly do 
that, at least for some of my modules.

Regards,

Shlomi Fish

[1] - It really sounds better in Hebrew:

http://en.wikiquote.org/wiki/Hebraic_proverbs#.D7.94

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.