You can subscribe to this list here.
| 2003 |
Jan
|
Feb
(1) |
Mar
|
Apr
(3) |
May
(33) |
Jun
(44) |
Jul
(40) |
Aug
(23) |
Sep
(26) |
Oct
(41) |
Nov
(37) |
Dec
(42) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(40) |
Feb
(58) |
Mar
(81) |
Apr
(94) |
May
(77) |
Jun
(83) |
Jul
(55) |
Aug
(118) |
Sep
(51) |
Oct
(193) |
Nov
(77) |
Dec
(17) |
| 2005 |
Jan
(56) |
Feb
(87) |
Mar
(83) |
Apr
(155) |
May
(115) |
Jun
(157) |
Jul
(90) |
Aug
(87) |
Sep
(145) |
Oct
(56) |
Nov
(105) |
Dec
(88) |
| 2006 |
Jan
(56) |
Feb
(93) |
Mar
(30) |
Apr
(46) |
May
(46) |
Jun
(16) |
Jul
(33) |
Aug
(54) |
Sep
(47) |
Oct
(21) |
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
|
2
|
3
|
4
|
5
|
|
6
|
7
(1) |
8
(1) |
9
(3) |
10
(5) |
11
(12) |
12
|
|
13
(5) |
14
(1) |
15
(8) |
16
(7) |
17
(6) |
18
(10) |
19
(1) |
|
20
(2) |
21
(5) |
22
(2) |
23
(4) |
24
(6) |
25
|
26
(1) |
|
27
(1) |
28
(6) |
|
|
|
|
|
|
From: Mike R. <mik...@gm...> - 2005-02-28 21:12:49
|
On Mon, 28 Feb 2005 07:49:35 -0800, Rami AbuGhazaleh <Ra...@no...> wrote: > > I just installed SourceGear Vault Client v2.0.3 and the vault.exe history > command syntax indicates that the repository path should be the last > argument. > > I do not have an earlier version to install, but I think that is the same > syntax since the first version. Hi Rami, I just posted a message on the Vault forum on the same thread as yours to ask for confirmation for pre version 2. I'm just a bit concerned since we haven't heard of this problem before and I haven't setup Vault locally to test it. Cheers, Mike |
|
From: Stephen T. <st...@re...> - 2005-02-28 20:27:26
|
I was reading up on the CruiseControl website (non .NET) and I came across a cool little way to reduce the amount of duplicate data in my ccnet.config file. The use of !ENTITY tags in my xml file! =20 However, I am running into problems when I attempt to start my CCNet service, namely: 2/28/2005 3:19:03 PM: [CruiseControl Server:Info]: Reading configuration file "D:\CruiseControl.NET\ccnet.config" 2/28/2005 3:19:03 PM: [CruiseControl Server:Info]: Loading config schema: The 'cruisecontrol' element is not declared. An error occurred at file:///D:/CruiseControl.NET/ccnet.config, (81, 2). 2/28/2005 3:19:03 PM: [CruiseControl Server:Info]: Loading config schema: The 'project' element is not declared. An error occurred at file:///D:/CruiseControl.NET/ccnet.config, (82, 3). 2/28/2005 3:19:03 PM: [CruiseControl Server:Info]: Loading config schema: The 'name' element is not declared. An error occurred at file:///D:/CruiseControl.NET/ccnet.config, (83, 4). . . . =20 I'm not sure what I'm doing wrong, the Config file looks like this: <?xml version=3D"1.0"?> <!DOCTYPE cruisecontrol [ <!ENTITY build_onchange ' <triggers> <intervalTrigger seconds=3D"300"/> <!-- Do not run the autobuilder at night because the Nightly build will be running --> <filterTrigger startTime=3D"00:01" endTime=3D"06:00"> <trigger type=3D"intervalTrigger" = seconds=3D"300" /> <weekDays> <weekDay>Sunday</weekDay> <weekDay>Monday</weekDay> <weekDay>Tuesday</weekDay> <weekDay>Wednesday</weekDay> <weekDay>Thursday</weekDay> <weekDay>Friday</weekDay> </weekDays> </filterTrigger> </triggers> '> . . . ]> <cruisecontrol> =20 <project name=3D"ResumeMirror.Utilities-AutoBuild"> <name>ResumeMirror.Utilities-AutoBuild</name> =20 =20 <webURL>http://bacteria/ccnet/ResumeMirror.Utilities</webURL> =20 =20 <workingDirectory>D:\CruiseControl.NET\p4\main\Shared\src\ResumeMirror.U tilities</workingDirectory> <artifactDirecotry>artifacts</artifactDirecotry> <publishExceptions>true</publishExceptions> =20 =20 &build_onchange; . . . </> =20 Any help would be greatly appreciated. I'm starting to get a LOT of projects in my service and it's getting tedious to manage all of this xml :) Stephen |
|
From: Kevin E. <Min...@gm...> - 2005-02-28 18:49:50
|
Hi, i wonder if it is now possible to write my own PlugIn for the WebDashboard and attach it to the binary Version? I put my custom assembly (.dll) into the bin directory of the Dashboard and then tried to get it to run inside the Dashboard (through the web.config), but till yet without success. Is this feature already implemented into the WebDashboard or is the only way by adding the code directly to the WebDashboard assemblies (by recompiling from src)? Thanks Kevin -- Lassen Sie Ihren Gedanken freien Lauf... z.B. per FreeSMS GMX bietet bis zu 100 FreeSMS/Monat: http://www.gmx.net/de/go/mail |
|
From: Mike R. <mik...@gm...> - 2005-02-28 05:02:19
|
Please can someone provide feedback as to whether such a change would
break older (e.g. pre-version 2) versions of Vault? If so, we'll have
to add a configurable hook.
Mike
On Sun, 27 Feb 2005 12:33:12 -0800, Rami AbuGhazaleh <Ra...@no...> wrote:
>
> private const string COMMAND_LINE = @"history ""{0}"" -host ""{1}"" -user
> ""{2}"" -password ""{3}"" -repository ""{4}"" -rowlimit 0";
>
> private string BuildHistoryProcessArgs()
> {
> string args = string.Format(COMMAND_LINE, Folder, Host, Username,
> Password, Repository);
> if (Ssl)
> {
> args += " -ssl";
> }
> return args;
> }
>
> The folder path should be the last parameter in the command line arguments
> for SourceGear Vault v2.0.6.
>
> This is causing errors when the ccnet service polls for modifications to the
> project from source control.
>
> The above code should be modified as such:
>
>
> private const string COMMAND_LINE = @"history -host ""{0}"" -user ""{1}""
> -password ""{2}"" -repository ""{3}"" -rowlimit 0 ""{4}""";
>
> private string BuildHistoryProcessArgs()
> {
> string args = string.Format(COMMAND_LINE, Host, Username, Password,
> Repository, Folder);
> if (Ssl)
> {
> args += " -ssl";
> }
> return args;
> }
>
> Thank you.
> -Rami Abughazaleh
--
mike roberts | http://mikeroberts.thoughtworks.net/ |
http://www.thoughtworks.com/
|
|
From: Mike R. <mik...@gm...> - 2005-02-28 04:29:18
|
On Sat, 26 Feb 2005 17:27:31 +0100, Peter <pe...@de...> wrote: > Getting the list of files into NAnt as a fileset is probably what I really > want, but I'm not sure yet how to accomplish that in the best manner. > > Any ideas? I can't think of anyway of doing this particularly nicely on the command line. Maybe you could create a property for each file, where the property has a suffix which is an indexer (e.g. invoking NAnt would be something like -D:modification.1=bob -D:modification.2=barney), and then use a <script> in your NAnt sctipy section to go over all the properties in the project. Another alternative could be to code-gen a small piece of NAnt script and use this in your build. Mike |
|
From: Rami A. <Ra...@no...> - 2005-02-27 20:31:11
|
private const string COMMAND_LINE =3D @"history ""{0}"" -host ""{1}""
-user ""{2}"" -password ""{3}"" -repository ""{4}"" -rowlimit 0";
=20
private string BuildHistoryProcessArgs()
{
string args =3D string.Format(COMMAND_LINE, Folder, Host, Username,
Password, Repository);
if (Ssl)
{
args +=3D " -ssl";
}
return args;
}
=20
The folder path should be the last parameter in the command line
arguments for SourceGear Vault v2.0.6.
=20
This is causing errors when the ccnet service polls for modifications to
the project from source control.
=20
The above code should be modified as such:
=20
private const string COMMAND_LINE =3D @"history -host ""{0}"" -user
""{1}"" -password ""{2}"" -repository ""{3}"" -rowlimit 0 ""{4}""";
=20
private string BuildHistoryProcessArgs()
{
string args =3D string.Format(COMMAND_LINE, Host, Username, Password,
Repository, Folder);
if (Ssl)
{
args +=3D " -ssl";
}
return args;
}
=20
Thank you.
-Rami Abughazaleh
|
|
From: Peter <pe...@de...> - 2005-02-26 16:28:40
|
Hi all, I have a scenario where I need to take action on each file that was detected as modified. So far I haven't seen any support for doing this with the current builder blocks (correct me if I'm wroing :) I have thought of creating a new Builder block that executes a command line for each modified file, passing the path/filename on to the executable as a command line parameter. This is easy to implement (fact is, I'm halfway there) and generic (since you could call whatever executable you like) but is potentially inefficient since you would have to start the process for each file in the changeset. Getting the list of files into NAnt as a fileset is probably what I really want, but I'm not sure yet how to accomplish that in the best manner. Any ideas? Peter Lillevold http://blogs.eternia.cc/peter |
|
From: Eric B. <Er...@ma...> - 2005-02-24 21:34:01
|
Working now! It turns out that filter paths are CaSe Sensitive... :-) Thanks! -EAB -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Owen Rogers Sent: Thursday, February 24, 2005 1:35 PM To: ccn...@li... Subject: Re: [Ccnet-devel] RE: [Ccnet-user] VSS modification history one day off!?!? > And if I manually run it from the command prompt it works (correctly=20 > returns a list of modifications). But the server is still saying "No=20 > Modifications Detected." eric, thanks for testing this. this does seem strange considering that ccnet is only executing that command and parsing the results. i tried something similar against my local repository with the current build and it seemed to work. i've checked in a new version (the forthcoming build 781) where i've added logging of all output from the process streams. however, in doing so, i also reduced the default logging level to info from debug. so this means that you will need to change the logging level in your ccnet.exe.config file to 4. cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel781 |
|
From: Owen R. <exo...@gm...> - 2005-02-24 19:35:09
|
> And if I manually run it from the command prompt it works (correctly > returns a list of modifications). But the server is still saying "No > Modifications Detected." eric, thanks for testing this. this does seem strange considering that ccnet is only executing that command and parsing the results. i tried something similar against my local repository with the current build and it seemed to work. i've checked in a new version (the forthcoming build 781) where i've added logging of all output from the process streams. however, in doing so, i also reduced the default logging level to info from debug. so this means that you will need to change the logging level in your ccnet.exe.config file to 4. cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com |
|
From: Eric B. <Er...@ma...> - 2005-02-24 18:43:14
|
Hmmm... I just did a little testing with build 779, and it might only be partly fixed. The string being generated now looks good, in my case: "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" history $/LiveScan -R -Vd2/24/2005;12:20p~2/22/2005;4:54p -YBuilder,builder -I-Y And if I manually run it from the command prompt it works (correctly returns a list of modifications). But the server is still saying "No Modifications Detected." Does that make any sense? Thanks- -EAB -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Owen Rogers Sent: Thursday, February 24, 2005 12:30 PM To: ccn...@li... Subject: Re: [Ccnet-devel] RE: [Ccnet-user] VSS modification history one day off!?!? > Thanks for the feedback - we have actually fixed this for the next release: >=20 > http://jira.public.thoughtworks.org/browse/CCNET-319 actually, there was a bug in this "fix" which has hopefully now been "fixed". cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=3D6595&alloc_id=3D14396&op=3Dclick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel |
|
From: Owen R. <exo...@gm...> - 2005-02-24 18:30:30
|
> Thanks for the feedback - we have actually fixed this for the next release: > > http://jira.public.thoughtworks.org/browse/CCNET-319 actually, there was a bug in this "fix" which has hopefully now been "fixed". cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com |
|
From: Owen R. <exo...@gm...> - 2005-02-24 17:57:41
|
> I am having difficulty with CCNet detecting changes correctly in VSS. I have > started with the .8 release and took the changes on Revision 1.5 of > VssLocale.cs to try to correct the problem, but that fix was generating > problems as well. I ultimately reverted my VssLocale.cs to Revision 1.2. I > am not very familiar with this code and am unsure of the ramifications of > these code changes. The changes were made by "exortech", but (I apologize) I > am not sure who that is. I am willing to help come up with a solution but > I'll need help from someone who is familiar with this code. For now, rolling > back the code to Revision 1.2 appears to have fixed my problem. Thanks! that would be me. i royally screwed this one up. sorry about that. in the process of trying to make things better, i managed to make the worse. i was trying to get Vss to detect modifications at the granularity of seconds, but apparently this breaks for some configurations (not sure why). i managed to make things worse by allowing a space to creep into the date string as well. anyway, i've pretty much reverted the changes to the version that you mentioned. it should be included as part of the 779 build. cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com |
|
From: Nilakanta M. <nil...@gm...> - 2005-02-24 07:10:02
|
Hi Mark,
It is my fault, will rectify the NAntBuilder soon.
thanks,
nila
On Wed, 23 Feb 2005 15:18:42 -0600, Mark E Seelye <mar...@uh...> wrote:
>
> Recently the 1.30 version of NAntBuilder had the following lines added to
> it:
> AppendIfNotBlank(buffer, @"-D:ccnet.working.directory={0}",
> result.WorkingDirectory);
> AppendIfNotBlank(buffer, @"-D:ccnet.artifact.directory={0}",
> result.ArtifactDirectory);
>
> I was thinking these should actually put quotes around the working
> directory, and artifact directory since the configuration may have spaces in
> the default paths or specified paths.
>
> AppendIfNotBlank(buffer, @"-D:ccnet.working.directory={0}",
> SurroundInQuotesIfContainsSpace(result.WorkingDirectory));
> AppendIfNotBlank(buffer, @"-D:ccnet.artifact.directory={0}",
> SurroundInQuotesIfContainsSpace(result.ArtifactDirectory));
>
> Thanks,
> Mark
>
>
> This e-mail, including attachments, may include confidential and/or
> proprietary information, and may be used only by the person or entity to
> which it is addressed. If the reader of this e-mail is not the intended
> recipient or his or her authorized agent, the reader is hereby notified
> that any dissemination, distribution or copying of this e-mail is
> prohibited. If you have received this e-mail in error, please notify the
> sender by replying to this message and delete this e-mail immediately.
>
|
|
From: <Jon...@mi...> - 2005-02-23 21:51:35
|
I am having difficulty with CCNet detecting changes correctly in VSS. I
have started with the .8 release and took the changes on Revision 1.5 of
VssLocale.cs to try to correct the problem, but that fix was generating
problems as well. I ultimately reverted my VssLocale.cs to Revision 1.2. I
am not very familiar with this code and am unsure of the ramifications of
these code changes. The changes were made by "exortech", but (I apologize)
I am not sure who that is. I am willing to help come up with a solution
but I'll need help from someone who is familiar with this code. For now,
rolling back the code to Revision 1.2 appears to have fixed my problem.
Thanks!
~Jon
|
|
From: Mark E S. <mar...@uh...> - 2005-02-23 21:17:59
|
Recently the 1.30 version of NAntBuilder had the following lines added to
it:
AppendIfNotBlank(buffer, @"-D:ccnet.working.directory={0}",
result.WorkingDirectory);
AppendIfNotBlank(buffer, @"-D:ccnet.artifact.directory={0}",
result.ArtifactDirectory);
I was thinking these should actually put quotes around the working
directory, and artifact directory since the configuration may have spaces
in the default paths or specified paths.
AppendIfNotBlank(buffer, @"-D:ccnet.working.directory={0}",
SurroundInQuotesIfContainsSpace(result.WorkingDirectory));
AppendIfNotBlank(buffer, @"-D:ccnet.artifact.directory={0}",
SurroundInQuotesIfContainsSpace(result.ArtifactDirectory));
Thanks,
Mark
This e-mail, including attachments, may include confidential and/or
proprietary information, and may be used only by the person or entity to
which it is addressed. If the reader of this e-mail is not the intended
recipient or his or her authorized agent, the reader is hereby notified
that any dissemination, distribution or copying of this e-mail is
prohibited. If you have received this e-mail in error, please notify the
sender by replying to this message and delete this e-mail immediately.
|
|
From: Mike R. <mik...@gm...> - 2005-02-23 01:02:12
|
This shouldn't effect anyone, but for anyone interested the Web Dashboard no longer uses Web Forms (.aspx pages, etc.) I've written up some reasons why here: http://mikeroberts.thoughtworks.net/blog/archive/Tech/dotNet/GoodbyeWebForms.html Mike -- mike roberts | http://mikeroberts.thoughtworks.net/ | http://www.thoughtworks.com/ |
|
From: Mike R. <mik...@gm...> - 2005-02-23 00:54:58
|
On Tue, 22 Feb 2005 13:09:07 -0600, Eric Bowen <Er...@ma...> wrote: > After additional testing this looks like a CCNET bug. The following > line (slightly sanitized) was generated by CCNET, and it does not work > as expected. <snip> Hi Eric, Thanks for the feedback - we have actually fixed this for the next release: http://jira.public.thoughtworks.org/browse/CCNET-319 Cheers, Mike -- mike roberts | http://mikeroberts.thoughtworks.net/ | http://www.thoughtworks.com/ |
|
From: Eric B. <Er...@ma...> - 2005-02-22 19:09:31
|
After additional testing this looks like a CCNET bug. The following line (slightly sanitized) was generated by CCNET, and it does not work as expected. "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" history $/VSSDB1 -R -Vd2/22/2005;10:00:00a~2/22/2005;7:00:00a -YUser,password -I-Y If you edit out the seconds from time it works fine. Apparently SS.EXE doesn't understand hundredths of a second. "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" history $/VSSDB1 -R -Vd2/22/2005;10:00a~2/22/2005;7:00a -YUser,password -I-Y How do I go about officially reporting this? Thanks- -EAB -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Eric Bowen Sent: Tuesday, February 22, 2005 11:10 AM To: ccn...@li... Subject: [Ccnet-user] VSS modification history one day off!?!? =20 I'm having a weird issue where history being returned from VSS is one day off. This is effecting modification detection in CruiseControl, but it's really a SourceSafe problem. For example the following command generated by CCNET should return a list of files changed between 7:00 and 10:00 this morning: "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" history $/VSSDB1 -R -Vd2/22/2005;10:00:00a~2/22/2005;7:00:00a -YUser,password -I-Y But it returns nothing, even though there are changes. If I edit the command like so (changing the second date): "C:\Program Files\Microsoft Visual Studio\VSS\win32\ss.exe" history $/VSSDB1 -R -Vd2/22/2005;10:00:00a~2/22/2005;7:00:00a -YUser,password -I-Y It should return changes between 7:00am yesterday and 10:00am today, but only returns today's changes. The second date seems to be one day off...? This is running against VSS 6.0d with the following hotfix: http://support.microsoft.com/default.aspx?scid=3Dkb;en-us;837417 Is this a known issue? Thanks! -EAB ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-user mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-user |
|
From: Steve B. <St...@ma...> - 2005-02-22 00:23:26
|
In the past I have had problems with this labeling setup not correctly
updating version numbers. I hadn't figured it out, but today a coworker
took the time to look into it.
It turns out that using a shared state file doesn't work with the setup
below. It worked most of the time for me because every time I ran a
release build I would modify ccnet.config commenting out the CI build
trigger so it wouldn't build at the same time. Saving the ccnet.config
would cause the service to reinitialize and everything worked great.
If you do not reinitialize the service however the LastIntegrationResult
will be cached, resulting in improper labeling between the two projects
which you want to share the same label.
Looking for a solution...?
I am thinking perhaps a FileSystemWatcher could be setup in the
IntegrationStateManager (cause it knows where the file is). The
watcher's Changed event would be used to reload the state file but
because the IntegrationResultManager actually holds the reference to the
LastIntegrationResult it doesn't makes sense to have the
IntegrationStateManager update the LastIntegrationResult, but instead to
have it use a callback to notify the IntegrationResultManager and let
the IntegrationResultManager update itself in the callback.
Would this just make a mess, it seems it would work. Anybody have other
(better)ideas?
Thanks,
Steve Baker
Consultant
Magenic Technologies
Nobody's more serious about Microsoft.
At the end of the day, it's all just 1's and 0's.
-----Original Message-----
From: ccn...@li...
[mailto:ccn...@li...] On Behalf Of Steve
Baker
Sent: Monday, February 21, 2005 12:30 PM
To: ccn...@li...
Subject: RE: [Ccnet-devel] Build Label Reset
Here is a pared down version of a ccnet.config I would use. This type of
setup has worked very well for me. I have fully automated ci and release
nant scripts. Make sure you set up your projects to build in different
directories, for a long time I had them build in the same place because
they are the same code, then they both ran at the same time once :0
I would love to see this made part of ccnet, any chance guys?
<cruisecontrol>
<project name=3D"Continous">
<state type=3D"state" filename=3D"shared.state" />
<triggers>
<pollingInterval seconds=3D"60" />
</triggers>
<labeller type=3D"versionlabeller">
<increment>Revision</increment>
</labeller>
</project>
<project name=3D"Released">
<state type=3D"state" filename=3D"shared.state" />
<triggers>
<forceBuildSchedule time=3D"23:30" />
</triggers>
<labeller type=3D"versionlabeller">
<increment>Build</increment>
</labeller>
</project>
</cruisecontrol>
Steve Baker
Consultant
Magenic Technologies
Nobody's more serious about Microsoft.
At the end of the day, it's all just 1's and 0's.
-----Original Message-----
From: ccn...@li...
[mailto:ccn...@li...] On Behalf Of Steve
Baker
Sent: Monday, February 21, 2005 12:21 PM
To: ccn...@li...
Subject: RE: [Ccnet-devel] Build Label Reset
Cant have a new labeler without the tests...
using NMock;
using NUnit.Framework;
using ThoughtWorks.CruiseControl.Core;
using ThoughtWorks.CruiseControl.Core.Test;
using ThoughtWorks.CruiseControl.Core.Util;
using ThoughtWorks.CruiseControl.Remote;
namespace CruiseControlExtensions
{
[TestFixture]
public class VersionLabellerTest : CustomAssertion
{
VersionLabeller _labeller;
IntegrationResult result =3D null;
[SetUp]
public void SetUp()
{
_labeller =3D new VersionLabeller();
_labeller.Increment =3D IncrementNumber.Build;
result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
}
[Test]
public void Generate_Major()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Major;
Assert.AreEqual("1.0.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Minor()
{
IntegrationResult result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Minor;
Assert.AreEqual("0.1.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Build()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Build;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Revision()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Revision;
Assert.AreEqual("0.0.0.1",
_labeller.Generate(result));
}
[Test]
public void Generate_NullLabel()
{
result.Label =3D null;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_LastBuildFailed()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Failure;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void UnknownLastResultStatus()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Unknown;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
}
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick
_______________________________________________
Ccnet-devel mailing list
Ccn...@li...
https://lists.sourceforge.net/lists/listinfo/ccnet-devel
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick
_______________________________________________
Ccnet-devel mailing list
Ccn...@li...
https://lists.sourceforge.net/lists/listinfo/ccnet-devel
|
|
From: Steve B. <St...@ma...> - 2005-02-21 18:30:33
|
Here is a pared down version of a ccnet.config I would use. This type of
setup has worked very well for me. I have fully automated ci and release
nant scripts. Make sure you set up your projects to build in different
directories, for a long time I had them build in the same place because
they are the same code, then they both ran at the same time once :0
I would love to see this made part of ccnet, any chance guys?
<cruisecontrol>
<project name=3D"Continous">
<state type=3D"state" filename=3D"shared.state" />
<triggers>
<pollingInterval seconds=3D"60" />
</triggers>
<labeller type=3D"versionlabeller">
<increment>Revision</increment>
</labeller>
</project>
<project name=3D"Released">
<state type=3D"state" filename=3D"shared.state" />
<triggers>
<forceBuildSchedule time=3D"23:30" />
</triggers>
<labeller type=3D"versionlabeller">
<increment>Build</increment>
</labeller>
</project>
</cruisecontrol>
Steve Baker
Consultant
Magenic Technologies
Nobody's more serious about Microsoft.
At the end of the day, it's all just 1's and 0's.
-----Original Message-----
From: ccn...@li...
[mailto:ccn...@li...] On Behalf Of Steve
Baker
Sent: Monday, February 21, 2005 12:21 PM
To: ccn...@li...
Subject: RE: [Ccnet-devel] Build Label Reset
Cant have a new labeler without the tests...
using NMock;
using NUnit.Framework;
using ThoughtWorks.CruiseControl.Core;
using ThoughtWorks.CruiseControl.Core.Test;
using ThoughtWorks.CruiseControl.Core.Util;
using ThoughtWorks.CruiseControl.Remote;
namespace CruiseControlExtensions
{
[TestFixture]
public class VersionLabellerTest : CustomAssertion
{
VersionLabeller _labeller;
IntegrationResult result =3D null;
[SetUp]
public void SetUp()
{
_labeller =3D new VersionLabeller();
_labeller.Increment =3D IncrementNumber.Build;
result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
}
[Test]
public void Generate_Major()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Major;
Assert.AreEqual("1.0.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Minor()
{
IntegrationResult result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Minor;
Assert.AreEqual("0.1.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Build()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Build;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Revision()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Revision;
Assert.AreEqual("0.0.0.1",
_labeller.Generate(result));
}
[Test]
public void Generate_NullLabel()
{
result.Label =3D null;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_LastBuildFailed()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Failure;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void UnknownLastResultStatus()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Unknown;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
}
}
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick
_______________________________________________
Ccnet-devel mailing list
Ccn...@li...
https://lists.sourceforge.net/lists/listinfo/ccnet-devel
|
|
From: Steve B. <St...@ma...> - 2005-02-21 18:21:02
|
Cant have a new labeler without the tests...
using NMock;
using NUnit.Framework;
using ThoughtWorks.CruiseControl.Core;
using ThoughtWorks.CruiseControl.Core.Test;
using ThoughtWorks.CruiseControl.Core.Util;
using ThoughtWorks.CruiseControl.Remote;
namespace CruiseControlExtensions
{
[TestFixture]
public class VersionLabellerTest : CustomAssertion
{
VersionLabeller _labeller;
IntegrationResult result =3D null;
[SetUp]
public void SetUp()
{
_labeller =3D new VersionLabeller();
_labeller.Increment =3D IncrementNumber.Build;
result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
}
[Test]
public void Generate_Major()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Major;
Assert.AreEqual("1.0.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Minor()
{
IntegrationResult result =3D
IntegrationResultFixture.CreateIntegrationResult();
result.Label =3D "0.0.0.0";
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Minor;
Assert.AreEqual("0.1.0.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Build()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Build;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_Revision()
{
result.Status =3D IntegrationStatus.Success;
_labeller.Increment =3D IncrementNumber.Revision;
Assert.AreEqual("0.0.0.1",
_labeller.Generate(result));
}
[Test]
public void Generate_NullLabel()
{
result.Label =3D null;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void Generate_LastBuildFailed()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Failure;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
[Test]
public void UnknownLastResultStatus()
{
result.Label =3D "0.0.1.0";
result.Status =3D IntegrationStatus.Unknown;
Assert.AreEqual("0.0.1.0",
_labeller.Generate(result));
}
}
}
|
|
From: Steve B. <St...@ma...> - 2005-02-21 18:20:34
|
Here is the labeler... I never did get around to making it work with
tools like cvs that wont accept a "." in the label. I developed it
right in core, didn't get a chance to look at making it a plugin.
// TODO: Polish off tests
// TODO: Documentation (example)
// TODO: use a delimiter configurable for source control that wont take
"." in a label
using System;
using ThoughtWorks.CruiseControl.Remote;
using System.Text.RegularExpressions;
using ThoughtWorks.CruiseControl.Core;
using ThoughtWorks.CruiseControl.Core.Label;
using Exortech.NetReflector;
namespace CruiseControlExtensions
{
/// <summary>
/// Summary description for VersionLabeller.
/// </summary>
[ReflectorType("versionlabeller")]
public class VersionLabeller : ILabeller
{
public static string INITIAL_LABEL =3D "0.0.0.0";
private IncrementNumber _increment;
private bool _reset =3D false;
public string Generate(IIntegrationResult
previousResult)
{
string result =3D null;
if (previousResult =3D=3D null ||
previousResult.Label =3D=3D null)
{
result =3D IncrementLabel(INITIAL_LABEL);
}
else if(previousResult.Status =3D=3D
IntegrationStatus.Success)
{
result =3D
IncrementLabel(previousResult.Label);
}=20
else
{
result =3D previousResult.Label;
}
return result;
}
public void Run(IIntegrationResult result)
{
result.Label =3D Generate(result);
}
public string IncrementLabel(string label)
{
Regex expression =3D new
Regex(@"([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)");
Match match =3D expression.Match(label);
if(!match.Success) throw new
ArgumentException("label must be in a valid version format", label);
int major =3D int.Parse(match.Result("$1"));
int minor =3D int.Parse(match.Result("$2"));
int build =3D int.Parse(match.Result("$3"));
int revision =3D int.Parse(match.Result("$4"));
switch(Increment)
{
case IncrementNumber.Major:
major++;=20
if(_reset)
{
minor =3D 0;
build =3D 0;
revision =3D 0;
}
break;
case IncrementNumber.Minor:
minor++;
if(_reset)
{
build =3D 0;
revision =3D 0;
}
break;
case IncrementNumber.Build:
build++;
if(_reset)=20
{
revision =3D 0;
}
break;
case IncrementNumber.Revision:
revision++;
break;
}
return string.Format("{0}.{1}.{2}.{3}", major,
minor, build, revision);
}
[ReflectorProperty("increment", Required =3D true)]
public IncrementNumber Increment
{
get
{
return _increment;
}
set
{
_increment =3D value;
}
}
[ReflectorProperty("reset", Required =3D false)]
public bool Reset
{
get
{
return _reset;
}
set
{
_reset =3D value;
}
}
}
public enum IncrementNumber
{
Major,
Minor,
Build,
Revision
}
}
|
|
From: Steve B. <St...@ma...> - 2005-02-21 17:35:20
|
Sure would, is attaching it to an email to the list the way to go, I have had problems with large emails not getting through to sourceforge lists before? Steve Baker Consultant Magenic Technologies Nobody's more serious about Microsoft. At the end of the day, it's all just 1's and 0's. -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Cort Schaefer Sent: Monday, February 21, 2005 8:58 AM To: ccn...@li... Subject: RE: [Ccnet-devel] Build Label Reset Is this something that you would be willing to share? -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Steve Baker Sent: Friday, February 18, 2005 10:43 AM To: ccn...@li... Subject: RE: [Ccnet-devel] Build Label Reset Oops, forgot to mention, another config setting tells it whether to reset the numbers lower than it to 0. So you can go from 0.1.0.11 to 0.1.1.0 or 0.9.4.44 to 1.0.0.0 Steve Baker Consultant Magenic Technologies Nobody's more serious about Microsoft. At the end of the day, it's all just 1's and 0's. -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Steve Baker Sent: Friday, February 18, 2005 11:40 AM To: ccn...@li... Subject: RE: [Ccnet-devel] Build Label Reset I wrote a custom labeler for this. Well, not exactly this. My labeler uses .NET's versioning X.X.X.X and can be configured in ccnet.config to increment any of the version numbers.=20 My continuous builds are set up to increment the revision, my release builds increment the build number. Steve Baker Consultant Magenic Technologies Nobody's more serious about Microsoft. At the end of the day, it's all just 1's and 0's. -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Stephen Tunney Sent: Friday, February 18, 2005 11:01 AM To: ccn...@li... Subject: [Ccnet-devel] Build Label Reset I'm not sure what everyone thinks out there, but wouldn't it be handy to have a build label reset command (in the dashboard or reports web pages)? This would be helpful when a release has occurred, and the mainline has been (logically) transformed to a new version, and therefore the build labels should start over again? Thanks, Stephen ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel |
|
From: Cort S. <co...@xm...> - 2005-02-21 14:58:10
|
Is this something that you would be willing to share? -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Steve Baker Sent: Friday, February 18, 2005 10:43 AM To: ccn...@li... Subject: RE: [Ccnet-devel] Build Label Reset Oops, forgot to mention, another config setting tells it whether to reset the numbers lower than it to 0. So you can go from 0.1.0.11 to 0.1.1.0 or 0.9.4.44 to 1.0.0.0 Steve Baker Consultant Magenic Technologies Nobody's more serious about Microsoft. At the end of the day, it's all just 1's and 0's. -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Steve Baker Sent: Friday, February 18, 2005 11:40 AM To: ccn...@li... Subject: RE: [Ccnet-devel] Build Label Reset I wrote a custom labeler for this. Well, not exactly this. My labeler uses .NET's versioning X.X.X.X and can be configured in ccnet.config to increment any of the version numbers.=20 My continuous builds are set up to increment the revision, my release builds increment the build number. Steve Baker Consultant Magenic Technologies Nobody's more serious about Microsoft. At the end of the day, it's all just 1's and 0's. -----Original Message----- From: ccn...@li... [mailto:ccn...@li...] On Behalf Of Stephen Tunney Sent: Friday, February 18, 2005 11:01 AM To: ccn...@li... Subject: [Ccnet-devel] Build Label Reset I'm not sure what everyone thinks out there, but wouldn't it be handy to have a build label reset command (in the dashboard or reports web pages)? This would be helpful when a release has occurred, and the mainline has been (logically) transformed to a new version, and therefore the build labels should start over again? Thanks, Stephen ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id=14396&op=3Dick _______________________________________________ Ccnet-devel mailing list Ccn...@li... https://lists.sourceforge.net/lists/listinfo/ccnet-devel |
|
From: Owen R. <exo...@gm...> - 2005-02-20 12:16:08
|
> So lets think a little more about where we can go next with this (not > just SVN here, but ISourceControl in general). 'Label' and 'GetSource' > already work with atomic version numbers, the one method that doesn't > is GetModifications. If we passed in the *last* IntegrationResult, we > could also use that for GetModifications. At that point SVN (at least) > wouldn't be relying on DateTimes for anything, which I think would be > very nice. i agree that GetModifications should take an IntegrationResult rather than two DateTimes. however, it is not necessary to pass in the last IntegrationResult as well as the current one. it should be possible either to chain the IntegrationResults or to ensure that the LastBuildTime is reflected as a property on the current IntegrationResult. > We'd need to be clever and make sure 'forced' builds with no > modifications always have the 'last modification' saved as the last > modification from the previous build. (i.e. apart from the very first > build of a project, the 'last modification' field is always populated) yes. > The final step in SVN Nirvana would be to have server initiated > triggers (i.e. the CCNet project itself could have no triggers - the > project could be 'forced' by a remote call from the SVN server). This > should be fairly easy to do with Windows-hosted SVN servers since they > can use the Remoting API, but we could also use a Web Service / > XML-RPC API for Unix servers. (NB - the whole SCM-triggered model is > how Damage Control works in most cases) this was part of the intention with the CCRunner. it was just a small command-line line that could be used to force a build (using remoting) on a ccnet server. i've been meaning to revive the project. with the extracted code in cctraylib, it should be possible to resuse much of what we already have. cheers, owen. -- Owen Rogers | http://dotnetjunkies.com/weblog/exortech | CruiseControl.NET - http://ccnet.thoughtworks.com |