Re: code repository

2000-09-07 Thread Bradley M. Kuhn

Dan Sugalski wrote:
> At 12:14 AM 9/6/00 -0400, Bradley M. Kuhn wrote:
> >Dan Sugalski wrote:
> > > The decisions should be based on technical merit and general availability.
> >
> >I would include "available under a free software license" as part of the
> >definition of "general availability".
 
> You would, but in this case I don't. We can give anyone we want a client
> and get them access to the repository.

You can give people a client, but it may not be something they are
able to use.

I do understand the concern from the other side---that the technology of
perforce is better.  My point is that even if the technology is better, some
people will be alienated by a proprietary software source revision system.

I am not in a position to really influence the decision one way or the
other; I just wanted to voice my concern that I (and others with my beliefs)
will have to be a second-class perl6 developer if proprietary software tools
are required to be a first-class perl6 developer.

-- 
Bradley M. Kuhn  -  http://www.ebb.org/bkuhn

 PGP signature


Re: code repository

2000-09-07 Thread Bradley M. Kuhn

Adam Turoff wrote:
> On Wed, Sep 06, 2000 at 12:14:17AM -0400, Bradley M. Kuhn wrote:
> > Dan Sugalski wrote:
> > > The decisions should be based on technical merit and general availability.
> > 
> > I would include "available under a free software license" as part of the
> > definition of "general availability".  
 
> Bradley, your argument against perforce really sounds like you're saying
> your uncomfortable with non-free software in general, not with perforce
> in particular.

Yes, that is my argument.  I don't think we should have key, required tools
in the development chain for perl6 be proprietary software.  I would have
nothing against perforce if they release it as free software.

>  I haven't heard a reason to switch to CVS yet[*].

Thanks for making some.  ;)

> 
> [*] The biggest reason IMNSHO to use CVS is to encourage people to hack
> the source; more people know and use CVS on a daily basis than use
> perforce, at least in the free software community.


-- 
Bradley M. Kuhn  -  http://www.ebb.org/bkuhn

 PGP signature


Re: code repository

2000-09-07 Thread Bennett Todd

2000-09-05-10:53:25 Dan Sugalski:
> >I don't think it's a good idea to build Perl6 development
> >infrastructure around non-free software.
> 
> I don't think we should make decisions about the software we use
> for development based on political views. The decisions should be
> based on technical merit and general availability.

I think it's terribly, terribly depressing, even worrisome, to hear
someone in this locale implying that open source availability is a
purely political attribute, and not a technical one with a very
important and direct bearing on availability.

2000-09-06-10:51:35 Dan Sugalski:
> >Finally, most free software and open source projects have
> >standardized on CVS. Do we really have a compelling reason to go
> >against the standard?
> 
> Perl 5 uses perforce, [...]

I thought one of the primary motivations for this investment of time
and effort here on the perl6-* lists was the problem that far too
few people can contribute to perl5 development. That being the case,
the claim that perl5 uses a tool doesn't qualify as a strong
argument in favour of that tool. Perhaps perl5's use of perforce
isn't a contributor to its problems that have us here working on a
rewrite. Could be. But are there any major open source projects
working on perforce that _aren't_ trying to re-invent their
development processes due to a perceived failure of same?

-Bennett

 PGP signature


Re: code repository

2000-09-07 Thread Peter Allen

Michael G Schwern wrote:
> 
> On Sun, Sep 03, 2000 at 09:05:07PM -0700, Russ Allbery wrote:
> > I also think this may well be a good place to apply one of the ideas of XP
> > (Extreme Programming, a fairly flexible small-group software design
> > methodology), namely to write test cases *first* in many cases before
> > writing the code, and to seriously consider trying to write unit tests for
> > pretty much every bit of code that you write.


They have a catchy slogan for it.  They call it the

   test  -->  code  -->  design

development cycle.

Of course, the design phase is characterized exclusively as
'refactoring', since they're primarily concerned with Smalltalk.
But even in a big sprawling project like this, 'refactoring' isn't a
bad one-word description.


Also, don't you want to refer more to 'unit tests', rather than
regression testing, when talking about small pieces of code inserted
in pod sections close to each piece of program code.  Certainly, these
pieces can be automatically collated in clever ways to attempt
effective overall coverage, but the immediate reward for the
programmer you're trying to entice to use it, is that she can fire off
that '=for testing' snippet every time she touches that code.  This is
the big win that the XP people emphasize.


for anyone interested/curious/befuddled:

http://c2.com/cgi/wiki?ExtremeProgramming

http://c2.com/cgi/wiki?CodeUnitTestFirst



The casino or just plain bizzare?

