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

Charlie Poole charlie at nunit.com
Wed Mar 4 11:54:23 EST 2009

Hi Leszek, 

> 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

Yes... it doesn't confuse me, but now that you say it I can imagine
that it's confusing.

> 2. Mono has no 1.0 API AFAIK, mono-1.0 chooses 1.1 API

True... this causes a need to translate (internally) the 1.0 to
1.1 - I currently have one bug due to not doing so.

> 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 didn't know that! I was carefully using the mono-3.5 target.

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

  Any CLR = net-1.0 net-1.1 net-2.0 net-3.5 etc.
  Minimum level = net-2.0+ etc.

  MS Only = ms-x.x or something similar
  Mono Only = mono-x.x with the added rule that 1.0 becomes 1.1

  This is certainly doable and easy to extend to netcf, pnet, etc.
  But do others agree it's better?

> 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.

I'll look, but do we imagine it will have a code for Mono? :-)

Thanks for your help.


> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list