Archive for January, 2004

English differences

Saturday, January 24th, 2004

There’s a funny Ant bug report being thrashed out at the moment

In general I find these little differences in how we use English pretty funny. I lived for a while in North Carolina and once, at someone’s house, asked “where’s the bin?”. She looked at me oddly for a moment, until I indicated that I had something to throw out, at which she exclaimed “Oh, you mean the trashcan!” Even funnier was asking at a supermarket, at Christmas time, whether they had any plum pudding – the reply was “Are you from up North?”. Not quite. I also remember the Virginia police officer who was not impressed with my international driver’s licence with its multitude of foreign languages, but that’s another story.

Of course, it cuts both ways. To an Australian, the term yank refers to all Americans. I was to find out in North Carolina that is not strictly accurate.

Perhaps my future contributions to Ant will be documented in Strine. For example, when a task is not found, it would respond:

“Mate, that task name is not fair dinkum”

“‘kin ‘ell, I couldn’t find that task”

Just kidding. Personally, I enjoy our differences and hope we don’t require homogenous documentation that won’t offend.

Oh, and if you ever get the chance to live in another country, as opposed to just visiting, take it. If they don’t speak your language, all the better.

Nant and Licensing

Thursday, January 22nd, 2004

The alpha for Clover.NET is coming along nicely and we are getting some great feedback. Thanks to our alpha testers. The alpha is currently command line driven and that is not really optimal in the long term. We’re working on Visual Studio integration which should ease the situation but, given my long affiliation with Ant, it’s natural to look at using a build tool such as Nant to manage Clover.NET operations. The java version of Clover provides Ant tasks, after all.

There is, however, a fly in the ointment. Whereas Ant uses the Apache licence, Nant uses a GPL licence. That would seem to prohibit the distribution of non-free tasks for Nant. I’m extrapolating here a little from my experience with Java, where even the LGPL is considered to prevent distribution of non-LGPL code that uses a LGPL library.

Just considering the GPL for the moment, a 1999 post from Richard Stallman spells it out for Java and I assume, by extension, .NET

So I think it is meaningful to release a Java program either under the
GPL or the LGPL, and the consequences are basically the same as for a
C program: if you use the LGPL for your Java program, it can be called
by non-free programs, but if you use the GPL, it cannot be.

I’m not sure how much the position has evolved since 1999 especially with the LGPL, as that now seems to have issues. For those that are interested, Sam Ruby has discussed these issues more recently.

It is interesting that Nant has an exclusion to the GPL for Microsoft’s .NET library. See the Nant licence page. The reason I find that interesting is that the author of Nant has obviously considered the impact of GPL. Unfortunatly without such an exclusion, any Clover.NET tasks for Nant will be limited to driving the command-line tools.

I respect people who choose to license their code using the GPL, it is their choice after all. OTOH, I really wonder if it is an approriate license for a build tool. If I read the licence right, Nant currently makes it difficult to provide rich integration of proprietary tools. It’s a pity as .NET needs a good automated build tool for continuous integration operations. MSBuild? …

Clover.net samples

Tuesday, January 20th, 2004

As I discussed in my last entry, we have now made some sample Clover.net output available. You can now look at a sample coverage report for the NUnit project.

I’m impressed with the level of coverage NUnit’s tests achieve, although it’s a project you’d expect to have good unit tests. So far, however, it seems NUnit is unusual as far as .NET open source projects go. Most I have looked at so far have very little unit testing support evident. I don’t know if this is a cultural difference between Java and .NET open source projects in general or just a function of the Java projects I tend to look at and the .NET projects I’ve managed to find. I’m still looking.

If anyone can recommend some good .NET open source projects with unit tests, please let me know. In the meantime, I’d recommend this article on the new ServerSide for .Net site.

Clover for .NET

Wednesday, January 14th, 2004

Recently at Cortex we have been developing a version of Clover for Microsoft’s .NET platform. This has now reached the alpha stage. We have a tool capable of measuring coverage in C# code and generating HTML reports. This is a native .NET solution and is independent of our current implementation of Clover for Java.

While there is still a lot of work to be done, we would appreciate feedback from people who are prepared to act as alpha testers. If you are able to have a look, please send an email to clover-support@thecortex.net. We can’t guarantee everyone will get a look this time around, as we will focus on a small group but let’s see how we go.

In the next few days I’ll post up some sample reports to show what the coverage reports look like.

Build Tools

Friday, January 9th, 2004

A little while ago Stefan was blogging a fair bit about Microsoft’s answer to Ant, MSBuild. I haven’t gone into it in any depth but I think it was an interesting development.

In fact a good friend of mine who is the convenor of a local .Net user group once asked me to do a talk about my experiences with Ant for the .Net folks. It never came off but my tentative title was “F7 is not a build system”. Well I didn’t know what function key you use to do a build in Visual Studio at the time, but you get the idea.

Anyway, I see Stefan has some more blogs on what various people think of build systems.

I came across another, MBuild via Miguel de Icaza’s blog, which has a slightly different take on the idea of build systems.