[Mono-dev] Advice on Standard Tags to represent Runtimes

Leszek Ciesielski skolima at gmail.com
Wed Mar 4 04:36:21 EST 2009


On Wed, Mar 4, 2009 at 3:13 AM, Charlie Poole <charlie at nunit.com> wrote:
> Hi All,
>
> This is a bit OT for the dev list, but I suspect I'll get
> more solid answers based on experience here than elsewhere.
>
> In NUnit, it is now possible to specify the runtime under
> which tests should be run. For MS CLRs, I use net-1.0,
> net-1.1, net-2.0, etc. For mono, I use mono-1.0 and
> mono-2.0. I took this convention from NAnt.
>
> These tags are used in several text files and also appear
> in dropdowns in the GUI.
>
> The problem comes up when I want to indicate that a test
> must be run under a particular CLR version, without regard
> to whether it's mono, ms .NET or something else. In that
> case, I started to use v1.0, etc. but I'm not sure it's
> very clear.
>
> Q1: Is this convention confusing? I considered using
> any-1.1, etc. but that looked a bit dumb.
>
> Q2: Do you think net-x.x should be used for the generic
> case rather than for Microsoft? If so, what would you
> expect to see for Microsoft.
>
> Q3: When the runtime under which a test should execute
> (in a project file) would you rather see the vx.x form
> or an explicit combo like mono-2.0+net-2.0?
>
> This is something that is quite easy to change - up to
> the point where people start using it - so I'd like
> to get it right the first time!
>

I would like to point out that the convention chosen by NAnt is quite
confiusing.
1. It was chosen when there was no Mono 2.x release, and some may now
mistake mono-2.0 as a release version number, not API version
2. Mono has no 1.0 API AFAIK, mono-1.0 chooses 1.1 API
3. Nightly NAnt added mono-3.5 target, which targets 3.5 API. However,
mono-2.0 target compiles 3.5-dependent code just fine.

I'd rather prefer net-2.0 to choose any 2.0 API implementation,
something along msnet-2.0 for forcing explicitly Microsoft .Net.

That said, NAnt is widely used, and diverging from a standard (even if
it's suboptimal) confuses users. It might be worth looking how msbuild
(the 3.5 version that allows choosing the toolset to use) describe
versions.


More information about the Mono-devel-list mailing list