2000-09-07 Thread Alan Burlison

I found the following reference in the p5p archives to a paper
discussing open source development.  I think this should be mandatory
reading for anyone contemplating a contribution to the RFC mountain.

http://www.firstmonday.dk/issues/issue4_10/bezroukov/index.html

Alan Burlison



Re: code repository

2000-09-07 Thread Dan Sugalski

At 11:49 AM 9/7/00 -0400, Bennett Todd wrote:
>2000-09-06-10:51:35 Dan Sugalski:
> > >Finally, most free software and open source projects have
> > >standardized on CVS. Do we really have a compelling reason to go
> > >against the standard?
> >
> > Perl 5 uses perforce, [...]
>
>I thought one of the primary motivations for this investment of time
>and effort here on the perl6-* lists was the problem that far too
>few people can contribute to perl5 development.

Perl 5's development issues have nothing to do with the code 
repository--given how many branches are active, perforce seems to be a win. 
The problems perl 5 has are almost entirely due to a code base that has 
reached past the end of its useful life. Perl 6 development is open to 
anyone with perl source, a text editor, a compiler and a copy of diff. (And 
for good code I'll generate the fscking diffs myself if I can get a copy of 
the changed source) *Nobody* needs *any* repository tools to play this 
game. Period.


Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: code repository

2000-09-07 Thread Bennett Todd

2000-09-07-17:11:50 Dan Sugalski:
> Perl 5's development issues have nothing to do with the code 
> repository -- [...]

That's certainly possible, but since the reason we're gathered here
together working on trying to launch perl6 is a collective belief
that perl5 has become unmaintainable for further development, citing
perl5 as an example of how a given tool is just what we need to be
using seems shaky at best. So I ask again: do any _other_ projects,
preferably ones that aren't regarded as procedural failures that
need re-inventing from scratch, used perforce? Or is perl5, whose
failure has brought us out today, its one poster project?

> [...] given how many branches are active, perforce seems to be a
> win.

Given that it's only available to people who happen to run supported
platforms, who are willing to run random binaries from untrustworthy
sources, _and_ that we're at the mercy of a private company for
bug-fixes and maintenance, it seems like it'd be more prudent to let
people who really like perforce feel free to use it themselves for
their private tracking, but to avoid wiring it into the heart of the
distributed development of perl6 as a whole.

-Bennett

 PGP signature


Re: code repository

2000-09-07 Thread Dan Sugalski

Bennett,

Perforce is a better source code control system than the source 
alternatives, and certainly better for the task we face than CVS.

You're certainly not forced to use it. You can, if you rather, grab 
snapshot archives, rsync from the repository directory, or even grab a copy 
of the source from the proposed anon CVS mirror.

If you've got a better alternative with a proven track record (and the only 
alternatives I know of that rival it all cost) put it on the table, please.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: code repository

2000-09-07 Thread Alan Burlison

Bennett Todd wrote:

> So I ask again: do any _other_ projects,
> preferably ones that aren't regarded as procedural failures that
> need re-inventing from scratch, used perforce? Or is perl5, whose
> failure has brought us out today, its one poster project?

I think reports of perl5's death have been greatly exaggerated.  I'm
sure you know that already, and I think you could have been more careful
with your choice of wording.

Alan Burlison



Re: code repository

2000-09-07 Thread Adam Turoff

On Thu, Sep 07, 2000 at 05:31:37PM -0400, Bennett Todd wrote:
> 2000-09-07-17:11:50 Dan Sugalski:
> That's certainly possible, but since the reason we're gathered here
> together working on trying to launch perl6 is a collective belief
> that perl5 has become unmaintainable for further development, [...]

and the reasons for that lack of maintainability are *entirely* due to
the codebase, *NOT* tools used to maintain that codebase.

> > [...] given how many branches are active, perforce seems to be a
> > win.
> 
> Given that it's only available to people who happen to run supported
> platforms, 

OK.  That pegged the fud-o-meter.  The list of supported platforms
listed on http://www.perforce.com/perforce/loadprog.html is hovering
around fifty, including boutique architectures for Linux, NetBSD
and FreeBSD, as well as three versions of VMS, two architectures
of BeOS, Amiga OS, four versions of Solaris/SunOS, [...]

So, to summarize:
1) Perl6 development will be *open* to anyone able to diff,
   patch and send/receive those patches.

2) A very small number of developers will have write-access
   to the master Perl6 repository.  This is comparable to most
   other open source projects using BitKeeper, CVS or Perforce.

3) Those developers prefer Perforce and should not be forced
   to use CVS because non-committers prefer it.

