[Mono-devel-list] A Plea for CVS Sanity

Daniel Morgan danielmorgan at verizon.net
Mon Apr 5 21:51:28 EDT 2004

I agree on the part of marking deprecated assemblies in cvs as DEPRECATED.
Adding a file named DEPRECATED to those directories is fine.  There is a
also an Obsolete attribute.

using System;
[Obsolete("The class SomeObsoleteClass is deprecated and has been superceded
by MyNewClass", true)]
public class SomeObsoleteClass
   public void Something ()
	Console.WriteLine ("I am old way of doing things.");

Deprecated assemblies:

- Mono.Data.PostgreSqlClient - I personally deprecated this in favor of

- Mono.Data.MySql - I personally deprecated this in favor of ByteFX.Data

- Mono.Data.DB2Client - according to Miguel and the author of IBM.Data.DB2,
this is deprecated.

Mono.Data.PostgreSqlClient and Mono.Data.Mysql were not removed at the
request of Gonzalo.  This is so his XSP examples will still work.  There is
example source code and documentation that refers to these deprecated
assemblies.   However, I have no problem with these assemblies being
removed.  If you do remove them, please remove references to it in
documentation and sample source code too.  I would ask Miguel or Gonzalo
first if its okay to remove them.

As far as IBM DB2 providers go - there are three:

 - Mono.Data.DB2Client - deprecated

 - System.Data.DB2Client - this should have never been put in the System

 - IBM.Data.DB2 - is suppose to work like follow IBM's data provider for IBM

-----Original Message-----
From: mono-devel-list-admin at lists.ximian.com
[mailto:mono-devel-list-admin at lists.ximian.com]On Behalf Of Jonathan
Sent: Monday, April 05, 2004 9:15 PM
To: Mono Development List
Subject: [Mono-devel-list] A Plea for CVS Sanity

For the sanity of those of us who don't live & breath every area of mono
(which is probably most of us, since we love specialization so much), it
would probably be very useful to mark deprecated sections of the tree
as, well, deprecated. :-)

For example, mcs/class has two IBM DB/2 providers: IBM.Data.DB2 and
Mono.Data.DB2Client.  Which should we use?

Likewise for Mono.Data.PostgreSqlClient vs. Npgsql, and Mono.Data.MySql
vs. ByteFX.Data.

The problem is that those of us with short memories (read: me, and
probably others) aren't going to remember which of these is the correct
one to use.  It doesn't help matters that *all* of these libraries were
shipped with Mono 0.31, so looking at what's in the RPM doesn't help.

In addition to having this information located in the mailing list
archives, this information should also be in CVS.

I would thus propose two things:

1.  When an assembly (or CVS module, whichever) gets deprecated (or
    otherwise replaced with a maintained alternative), add a DEPRECATED
    file to CVS within the topmost appropriate directory.  Within
    DEPRECATED, enter the assembly/module that should be used instead,
    if appropriate.  For example, if IBM.Data.DB2 is deprecated, you
    should add the file "mcs/class/IBM.Data.DB2/DEPRECATED" to CVS.

2.  Don't build and distribute deprecated assemblies.

If this isn't appropriate (if, for instance, we plan on migrating away
from one library but are unable to yet), AT LEAST place a file
explaining the scenario, when you should use the older library, when you
should use the newer library, and otherwise DOCUMENT what's happening.

It shouldn't take searching through the list archives (or asking the
list) to determine which assemblies are current.

 - Jon

Mono-devel-list mailing list
Mono-devel-list at lists.ximian.com

More information about the Mono-devel-list mailing list