Re: ***SPAM*** Re: [Chicken-hackers] multiple issues in embedded PCRE

2007-11-24 Thread Alex Queiroz
Hallo,

On Nov 23, 2007 6:27 PM, John Cowan [EMAIL PROTECTED] wrote:

  Preaching to the choir I'm sure but other SCM systems don't have this
  problem (if I understand the issue correctly). My experience is limitied to
  bitkeeper and monotone, I have evaluated darcs, mecurial, git and a couple
  others also but settled on monotone.

 All of those are change-oriented systems, where you can in principle
 have 2^n versions from n changes (though of course most of those
 combinations won't even build).  Version-oriented systems like rcs,
 cvs, and svn (and remember that svn is only intended to replace cvs,
 which it has done successfully) only have n versions from n changes.


 Monotone stores versions, not patches.

Cheers,
-- 
-alex
http://www.ventonegro.org/


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: ***SPAM*** Re: [Chicken-hackers] multiple issues in embedded PCRE

2007-11-23 Thread Matthew Welland
On Friday 23 November 2007 06:03:15 am Peter Bex wrote:
 On Fri, Nov 23, 2007 at 12:44:16PM +0100, felix winkelmann wrote:
  On Nov 23, 2007 6:19 AM, John Cowan [EMAIL PROTECTED] wrote:
   Fair enough.  Since the tarballs don't come with eggs (there is only
   one egg repository), in effect you have the best hope of using
   eggs if you have the trunk code replaced.  To have what other
   projects mean by stable releases, we'd have to branch the
   egg repository with each release and make sure that chicken-setup
   from a tarball invokes the correct set of eggs.  That way you
   could load 2.731 and get the 2.731-usable eggs with it.
 
  I lord... Even though I feel that this is the only really working
  solution, the amount of storage, bandwidth and the added complexity for
  the tools makes my head spin...

 I don't think the tools need to be changed.  You just need to point
 chicken-setup at a specific version of the egg tarball repository and
 it defaults to the one that matches the version, I think.

This doesn't seem that hard from my (posibly naive) perspective. 

In every release an svn cp .../eggs .../rel-a.b.c/eggs is done. 
chicken-setup merely needs to a) know the version and b) get the eggs 
from .../rel-a.b.c/eggs

  Is this a viable approach? What do others think? How could one keep
  track of bugfixes merged from one branch to the other? Is svn flexible
  enough for this? Any opinions?

Simply don't do it. Bound your scope. NO BACKPORTING OF FIXES. All bug fixes 
are applied to the head. All the branches are locked and check ins are NOT 
allowed. BTW how merging like this works in svn is one more reason to not 
love svn :-)

 Do we really need a branch?  Just tagging the egg repos should be enough
 once a version is released, no?  The egg repos wouldn't change, since the
 chicken version is pinned to a stable non-changing version too.

A branch and a tag in svn are effectively the same thing. 

 Afaik you can only merge properly in one direction in svn.  You can merge
 bugfixes from a branch you're working on to other branches and to trunk.
 I think if you always merge every change from the branch to all branches,
 you can control it pretty easily.  You know the revision numbers to merge
 because you can ask 'svn info' the version before you start fixing the
 bug and you get it after checked in your changes (message commited
 revision X)

 Otherwise, you could keep a list of merges from branch revisions in the
 branch directory of other versions, but that quickly becomes a headache
 unless you have a clear protocol on how to go about merging.  You can't
 apply the same diff twice to a branch so this can easily cause problems.
 My colleague tells me the svn team is working towards a solution for this
 problem.

Preaching to the choir I'm sure but other SCM systems don't have this 
problem (if I understand the issue correctly). My experience is limitied to 
bitkeeper and monotone, I have evaluated darcs, mecurial, git and a couple 
others also but settled on monotone. Anyhow, in monotone for example I 
can propagate a changeset to a branch quite easily. If I propagate again 
no harm is done. However what you describe sounds dangerously close to 
cherry picking and down that road lies insanity. I recommend not going 
there. I have used svn extensively for several years and once I ramped up 
on monotone I find using svn very limiting. Don't even think about cherry 
picking in svn. Well, ok. go ahead and cherry pick just don't attempt to 
use svn itself for the cherry picking. Create patches using svn diff. The 
manually apply those patches. 

Even after writing the previous paragraph I still say *NO BACKPORTING 
FIXES* The goal is NOT to make stable releases that can be picked up at 
any time and used. The goal (IMHO) is to make it easy for end users to 
stick with something that is already working for them. The end users can 
then move to a new release knowing that it is fairly easy to get back to 
where they were for either debugging wierd issues or proving that something 
*used* to work.

I really want to be able to seamlessly install a historical version of 
chicken and an associated suite of eggs all at the right version.

 Cheers,
 Peter

Matt
-- 
http://www.kiatoa.com, fight for a better world.


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-hackers


Re: ***SPAM*** Re: [Chicken-hackers] multiple issues in embedded PCRE

2007-11-22 Thread Mario Domenech Goulart
Hi John and folks,

On Thu, 22 Nov 2007 17:04:41 -0500 John Cowan [EMAIL PROTECTED] wrote:

 Mario Domenech Goulart scripsit:
 
  Stable releases = http://chicken.wiki.br/releases
 
 These may be stable in the sense that the bits in them, exept for the
 most recent instance, don't change: but they are not stable releases
 as generally understood.  They are not specially tested or debugged;
 about the only guarantee is that they do actually build.  They may not
 work with the current egg repository or anything else.
 
  Development code = https://[EMAIL 
  PROTECTED]/svn/chicken-eggs/chicken/branches/trunk
 
 Not chicken/branches/trunk but chicken/trunk.

Yes, thanks for pointing that (I made a mistake when hand-editing the
link).

 The code from svn trunk is used to build all the eggs once a day.
 
 This is why I say that the HEAD of trunk is the best and most useful
 available Chicken, except when it happens to be regressed, in which case
 a complaint to Felix will almost always bring a quick fix.

Actually all the releases go through the salmonella runs.  When Felix
thinks it's stable enough, we have a new release.

Eventually it may be buggy, as most (if not all) stable software
are, but when it's released, it's supposed to be stable, specially in
the sense that the code won't change.  When I say chicken-version
I know what code I'm talking about (even if it is buggy); when I say
chicken from svn trunk, it is a moving target -- it may contain
fixes for bugs I found out yesterday and implemented a workaround,
which may be invalid with the trunk I get today.

Anyway, maybe that's just a slightly different view of the stable
word.  The fact is that we have a release tarball (supposedly bug
free; given a version number, the code doesn't change and it doesn't
need chicken to be compiled) and the svn branches code (development
code, constantly changing and needs chicken to be bootstrapped).

Best wishes,
Mario


___
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-hackers