4) Perforce clients are *freely available* and *supported*
   on a wide range of platforms.  No, it's not open source,
   and that is regrettable.

5) The use of Perforce is a pragmatic choice.  If the requested
   features *were* available with CVS, then CVS would be used
   instead of Perforce.

6) An anon CVS interface to the Perl6 source tree should be made
   available for public consumption, synchronization, etc.  How
   this is implemented is left as an exercise for those with
   the tuits.  [*]

Is there anything more to be said about Perforce vs. CVS that *isn't* FUD?

Z.

*: Sarathy tells me that Perforce sucks at maintaining thousands of 
   anonymous checkouts, while CVS doesn't mind at all.  This is a 
   perfect reason to use anon CVS vs. Perforce, but does not require
   that Perforce be ditched in favor of CVS, only that an anon CVS gateway
   be maintained.




Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 01:49:36PM -0400, Peter Allen wrote:
> They have a catchy slogan for it.  They call it the
> 
>test  -->  code  -->  design
> 
> development cycle.

That sounds bad.  I've heard about this style.  Code now, refactor
later.  Its supposed to avoid the need for sweeping architectural
decisions early in the project, allow you to recover from bad design
decisions and return flexibilty to old code.

It may be good for rapid development projects, but I don't think we
should apply it to Perl.  We have a very good idea of what our
requirements are (especially compared to most software out there), a
solid prototype to work from (perl 5), and some very solid ideas of
what the architecture should be.  Furthermore, I don't think there are
any refactoring tools for C.  I've only heard of them for Java and
Smalltalk (maybe C++).


> Of course, the design phase is characterized exclusively as
> 'refactoring'...

For the record...

"Refactoring" is only one tool used in that design philosophy.
Unfortunately, its apporaching buzzword status lately and the
test->code->design approach you mentioned and the technique of
refactoring are kind of ooozing together in the public's perceptions.
I'd like to point out that they are seperate entities.

Refactoring is simply the automated alteration of code without
effecting its purpose.  A simple example would be reversing the order
of arguments in a subroutine.  A refactoring tool would be able to do
this for you automatically and in all code which uses that subroutine.
Handy.  It does this by defining a set of simple operations which a
refactoring tool must be able to perform.  From those simple
operations, it can do much more complicated things.

Unfortunately, Perl's dynamic nature makes most refactoring
impossible.  Furthermore, refactoring loses much of its power when
applied on Open Source libraries since you are no longer in control of
all code which uses said library.  In a controled environment, you can
alter interfaces to your heart's content.  With Open Source, if you
alter a function's interface you may break the code of hundreds of
programs.

Still, it has its uses and can be helpful in localized parts of the
code.  I've been going through the catalog of refactorings and trying
to determine what can currently be done in Perl and how much change in
Perl it would take to reimplement the rest.  It doesn't look good, but
I'll publish what I've got once its complete.


Martin Fowler wrote a book "Refactoring: Improving the Design of
Existing Code"
http://www.refactoring.com/

Bill Opdyke's original thesis paper on the subject is here
ftp://st.cs.uiuc.edu/pub/papers/refactoring/


> Also, don't you want to refer more to 'unit tests', rather than
> regression testing


They could be called "Mr. Wosabe tests" for all I care. Terminology
was never my strong point (above rant is the rare occasion). :)

-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
Work like hell, tell everyone everything you know, close a deal with
a handshake, and have fun.
-- Harold "Doc" Edgerton



Re: The casino or just plain bizzare?

2000-09-07 Thread Tom Christiansen

>I found the following reference in the p5p archives to a paper
>discussing open source development.  I think this should be mandatory
>reading for anyone contemplating a contribution to the RFC mountain.

Amongst other things, amongst other things

>http://www.firstmonday.dk/issues/issue4_10/bezroukov/index.html

Very interesting; hard to autoagree with all of that, but plenty
to nod your head to.

--tom



Re: code repository

2000-09-07 Thread Nathan Torkington

Michael G Schwern writes:
> That sounds bad.  I've heard about this style.  Code now, refactor
> later.  Its supposed to avoid the need for sweeping architectural
> decisions early in the project, allow you to recover from bad design
> decisions and return flexibilty to old code.

Well, yes, but also designed for the situation where you're trying to
hit a moving target (customer keeps changing requirements).  Because
we're essentially the customers for this project, I think we're in
a good position to be able to follow the specifications->design->code.

The thought that we may be the only people in a position to do that
scares me.  That sounds too good to be true.  It doesn't scare me
as much as the prospect of starting coding without designing.  The
perl6-* experience has shown that it'll never end if we don't cut
off features at some point.

