I've submitted a patch to the ccnet-devel list as a reply to lukes
initial patch in the thread "Improving the LastChangeLabeler".
This is my first patch contribution, so I hope I got everything right,
and that the developers can integrate the patch into the trunk for the
1.4.3 release.

//P-J

On 19 Feb, 08:23, Ruben Willems <[email protected]> wrote:
> Hi
>
> if you can make it this week,
> maybe we can squeeze it into the 1.4.3 release
>
> with kind regards
> Ruben Willems
>
> On Wed, Feb 18, 2009 at 5:00 PM, Per-Jonny Käck <[email protected]> wrote:
> > Great, I think we have reached some kind of consensus now.
> > I will look into creating a new patch using the TortoiseSVN client.
> > The LastChangeLabeller behavior will be:
>
> > With prefix="pre" and allowDuplicateSubsequentLabels=false:
> > pre1234.1
> > pre1234.2
> > pre1235.1
> > ->change configuration file and set prefix="new", then trigger a forced
> > build without modifications
> > pre1235.2
> > new1236.1
> > new1236.2
>
> > With prefix="pre" and allowDuplicateSubsequentLabels=true:
> > pre1234
> > pre1234
> > pre1235
> > ->change configuration file and set prefix="new", then trigger a forced
> > build without modifications
> > pre1235
> > new1236
> > new1236
>
> > To minimize the impact on existing projects,
> > allowDuplicateSubsequentLabels=true will be the default behavior.
>
> > //P-J
>
> > 2009/2/18 [email protected] <[email protected]>
>
> >> Well, I'd like to thank you to you guys for bringing this back up
> >> again. I did find the patch for lastchangelabeller on the developers
> >> forum, but Im unsure of how to implement it. All I need it for
> >> lastchangelabeller to stop throwing an unknown if there is no
> >> transactions between builds.
> >> I think my requirements are similiar to Shauns....having it increment
> >> with a xxx.1 xxx.2 is fine by me.
>
> >> On Feb 18, 6:51 am, Ruben Willems <[email protected]> wrote:
> >> > Hi...
>
> >> > read more »
>
> >> > just sparsely following this discussion
> >> > each labeler stands on its own, thre is no reletion between 2 labellers.
>
> >> > the more the labellers act the same in a given situation, the better of
> >> > course,
> >> > but this does not have to be. If there is a good reason, why not do it.
>
> >> > there is a big change between the datalabeller and the default labeller
> >> ;-)
>
> >> > Do keep in mind that when you make a breaking change, is not fun.
> >> > So try to keep the existing default behaviour if possible.
> >> > Adding extra properties is not a problem, as long as this doe snot
> >> result in
> >> > stuff like this
>
> >> > bool UseNewSetup
>
> >> > and than somewhere in code
>
> >> > if (UseNewSetup)
> >> > {
> >> >  bla bla
>
> >> > }
>
> >> > in this case it would make more sense to create a new labeller with the
> >> > desired behaviour
>
> >> > my 2 cents
>
> >> > with kind regards
> >> > Ruben Willems
>
> >> > On Wed, Feb 18, 2009 at 12:29 PM, Per-Jonny Käck <[email protected]>
> >> wrote:
> >> > > I can agree with you that either forcing .nnn for all labels, or
> >> pre1234
> >> > > followed by pre1234.2 would be more logical.
> >> > > It's just that the FileLabeller is implemented as pre1234 followed by
> >> > > 1234-1.
> >> > > And lukes propsed patch seems to follow the same scheme.
> >> > > The question is if it is better have a consistent behavior between the
> >> > > label implementations, or a logical implementation of the
> >> LastChangeLabeller
> >> > > only???
> >> > > Is there any CruiseControl.NET developer that has an opinion?
>
> >> > > //P-J
>
> >> > > 2009/2/18 CinnamonDonkey <[email protected]>
>
> >> > >> Sounds good to me P-J,
>
> >> > >> The only comment I would have but it's just me being pedantic now is
> >> > >> that if the labeller is allowing the post fix of '.nnn' then all
> >> > >> labels should follow the same scheme:
>
> >> > >>  pre1234.1
> >> > >>  pre1234.2
> >> > >>  pre1235.1
>
> >> > >> ...and not:
>
> >> > >>  pre1234
> >> > >>  pre1234.1
> >> > >>  pre1235
>
> >> > >> ...as this does not seem logical to me. At the very least it should
> >> > >> be:
>
> >> > >>  pre1234         (<-- is effectively pre1234.1 as it was the first
> >> > >> build with the label 1234)
> >> > >>  pre1234.2
>
> >> > >> Like I say, I'm just being pedantic.
>
> >> > >> Shaun ;-)
>
> >> > >> On 18 Feb, 10:48, P-J <[email protected]> wrote:
> >> > >> > Yes, we are talking about the same thing concerning duplicate
> >> labels.
>
> >> > >> > About my next paragaraph, it only applies if you have specified a
> >> > >> > prefix.
> >> > >> > Let's say you are currently using the string "pre" as prefix, and
> >> you
> >> > >> > have set AllowDuplicateSubsequentLabels=true for our new
> >> > >> > LastChangeLabeller.
> >> > >> > Using your examples, the labels would look like this:
> >> > >> > pre1234
> >> > >> > pre1234
> >> > >> > pre1235
> >> > >> > At this point change your configuration file and set the label
> >> prefix
> >> > >> > to the string "new", then force a new build without modifications,
> >> and
> >> > >> > the labels will be as follows.
> >> > >> > pre1235
> >> > >> > new1236
> >> > >> > new1237
>
> >> > >> > With AllowDuplicateSubsequentLabels=False the labels would be:
> >> > >> > pre1234
> >> > >> > pre1234.1
> >> > >> > pre1235
> >> > >> > At this point change your configuration file and set the label
> >> prefix
> >> > >> > to the string "new", then force a new build without modifications,
> >> and
> >> > >> > the labels will be as follows.
> >> > >> > pre1235.1
> >> > >> > new1236
> >> > >> > new1237
>
> >> > >> > Personally I think this behavior would be ok, i.e. that the change
> >> of
> >> > >> > the prefix will not be visible until you have a new build with
> >> > >> > modifications.
> >> > >> > The good thing is about this solution is that it is easy to use and
> >> > >> > understand, and doesn't restrict your choice of prefix in any way.
>
> >> > >> > //P-J
>
> >> > >> > On 18 Feb, 11:29, CinnamonDonkey <[email protected]>
> >> > >> > wrote:
>
> >> > >> > > Hi P-J,
>
> >> > >> > > Adding a new attribute, "AllowDuplicateSubsequentLabels" sounds
> >> like a
> >> > >> > > good plan as it allows more flexibility to the end user and
> >> satisfies
> >> > >> > > my own requirements.
>
> >> > >> > > I'm not sure I fully understand the next paragraph, but I think
> >> we are
> >> > >> > > talking about the same thing.
>
> >> > >> > > If I can end up with:
>
> >> > >> > > 1234
> >> > >> > > 1234
> >> > >> > > 1235
> >> > >> > > 1235
> >> > >> > > 1236
> >> > >> > > 1237
>
> >> > >> > > I'll be a very happy chappie, but I could live with:
>
> >> > >> > > 1234.1
> >> > >> > > 1234.2
> >> > >> > > 1235.1
> >> > >> > > 1235.2
> >> > >> > > 1236.1
> >> > >> > > 1237.1
>
> >> > >> > > If it was a necessary compromise but I think the post fix should
> >> be
> >> > >> > > optional.
>
> >> > >> > > Shaun
>
> >> > >> > > On 18 Feb, 08:25, Per-Jonny Käck <[email protected]> wrote:
>
> >> > >> > > > Ok, then a "AllowDuplicateSubsequentLabels" attribute (e.g.
> >> used by
> >> > >> the
> >> > >> > > > FileLabeller) should be added to lukes patch, since his patch
> >> always
> >> > >> > > > increments the latest label.
>
> >> > >> > > > Do you have any problems with that if you change the prefix in
> >> your
> >> > >> > > > configuration file, then you won't see the new prefix until
> >> there is
> >> > >> a new
> >> > >> > > > build with modifications, since builds without modifications
> >> will be
> >> > >> > > > labelled based on the last label. I think this behavior would
> >> be ok,
> >> > >> and it
> >> > >> > > > makes the source code much cleaner.
>
> >> > >> > > > //P-J
>
> >> > >> > > > 2009/2/18 CinnamonDonkey <[email protected]>
>
> >> > >> > > > > Our requirement is that each build is labelled with the
> >> change
> >> > >> list
> >> > >> > > > > number (we use Perforce) used to create that build. This
> >> means
> >> > >> that we
> >> > >> > > > > can relate any particular build directly back to a specific
> >> point
> >> > >> in
> >> > >> > > > > the source history. Anything else is meaningless.
>
> >> > >> > > > > Since the change list numbers are unique an represent a
> >> particular
> >> > >> > > > > moment in time this should be perfectly possible.
>
> >> > >> > > > >   - If a modification exists use the highest retrieved
> >> > >> modification
> >> > >> > > > > change list number.
> >> > >> > > > >   - If no modifications exist, we must still be on the same
> >> > >> > > > > modification change list number.
>
> >> > >> > > > > Duplicated labels should be valid as the build date/time
> >> stamp is
> >> > >> used
> >> > >> > > > > to reflect the exact identity of that build. The label
> >> correlates
> >> > >> the
> >> > >> > > > > build with the source.
>
> >> > >> > > > > For us anyway (everyone's requirements are different ;).
>
> >> > >> > > > > Regards,
> >> > >> > > > > Shaun
>
> >> > >> > > > > On 18 Feb, 08:04, P-J <[email protected]> wrote:
> >> > >> > > > > > This is still an issue on the latest build.
> >> > >> > > > > > The LastChangeLabeller is not good enough, and requires a
> >> patch.
>
> >> > >> > > > > > The problem has also recently been mentioned e.g. in the
> >> > >> following
> >> > >> > > > > > ccnet-user threads:
> >> > >> > > > > > "<LastChangelabeller> :Accurev/CCNET error: Given
> >> Update...".
> >> > >> > > > > > "LastChangeLabeller issue in case of a forced build with no
> >> > >> changes in
> >> > >> > > > > > SVN"
> >> > >> > > > > > "LastChangeLabeller and Unknown with Accurev"
>
> >> > >> > > > > > A patch has been submitted by luke to ccnet-devel, thread
> >> > >> "Improving
> >> > >> > > > > > the LastChangeLabeler".
> >> > >> > > > > > His patch appends a ".1" or increment an existing integer
> >> to the
> >> > >> last
> >> > >> > > > > > label, instead of creating an "unkown" label.
> >> > >> > > > > > Is this good enough for everyone? In this patch:
> >> > >> > > > > > - If you change the Prefix in your config file, and then
> >> make a
> >> > >> forced
> >> > >> > > > > > build with no modifications, then his patch will return an
> >> > >> incremented
> >> > >> > > > > > label with the old prefix. Is this ok?
> >> > >> > > > > > - There is no "AllowDuplicateSubsequentLabels" to choose if
> >> you
> >> > >> only
> >> > >> > > > > > want the LastChangeLabeller to return the latest label, or
> >> if
> >> > >> you want
> >> > >> > > > > > it to return the latest label with an incremented suffix.
>
> >> > >> > > > > > What do you want?
> >> > >> > > > > > I would be happy to contribute if could just get this into
>
> ...
>
> läs mer »

Reply via email to