You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(130) |
Aug
(72) |
Sep
(151) |
Oct
(75) |
Nov
(71) |
Dec
(89) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(58) |
Feb
(156) |
Mar
(157) |
Apr
(137) |
May
(48) |
Jun
(13) |
Jul
(25) |
Aug
(36) |
Sep
(25) |
Oct
(38) |
Nov
(18) |
Dec
(75) |
2002 |
Jan
(14) |
Feb
(113) |
Mar
(39) |
Apr
(8) |
May
(58) |
Jun
(42) |
Jul
(28) |
Aug
(41) |
Sep
(15) |
Oct
(33) |
Nov
(42) |
Dec
(18) |
2003 |
Jan
(22) |
Feb
(63) |
Mar
(50) |
Apr
(31) |
May
(128) |
Jun
(51) |
Jul
(57) |
Aug
(32) |
Sep
(22) |
Oct
(110) |
Nov
(46) |
Dec
(22) |
2004 |
Jan
(10) |
Feb
(6) |
Mar
|
Apr
(42) |
May
(33) |
Jun
(11) |
Jul
(11) |
Aug
(37) |
Sep
(21) |
Oct
(20) |
Nov
(20) |
Dec
(9) |
2005 |
Jan
(30) |
Feb
(51) |
Mar
(20) |
Apr
(7) |
May
(21) |
Jun
(23) |
Jul
(4) |
Aug
(4) |
Sep
(22) |
Oct
(10) |
Nov
|
Dec
(55) |
2006 |
Jan
(25) |
Feb
(15) |
Mar
(16) |
Apr
(7) |
May
(15) |
Jun
(16) |
Jul
(21) |
Aug
(5) |
Sep
|
Oct
|
Nov
(4) |
Dec
(13) |
2007 |
Jan
(15) |
Feb
(15) |
Mar
(32) |
Apr
(17) |
May
(26) |
Jun
(1) |
Jul
(8) |
Aug
(2) |
Sep
(3) |
Oct
(7) |
Nov
(3) |
Dec
(6) |
2008 |
Jan
(20) |
Feb
(4) |
Mar
(13) |
Apr
(8) |
May
(14) |
Jun
|
Jul
(1) |
Aug
(3) |
Sep
(3) |
Oct
|
Nov
(5) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(15) |
Nov
(30) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
(1) |
Apr
(12) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(15) |
2012 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
(5) |
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
(12) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ju...@su...> - 2000-07-05 15:16:28
|
Chris, > I think you have some interesting ideas - but I also think they're too > advanced for DUnit at the moment. However, if you can work something up - > even just a rough prototype, I think it'd be good to take a look at it. SourceForge lets us set up sub-projects, which can be worked on at their own pace until they're ready for prime time. And we can keep sub-project out of the main source tree by placing it in a different CVS module (a different root directory, usually), and we can use CVS branches for the rest. In short, people can work on whatever they like without affecting the main, more stable tree. BTW, shouldn't we be moving this kind of discussions to dunit-developers? Juanco |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 15:09:53
|
> Can someone refresh my memory as to why the tests should reside in the = same unit as the production code? I do it for two reasons 1) access to private/protected parts of classes 2) I like having all of the code right there in one unit. IMO, it's more organized - but this is certainly a preference, not a fact. > I am curious to know what strategies people are using when applying XP = to thier day jobs or pet project they are working on to get up to speed = on XP. I put all test code in the same unit and conditional compile it. I have 1 .dpr for the production .exe, and a separate .dpr for running the tests. > Does anyone think that Borland will close this "friend class" = feature in Kylix or delphi 6? I doubt it. I don't see it as a 'loophole' but a design feature. I'm pretty sure some/much/? of the VCL depends on this feature. Even if it didn't, they'd have to come up with a very good reason to remove this feature as it'd kill a lot of their users' code, and that's just not a good way to make money. Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 15:06:04
|
> 0) Tests as Plug-ins. I think you have some interesting ideas - but I also think they're too advanced for DUnit at the moment. However, if you can work something up - even just a rough prototype, I think it'd be good to take a look at it. > 1) Test Data management. Same reply as above. At the moment, I'd think individual needs would be too disparate to warrant automating something like this -- but again, if you or others come up with something, couldn't hurt at all. Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... |
From: Marcel P. <marcel@AIUREA.COM> - 2000-07-05 15:05:17
|
From: "Juancarlo Añez" <ju...@su...> > What do you guys prefer? Do you want your reply function to default to the > poster, or to the list? Definitely to the list. > I've set replies to the list for the meanwhile (Ben is on the road, and > busy), but will change them right away according to the results of this > quick poll (if you want replies to the list, then don't reply to this > message; if you want them to the poster, then send me private e-mail<s>). Why "don't reply to this message"? How will you know how many want it this way then? Mark |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 15:02:02
|
>SourceForge gives us the option of having replies to list messages go by default to either to the list, or to the poster. I vote for replies going to the list. The other method discourages lurkers, and I think we need all the lurkers we can get right now to help encourage use of DUnit. If replies don't go to the list, I feel all collaboration would be brought to a halt very quickly. Chris |
From: <ju...@su...> - 2000-07-05 14:49:01
|
Chris, > So, do we have to have WinCVS or does SourceForge provide a full web > interface to CVS? I'm browsing right now, so it seems they provide all we > need... but I wanted to ask to make sure. The web interface to CVS is read-only, and web-ony. You need SSH and CVS/WinCVS to update your copy of the code base and to do check-ins. Juanco |
From: <ju...@su...> - 2000-07-05 14:48:02
|
Chris, > Each standard is ranked 1 to 5 -- which is good? 1 or 5? Oops! Good question. Let's say 5 is good, ok? Juanco |
From: Hal L. <ha...@vi...> - 2000-07-05 14:16:50
|
I believe that the Web interface will allow you to get a file but i don't think that it will allow you to check in a file, unless I am missing something(if I am let me know). I finally was able today to check out the source using wincvs. I have to be outside of our firewall(so far). The steps on the SF Win32 Guide are pretty much it. Make sure that you use "passwd file on the server" for Authentication. When you checkout the module just type dunit. Everything else is fairly straight forward. Also there is a good article on the Wincvs site http://www.computas.com/pub/wincvs-howto/#commit Hal Lee ha...@vi... -----Original Message----- From: Morris, Chris [mailto:Ch...@sn...] Sent: Wednesday, July 05, 2000 9:30 AM To: 'dun...@li...' Subject: [Dunit-interest] CVS Interface So, do we have to have WinCVS or does SourceForge provide a full web interface to CVS? I'm browsing right now, so it seems they provide all we need... but I wanted to ask to make sure. Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... _______________________________________________ Dunit-interest mailing list Dun...@li... http://lists.sourceforge.net/mailman/listinfo/dunit-interest |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 13:39:27
|
So, do we have to have WinCVS or does SourceForge provide a full web interface to CVS? I'm browsing right now, so it seems they provide all we need... but I wanted to ask to make sure. Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 12:52:20
|
> Each standard is ranked 1 to 5 -- which is good? 1 or 5? Ah - I just visted my personal page, and it had a general survey for the SourceForge team - it said 5 is strongest. Chris |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 12:44:36
|
I noticed the survey on the DUnit page for the coding standard. My question is this: Each standard is ranked 1 to 5 -- which is good? 1 or 5? Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... |
From: Morris, C. <ChrisM@SNELLINGCORP.COM> - 2000-07-05 12:42:21
|
Howdy, all. I was off Monday and Tuesday for the 4th of July ... I've now signed on to this list. Looks like I missed a lot of activity the past few days - I'm getting caught up. Chris Morris Snelling International 800-411-6401 x1320 ch...@sn... |
From: Juancarlo A. <ju...@su...> - 2000-07-04 05:53:52
|
> So I understand you correctly, you are starting with everything private by > default under the YAGNI principle and then you move methods and items to > protected or public as they need to be overriden or accessed by > descendent > classes? No. I tend to make everything public, but that's easy when you're working by yourself most of the time. A collaborative project like this one should expose the needs for protected, and even private methods if there are any. Juanco |
From: Michael J. <maj...@go...> - 2000-07-04 05:37:43
|
> > Regarding, private methods, and perhaps my > > ignoranice is showing, I have yet to find a place where they are helpful. > > Most methods that I create are protected and virtual so that > > descendents can > > escape some unintended functionality or rigidity. > > In theory, methods that are exposed, either publicly or only to descendant > classes (protected), bind the original class to comply with certain > contracts when those methods are used. Make private any methods you'r class > doesn't want to accept any contracts about. Change private methods to > protected or public as the need arises by revisiong their contracts, and > refactoring. So I understand you correctly, you are starting with everything private by default under the YAGNI principle and then you move methods and items to protected or public as they need to be overriden or accessed by descendent classes? Wow! That's really stringent. That certainly has more discipline than anything that I have done. I would assume that you'd make something private if during a refactoring, you stopped having the need for descendents to override or access a protected/public method? That's certainly food for thought. |
From: Juancarlo A. <ju...@su...> - 2000-07-04 05:32:19
|
SourceForge gives us the option of having replies to list messages go by default to either to the list, or to the poster. My preference is replying to the list because my set up moves, sorts, cuts, pastes, or dumps messages according to their origin and destination. Sometimes I want to put list messages on hold for a couple of days, and tackle them all in a batch later. I also think that replies to the list contribute to group knowledge, even if at times the traffic seems too busy. What do you guys prefer? Do you want your reply function to default to the poster, or to the list? I've set replies to the list for the meanwhile (Ben is on the road, and busy), but will change them right away according to the results of this quick poll (if you want replies to the list, then don't reply to this message; if you want them to the poster, then send me private e-mail<s>). Juanco |
From: Michael J. <maj...@go...> - 2000-07-04 05:24:02
|
All: Some ideas I have been thinking about for Dunit 0) Tests as Plug-ins. Rather than having Dunit statically compile and = link in the test cases, I wonder if we could define a means of having = Dunit dynamically discover and run various tests. I was thinking that = the individual test cases could be compiled into DLLS or COM objects = that the driver could instantiate and execute. I know that if you go = the DLL route, you would have to use runtime packages to get any of the = RTTI stuff to work in Delphi. I would expect that the DLL would = basically export a function similar to the one that that the suite = function exposed in DUnitTests.pas. I haven't abused COM in such a = manner to know what you'd need to do to make RTTI possible. 1) Test Data management. I am starting to gather quite a lot of test = data for various parts of XPGen - snippets of source code. I've also = accumulated a lot of test data for the unit tests that I am using in my = "day job". I wonder if it would be useful to devise a scheme to have = all this data zipped up when not in use and unzipped prior to use by = Dunit and then discarded or re-zipped when Dunit was done with it. =20 |
From: Juancarlo A. <ju...@su...> - 2000-07-04 04:46:37
|
Michael, >> Can someone refresh my memory as to why the tests should reside in the same unit as the production code? I guess we'll all find out how unit testing is best done in Delphi in due time. The issue is black-box versus white-box testing. In black-box testing you test how well objects conform to their especifications (interfaces, signatures, contracts). In white-box testing, you want to know how well objects comply with their internal contracts. Black-box unit tests can go in a separate unit. What about white-box ones? I had forgotten about the old Delphi quirk that lets you expose all protected methods of a class in adifferent unit. unit TestXX; type TTestXXClass = class(TXXClass) end; That's it. All methods in the new TestXX unit will have access to the protected methods in TXXClass, and all its ancestors. Private methods will still require in-unit test cases. Does that help? Juanco |
From: Michael J. <maj...@go...> - 2000-07-04 04:21:47
|
All: I thought this tool might be of interest to the group. In the March, = 2000 issue of DDJ there is a tool called sourceMonitor which produces = complexity metrics for a wide number of languages including Delphi. I = have found it useful in finding classes, units and methods that need to = be refactored. It tells you all kinds of interesting things about your = code including block depth, length, largest class in terms of methods, = largest method in terms of LOC etc. It has told me all kinds of things = about the code that I and my teammates support. Here's the source, in VC++ i'm afraid: http://www.ddj.com/ftp/2000/2000_03/sourcemonitor.zip Here's the executable. http://www.ddj.com/ftp/2000/2000_03/sourcemonitorv1063.exe |
From: Michael J. <maj...@go...> - 2000-07-04 04:04:22
|
All: Can someone refresh my memory as to why the tests should reside in the = same unit as the production code? I tried this with the XPParser and I = have to say I wasn't entirely happy with the result. Mainly because I = ended up with more test code than production code and this has now made = the parser unit really big. I tried this experiment becuase of urging = from Juancarlo Anez and Chris Morris. I admit it was nice to be able to = exploit the "friend class" loophole, in that I was able to test = non-public methods. With the class definition below this is definately = what you have to do because most of the functionality is protected. = Perhaps the way it's written it would be classified as untestable? = Perhaps I should refactor this such that the parse_* methods become = publics to some ParseLanguageElement class and the XPStubParser = delegates to instances of these parse objects instead of direct methods? = Certainly then I would be able to test more code from an external unit. I am curious to know what strategies people are using when applying XP = to thier day jobs or pet project they are working on to get up to speed = on XP. Does anyone think that Borland will close this "friend class" = feature in Kylix or delphi 6? --- TXPStubParser =3D class protected funitName: string; lex: TParser; fSrcStream: TStream; fParseNodeList: TList; procedure SetSrcStream(NewStream: TStream); procedure NewClassNode(NameOfNode: string); procedure NewMethodIdent(NameOfMethod: string); function Get_Token(lex: TParser): lex_token; function Parse_Unit_Heading(lex: TParser): lex_token; function Parse_const_Paragraph(lex: TParser): lex_token; function Parse_type_Paragraph(lex: TParser): lex_token; function Parse_var_paragraph(lex: TParser): lex_token; function Parse_uses_clause(lex: TParser): lex_token; function Parse_typedef(ident: string; lex: TParser): lex_token; function Parse_tobject_derived(token: lex_token; lex: TParser): = lex_token; function Parse_derived(ident: string; lex: TParser): lex_token; function Seek_Token(target: token_enum; lex: TParser): lex_token; public constructor Create; virtual; destructor Destroy; override; procedure Parse; property SrcStream: TStream write SetSrcStream; property unitName: string read funitName write funitName; property ParseNodeList: TList read fParseNodeList write = fParseNodeList; end; -- |
From: <ju...@su...> - 2000-07-03 15:07:16
|
> I still have to register as a developer on SourceForge. I'll try to > do that tonight and send you my details. It's OK. I just want to get rid of egroups so we can end the message copying and we have a little less administration to do. Juanco |
From: Marcel P. <marcel@AIUREA.COM> - 2000-07-03 14:35:58
|
From: "Junilu Lacar" <js...@us...> > function TTestCase.Variance(Double1, Double2: Double): Double; > begin > Result := Abs(1 - Double1/Double2); > end; You will have to test for the "Double2 = 0" case, and decide what value to return in that case. Mark |
From: <ju...@su...> - 2000-07-03 14:24:51
|
Junilu > Reason: same as 4 above > > Any thoughts? As far as I'm concerned, you should go ahead. YOU STILL HAVEN'T TOLD ME YOUR SOURCEFORGE ID!! Also, will you be setting up CVS? If not, just make the change on your copy of the files, produce a context diff using: diff -c OriginalDUnit.pas DUnit.pas and post the results into a message to dun...@li.... Juanco |
From: Wm _. <wm...@ho...> - 2000-07-02 05:20:02
|
>Among the standard licenses offered I chose the Mozilla Open Source >License. <snip> > >Please, let me know your thoughts about this. Sounds like a good choice. I have no preference, other than for a license which is clean and simple, but preserves the open source aspect of the project. Bill ________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com |
From: <ju...@su...> - 2000-07-02 04:48:52
|
I can't remember if I mentioned this before, but adopting an open source license was one of the requriements for project acceptance at SF. The original DUnit (JUnit) license was open enough, but it was not one of the standard ones so it would have required more steps to get the SF setup going. Among the standard licenses offered I chose the Mozilla Open Source License. It's a license that lets you do what you like with the code, as long as you make public any modifications and derivations of the original. There are even less restrictive licenses available. I chose the Mozilla one because it's more "laizzes faire" than the LGPL, yet it binds people to keep the source open, which I think is only fair given the time an effort already devoted to get the project going. Please, let me know your thoughts about this. Juanco -- Juancarlo Añez mailto:ju...@su... http://www.suigeneris.org/juanca/ --- |
From: Juancarlo A. <jua...@mo...> - 2000-07-01 22:34:14
|
Rm9sa3MsDQoNClRoZSBmaXJzdCBzdGFnZSBvZiB0aGUgbW92ZSB0byBzb3VyY2Vmb3JnZSBpcyBk b25lOiANCg0KLSBUaGUgRFVuaXQgQ1ZTIHRyZWUgaXMgc2VlZGVkIHdpdGggdmVyc2lvbiAzLjIu Mi4NCg0KLSBDVlMgb24gV2luMzIgd29ya3MuIElmIHlvdSBjYW4ndCBnZXQgaXQgd29ya2luZyB1 c2luZyB0aGUgU0YgZG9jcywgcG9zdCBhIG1lc3NhZ2UgdG8gdGhlIGRldmVsb3BlcnMgbGlzdC4N Cg0KLSBUaGUgdW5qdWFjb2l6ZWQgcGFnZSBpcyB1cCBhdCBodHRwOi8vZHVuaXQuc291cmNlZm9y Z2UubmV0LCBhbmQgYSBjb3B5IG9mIGl0LCB3aXRoIHZlcnNpb24gMS4yLCBpcyBvbiB0aGUgQ1ZT IHRyZWUgKEkgc3RpbGwgaGF2ZSB0byBtYWtlIHRoZSBvbGQgcGFnZSBwb2ludCB0byBTRikuDQoN Ci0gV2UgaGF2ZSBtYWlsaW5nIGxpc3RzIGZvciB1c2VycyBhbmQgZGV2ZWxvcGVycyBhdCBzb3Vy Y2Vmb3JnZS4NCg0KLSBCZW4gT3JhbSB3aWxsIGJlIHRha2luZyBjYXJlIG9mIG1haWxpbmcgbGlz dCBpc3N1ZXMgZm9yIHRoZSB0aW1lIGJlaW5nLg0KDQpUaGUgc2Vjb25kIHN0YWdlLCBJIGV4cGVj dCwgd2lsbCBjb25zaXN0IG9uIGRlbGVnYXRpbmcgYWRtaW5pc3RyYXRpdmUgdGFza3MgdW50aWwg SSBiZWNvbWUganVzdCBhbm90aGVyIGRldmVsb3Blci4gU28gc2lnbiBvbiEgDQoNCkkgaGF2ZSBh IGJvb2sgY2hhcHRlciB0byBkZWxpdmVyICh0aGUgZGF5IGJlZm9yZSB5ZXN0ZXJkYXkpIHNvIGRv bid0IGV4cGVjdCB0byBzZWUgbXVjaCBvZiBtZSBmb3IgYSB3aGlsZS4gSSB3aWxsIGF0dGVuZCBh ZG1pbmlzdHJhdGl2ZSB0YXNrcyB1bnRpbCB0aGV5IGFsbCBoYXZlIHRoZWlyIHJlc3BlY3RpdmUg b3duZXJzLg0KDQpKdWFuY28NCi0tDQpKdWFuY2FybG8gQfFleg0KbWFpbHRvOmp1YW5jYUBzdWln ZW5lcmlzLm9yZw0KaHR0cDovL3d3dy5zdWlnZW5lcmlzLm9yZy9qdWFuY2EvDQotLS0NCg0K |