The hard part is probably going to be resisting the urge to add
features just because they're possible: once we come up with a design,
we must code the design, and leave new features for later 6.x
releases.  Feature creep control, in other words.

This all adds up to not following the continuous refactoring approach
to design.  In short, I agree :-)

Nat



Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 10:15:38PM -0600, Nathan Torkington wrote:
> The hard part is probably going to be resisting the urge to add
> features just because they're possible: once we come up with a design,
> we must code the design, and leave new features for later 6.x
> releases.  Feature creep control, in other words.

There's one solution, now that we have a nifty source control stuff.
Branch like mad!  Feature creep should be discouraged, but if a group
wants to go off and work on something which isn't going to make it
into the next release they can branch and play.

-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
When faced with desperate circumstances, we must adapt.
- Seven of Nine



Re: code repository

2000-09-07 Thread Nathan Torkington

Michael G Schwern writes:
> There's one solution, now that we have a nifty source control stuff.
> Branch like mad!  Feature creep should be discouraged, but if a group
> wants to go off and work on something which isn't going to make it
> into the next release they can branch and play.

That division of effort scares me.  It's an interesting concept, that
manpower might be infinite in the Open Source World, but I'd rather
everyone agreed to stick to implementing what is in the design as a
first priority.

Adding a new feature would require documentation, test cases, and
analysis of how the feature fits in with the umpty-zillion other
features in Perl, not just code.  I figure the lead coder can look
at progress, look at the new feature, and decide whether it's worth
it on a case by case basis.

But I am cool to the idea that we should lose good coders to
potentially bad ideas.  Explore those ideas later, get perl6 working
first.

Nat





Re: code repository

2000-09-07 Thread Nathan Torkington

Adam Turoff writes:
>   3) Those developers prefer Perforce and should not be forced
>  to use CVS because non-committers prefer it.
> 
> Is there anything more to be said about Perforce vs. CVS that *isn't* FUD?

You make it sound like we've decided on Perforce.  Dan, how about you
sketch out what you're thinking of (Perforce plus CVS, several
committers, whatever it is) and give us a few use cases.  How does
some random person submit a patch?  How does someone claim a unit to
code?  How do people stay current?

Then we can hear informed criticism and perhaps modify the plan if a
better system is suggested.

Nat



Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 10:52:18PM -0600, Nathan Torkington wrote:
> Then we can hear informed criticism and perhaps modify the plan if a
> better system is suggested.

Could we split this off into a working group and mailing list seperate
from perl6-meta?

-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
Maybe they hooked you up with one of those ass-making magazines.
-- brian d foy as misheard by Michael G Schwern



Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 10:48:57PM -0600, Nathan Torkington wrote:
> Michael G Schwern writes:
> > There's one solution, now that we have a nifty source control stuff.
> > Branch like mad!  Feature creep should be discouraged, but if a group
> > wants to go off and work on something which isn't going to make it
> > into the next release they can branch and play.
> 
> Adding a new feature would require documentation, test cases, and
> analysis of how the feature fits in with the umpty-zillion other
> features in Perl, not just code.  I figure the lead coder can look
> at progress, look at the new feature, and decide whether it's worth
> it on a case by case basis.
> 
> But I am cool to the idea that we should lose good coders to
> potentially bad ideas.  Explore those ideas later, get perl6 working
> first.

Its not good feature/bad feature.  Its more like parallel development.
Take, for example, threading.  The tailors decide they need to
overhaul the guts of threading yet again, but the Pumpking is
concerned that it would hold up the next release to wait for the new
threading code to be stable.  So a branch is made and the threading
boys go off and play with their threads and the rest of Perl gets on
with it.  A release or two later, the threading branch is ready and is
rolled into the main release.

In effect, instead of having one development track, we could have many
development tracks, each focused on a single feature, or small group
of features.  This should make work easier, because on each track only
one thing is changing, so its easier to track down new bugs.

There is a problem of integration.  Each track will have to pay
attention to what the others are doing, and they can't go too long
without merging back into the main branch else there will be too many
conflicts.  But I think overall the problems of bugs via features
interacting will be lowered due to the fact that when branches are
merged back into the main that branch has already been tested on its
own and works.

The same patching and testing rules would apply across all "official"
branches (if somebody wants to go nuts on their own we can't really
stop them) and QA would keep an equal eye on them all.  In effect, all
feature patches would happen in branches, and nothing but bug fixes
should appear in the main.  

In fact, I'd almost go so far as to say a new branch should be made
for each bug to be fixed.  These branches would be short lived, but
they would help to consolidate the series of bug fix patches which is
often applied to fix a single bug.  Make them easier to track and know
when a bug has been officially closed (the branch has been merged).


