[Mono-dev] Advice on Standard Tags to represent Runtimes
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
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
More information about the Mono-devel-list