Of course, all this comes from someone who doesn't know how to branch
in CVS.


-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
Plus I remember being impressed with Ada because you could write an
infinite loop without a faked up condition.  The idea being that in Ada
the typical infinite loop would be normally be terminated by detonation.
-- Larry Wall in <[EMAIL PROTECTED]>



Re: code repository

2000-09-07 Thread Nathan Torkington

Michael G Schwern writes:
> Could we split this off into a working group and mailing list seperate
> from perl6-meta?

Sure.  I'm going to set an aggressive schedule for the decision,
though, because this has all the hallmarks of a religious war.  Let's
work through the problems now and be forced to end the debate after
a reasonable time period.

  List: [EMAIL PROTECTED]
  Chair: Dan Sugalski <[EMAIL PROTECTED]>
  Deadline: 18 September 2000
  Mission: To decide the source control system (Perforce, CVS, etc)
  to be used for perl6 development.

Dan's chair not because I want to stack the odds in favour of one
thing over another, but because he's been taking the lead in source
issues so far.

Ask, please work your mailing list magic.

Thanks,

Nat



Re: code repository

2000-09-07 Thread Nathan Torkington

Michael G Schwern writes:
> In effect, instead of having one development track, we could have many
> development tracks, each focused on a single feature, or small group
> of features.  This should make work easier, because on each track only
> one thing is changing, so its easier to track down new bugs.

I think we're talking different scenarios.  This implies there already
is code.  I've only been talking about the first version of perl6,
getting it out the door.  The existing pumpkings have had plenty of
experience with branches ("fork" is such a dirty word :-) in the source
tree, and can give advice on how it works when you already have code.

I view branches in this initial version as highly unlikely to be
useful.  We need to have a trunk before we can have branches.

Nat



Checkpoint

2000-09-07 Thread Nathan Torkington

So we're three weeks away from the end of this.  I've been thinking
about where we went right and where we went wrong (and in particular,
what I would do differently if I had it to do again).

The biggest thing is that I underestimated the volume of traffic.  I
never thought there'd be so many RFCs.  The need for RFC versioning
and status, and the structure of the RFC list should have been in
place from the get-go.

I'll never again agree to run something and go on vacation :-) That
didn't work well: the initial kerfuffle and misunderstandings could
have been headed off had I or others who were at the meeting been
around to explain things.  Then again, I did try to explain things to
people, and that didn't work either.  Perhaps some confusion and
hubbub is always going to be present, because people distrust change.

On the positive side, there are good ideas being RFCed as well as bad
ones.  And there is an end to this brainstorming phase in sight :-)
People have generally been courteous and respectful of one another,
and those who weren't became so.

Any more?  I'm keen to learn from mistakes (preferably those of
others, but my own will do in a pinch :-).

Nat



Re: code repository

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 11:14:34PM -0600, Nathan Torkington wrote:
> I view branches in this initial version as highly unlikely to be
> useful.  We need to have a trunk before we can have branches.

I was actually speaking of both the initial development and on from
there.  You don't need a trunk to have branches.

I want to take some more time to write this idea out better, but the
idea is basically to break alot of the interdependeness of the various
pieces of perl (hashes, arrays, scalars, regexes, etc...) and develop
each as a largely seperate library suitable for seperate release.

This removes the need for a large hunk of perl6 to be working before
we can get something useful.  It should make the internals much
cleaner, make testing easier (as we can test each piece before its
integration), make things easier to document, make perl core hacking
more approachable for newbies and produce a large amount of code
libraries which could be used outside of perl.

Let me write this out completely before anyone really tears into the idea.


-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
gumballs have no paste
Tim's balls are so damn pasty
bend over and squeal
-- |siv|



Re: Checkpoint

2000-09-07 Thread Michael G Schwern

On Thu, Sep 07, 2000 at 11:55:17PM -0600, Nathan Torkington wrote:
> Any more?  I'm keen to learn from mistakes (preferably those of
> others, but my own will do in a pinch :-).

How about: If you make an earthshaking decision on day three of a
conference, do not announce it on day five.  Wait until you get home.
Had we sat on it for a week before making a public announcement
strategic people would have been back at their computers to head off
the shock and confusion that errupted.

Of course, then Larry wouldn't have had his thunder.


-- 

Michael G Schwern  http://www.pobox.com/~schwern/  [EMAIL PROTECTED]
Just Another Stupid Consultant  Perl6 Kwalitee Ashuranse
But why?  It's such a well designed cesspool of C++ code.  Why wouldn't
you want to hack mozilla?
-- Ziggy