Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-27 Thread Gert Driesen
Atsushi,

This is not making much sense. Just about every member/class in
System.Xml.Serialization is marked like that.
Developers using that (eg. for our web services stack) must then indeed be
real idiots.
 
Marking a class or member as .NET Framework infrastructure means you
should avoid using it in user code as its behavior is not documented and
subject to changes. However, it's of course perfectly valid to use those
classes from within the .NET/Mono Framework infrastructure.

In this specific case we're talking about an interface that by itself does
not have any logic. But should the usage of that interface related to
ConfigurationErrorsException change, than my unit tests will allow us to
notice that.

With my change, my goal was not just compatibility with MS. The only reason
why - in this case - compatibility was nice to have, was to get unit tests
that pass on both Mono and MS.

I can't see why implementing a public interface is worse than using an
internal interface in combination with checks for a specific class for the
exact same purpose?

Gert

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
Sent: vrijdag 27 juni 2008 2:37
To: 'mono-devel-list'
Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

Actually anyone who uses this IConfigErrorInfo is an idiot because
it is explicitly written as .NET FX internal.

This API supports the .NET Framework infrastructure and is not
intended to be used directly from your code.

So, compatibility is COMPLETELY no value here.

You don't have to flood mono-dev next time. I will silently
eliminate extraneous changes. I really don't care about those
pointless compatibility and will be glad to eliminate.

Atsushi Eno


Gert Driesen wrote:
 Atsushi,
 
 I'm not deliberately ignoring your or anyone else's advice. Perhaps my
idea
 of trivial changes is different than yours, definitely if a very large
part
 of those changes is covered by unit tests. Next time, I'll flood mono-dev
 with small patches ;-)
 
 I'm definitely not claiming my changes are more important than performance
 improvements, but I'd be surprised if both can't be combined.
 
 Gert
 
 -Original Message-
 From: Atsushi Eno [mailto:[EMAIL PROTECTED] 
 Sent: donderdag 26 juni 2008 19:58
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 In short, you are not going to change your commit policy right?
 
 When I go ahead and make significant refactoring, I'll clean your
 changes up and mark insignificant compatibility tests as Ignore.
 
 Insignificant compatibility mastur* should not block significant
 performance improvements.
 
 Atsushi Eno
 
 
 Gert Driesen wrote:
 Hey Atsushi,

 Apart from the change in ClientConfigurationSystem my patch was about
 using
 the IConfigErrorInfo interface for getting filename/linenumber info
 instead
 of explicitly checking for XmlTextReader, or using internal
IConfigXmlNode
 interface.

 Before the introduction of IConfigErrorInfo, we had to resort to this. My
 changes just allow us to use this new interface, which - at the same time
 -
 allows us to write unit tests for this (as this now matches the MS
 implementation).

 I don't intend to write a book about these trivial changes, but I've
 responded to your comments inline.

 Gert

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Atsushi
Eno
 Sent: donderdag 26 juni 2008 17:41
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]

 No. You claim as if your change were only about one issue, which it
 NOT true. Here is concrete description:

 Modified:

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs
 ===
 ---

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs  2008-06-26 09:57:29 UTC (rev 106625)
 +++

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs  2008-06-26 10:31:07 UTC (rev 106626)
 @@ -73,7 +73,7 @@
 if (File != ) {
 try {
 Stream s = System.IO.File.OpenRead
 (File);
 -   XmlReader subreader = new
 XmlTextReader (s);
 +   XmlReader subreader = new
 ConfigXmlTextReader (s, File);
 base.DeserializeElement (subreader,
 serializeCollectionKey);
 s.Close ();
 }
 For example it is about

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-27 Thread M. David Peterson
Gert,

On Thu, Jun 26, 2008 at 12:03 PM, Gert Driesen [EMAIL PROTECTED]
wrote:


 I'm not deliberately ignoring your or anyone else's advice. Perhaps my idea
 of trivial changes is different than yours, definitely if a very large part
 of those changes is covered by unit tests. Next time, I'll flood mono-dev
 with small patches ;-)


For what it's worth, have you considered creating a local GIT repository
that mirrors the SVN repository and use this to make local atomic commits as
suggested by Jb, but doing so in a way that allows you to make a larger
grouped commit to SVN such that you can retain the commit history?  This
would also allow nicely for creating local branches specific to each
extended or non-mainstream feature as well as related unit tests you might
be working on and, when you feel its potentially ready for commit, submit a
patch to the dev list for discussion.  This ensures that the primary
maintainer of the given code maintains control while at the same time
allowing you the ability to move forward with your changes via your local
branch if for some reason it's felt the changes are not appropriate for the
main branch.

I assume you've seen the reference on how to go about the git-svn process
for the Mono SVN repository, but just in case 
http://www.mono-project.com/GitSVN 

-- 
/M:D

M. David Peterson
Co-Founder  Chief Architect, 3rd  Urban, LLC
Email: [EMAIL PROTECTED] | [EMAIL PROTECTED]
Mobile: (206) 999-0588
http://3rdandUrban.com | http://amp.fm |
http://www.oreillynet.com/pub/au/2354
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-27 Thread Atsushi Eno
I didn't send it immediately after I wrote it (as the hotel was 
disconnected) and anyways I didn't feel I have to reply to this
fruitless post immediately. But as you requested, here it is.



Gert Driesen wrote:
 This is not making much sense. Just about every member/class in
 System.Xml.Serialization is marked like that.
 Developers using that (eg. for our web services stack) must then indeed be
 real idiots.

Yes they are idiots, as long as they depend on internals. You are
trying to imply that I meant EVERYONE who use XmlSerializer is idiot,
but that's totally wrong.

 Marking a class or member as .NET Framework infrastructure means you
 should avoid using it in user code as its behavior is not documented and
 subject to changes. However, it's of course perfectly valid to use those
 classes from within the .NET/Mono Framework infrastructure.
 
 In this specific case we're talking about an interface that by itself does
 not have any logic. But should the usage of that interface related to
 ConfigurationErrorsException change, than my unit tests will allow us to
 notice that.
 
 With my change, my goal was not just compatibility with MS. The only reason
 why - in this case - compatibility was nice to have, was to get unit tests
 that pass on both Mono and MS.

Yes your goal was just compatibility. The tests just asserts that.
There is no additional value.

Having compat tests for internal-only is bad because Microsoft is
1) either not ready to provide fixed API and likely change in the
future, and/or 2) they do not provide enough documentation and
that fact blocks us from implementing .net-compatible components.
In such situation we rather choose quick functional and
effective implementation that saves reasonable mortals. Sticking
to compatibility does not save anyone and hence such people just
leave extraneous tests.

Having extraneous tests 1) blocks maintainers who are often responsible
(unlike you) to go further development and 2) costs everyone
extraneous time for patch reading.
Hence it goes below the balance point.

Well, probably it won't be understood by those who were never flooded
with extraneous patches and were cost their precious time.

 I can't see why implementing a public interface is worse than using an
 internal interface in combination with checks for a specific class for the
 exact same purpose?

Public or non-public is really insignificant here.

Atsushi Eno

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen
Atsushi,

This change is necessary for compatibility with MS and should not affect
performance at all.

Lazy initialization of ClientConfigurationSystem actually improves startup
time, and fixes the t28 standalone test.

It also removes the dependency on internal hacks (which were necessary for
the 1.0 profile), and instead relies on the implementation of
IConfigErrorInfo for retrieving filename/linenumber info.

My changes do not block future performance improvements. You'll just have to
implement IConfigErrorInfo on your XmlNodeReader-based implementation.

I wouldn't see why reverting this patch is necessary as it:

* improves compatibility with MS
* adds unit tests to verify this
* fixes a few minor issues

while still allowing for a different internal implementation.

If any patch with such characteristics would be removed, then nothing much
would be left ;-)

Gert

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
Sent: donderdag 26 juni 2008 12:51
To: 'mono-devel-list'
Subject: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

Man, I don't think this is a good change. We (in Boston) are talking
about sys.configuration optimization, and will likely have to eliminate
XmlTextReader dependency (actually I have such a change possibly
to switch to XmlNodeReader at some stage). Your change would make
performance worse, or at least block significant performance
improvements.

I see almost no benefits and will revert unless you claim very
important improvements.

Atsushi Eno


 Original Message 
Subject: [Mono-patches] r106626 - in 
trunk/mcs/class/System.Configuration: . System.Configuration 
Test/System.Configuration Test/standalone
Date: Thu, 26 Jun 2008 06:31:08 -0400 (EDT)
From: Gert Driesen ([EMAIL PROTECTED]) 
[EMAIL PROTECTED]
To: [EMAIL PROTECTED], [EMAIL PROTECTED], 
[EMAIL PROTECTED]

Author: gert
Date: 2008-06-26 06:31:07 -0400 (Thu, 26 Jun 2008)
New Revision: 106626

Added:
 
trunk/mcs/class/System.Configuration/System.Configuration/ConfigXmlTextReade
r.cs
 
trunk/mcs/class/System.Configuration/Test/System.Configuration/Configuration
ErrorsExceptionTest.cs
trunk/mcs/class/System.Configuration/Test/standalone/Assert.cs
Modified:
trunk/mcs/class/System.Configuration/ChangeLog
trunk/mcs/class/System.Configuration/System.Configuration.dll.sources
 
trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
.cs
trunk/mcs/class/System.Configuration/System.Configuration/ChangeLog
 
trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
nSystem.cs
trunk/mcs/class/System.Configuration/System.Configuration/ConfigInfo.cs
 
trunk/mcs/class/System.Configuration/System.Configuration/Configuration.cs
 
trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationEleme
nt.cs
 
trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationError
sException.cs
 
trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationLocat
ion.cs
 
trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationSecti
on.cs
 
trunk/mcs/class/System.Configuration/System.Configuration_test.dll.sources
trunk/mcs/class/System.Configuration/Test/System.Configuration/ChangeLog
trunk/mcs/class/System.Configuration/Test/standalone/ChangeLog
trunk/mcs/class/System.Configuration/Test/standalone/Makefile
trunk/mcs/class/System.Configuration/Test/standalone/t28.cs
trunk/mcs/class/System.Configuration/Test/standalone/t42.cs
Log:
* ConfigurationErrorsExceptionTest.cs: Added tests for ctors and
GetFilename/GetLineNumber overloads.
* System.Configuration_test.dll.sources: added
ConfigurationErrorsExceptionTest.cs.
* System.Configuration.dll.sources: added ConfigXmlTextReader.cs.
* ConfigurationElement.cs: Use ConfigurationErrorsException instead of
ConfigurationException, and pass reader to ConfigurationErrorsException
ctor to allow for file/linenumber info in exception message.
* ConfigurationErrorsException.cs: Removed local bareMessage field, and
use base.BareMessage field instead. Fixed Message property to only add
filename if not null or zero-length string, and only add line if not
zero. In GetFilename/GetLineNumber overloads, only try to get info if
node/reader implements IConfigErrorInfo.
* ConfigurationSection.cs: Use ConfigXmlTextReader instead of
XmlTextReader to allow for file/linenumber info in exception messages.
* ConfigXmlTextReader.cs: Added XmlTextReader that implements
IConfigErrorInfo.
* ConfigurationLocation.cs: Use ConfigXmlTextReader instead of
XmlTextReader to allow for file/linenumber info in exception messages.
* ClientConfigurationSystem.cs: Perform lazy initialization and
wrap exceptions in ConfigurationErrorsException. Fixes standalone test
t28.
* Configuration.cs: Use ConfigXmlTextReader instead of XmlTextReader
to allow for 

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen


 -Original Message-
 From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
 Sent: donderdag 26 juni 2008 13:41
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . 
 System.Configuration Test/System.Configuration Test/standalone]

 If your commit involved MANY changes, then they should be split anyways.

The only change that could be split is the lazy init fix for
ClientConfigurationSystem.

 Even only with that point, I'm pretty much tempted to revert your
 changes.

Yeah, I'm glad my (any?) contributions are that much appreciated.

Gert

Gert Driesen wrote:
 Atsushi,
 
 This change is necessary for compatibility with MS and should not affect
 performance at all.
 
 Lazy initialization of ClientConfigurationSystem actually improves startup
 time, and fixes the t28 standalone test.
 
 It also removes the dependency on internal hacks (which were necessary for
 the 1.0 profile), and instead relies on the implementation of
 IConfigErrorInfo for retrieving filename/linenumber info.
 
 My changes do not block future performance improvements. You'll just have
to
 implement IConfigErrorInfo on your XmlNodeReader-based implementation.
 
 I wouldn't see why reverting this patch is necessary as it:
 
 * improves compatibility with MS
 * adds unit tests to verify this
 * fixes a few minor issues
 
 while still allowing for a different internal implementation.
 
 If any patch with such characteristics would be removed, then nothing much
 would be left ;-)
 
 Gert
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
 Sent: donderdag 26 juni 2008 12:51
 To: 'mono-devel-list'
 Subject: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 Man, I don't think this is a good change. We (in Boston) are talking
 about sys.configuration optimization, and will likely have to eliminate
 XmlTextReader dependency (actually I have such a change possibly
 to switch to XmlNodeReader at some stage). Your change would make
 performance worse, or at least block significant performance
 improvements.
 
 I see almost no benefits and will revert unless you claim very
 important improvements.
 
 Atsushi Eno
 
 
  Original Message 
 Subject: [Mono-patches] r106626 - in 
 trunk/mcs/class/System.Configuration: .   System.Configuration 
 Test/System.Configuration Test/standalone
 Date: Thu, 26 Jun 2008 06:31:08 -0400 (EDT)
 From: Gert Driesen ([EMAIL PROTECTED]) 
 [EMAIL PROTECTED]
 To: [EMAIL PROTECTED], [EMAIL PROTECTED], 
 [EMAIL PROTECTED]
 
 Author: gert
 Date: 2008-06-26 06:31:07 -0400 (Thu, 26 Jun 2008)
 New Revision: 106626
 
 Added:
  

trunk/mcs/class/System.Configuration/System.Configuration/ConfigXmlTextReade
 r.cs
  

trunk/mcs/class/System.Configuration/Test/System.Configuration/Configuration
 ErrorsExceptionTest.cs
 trunk/mcs/class/System.Configuration/Test/standalone/Assert.cs
 Modified:
 trunk/mcs/class/System.Configuration/ChangeLog
 trunk/mcs/class/System.Configuration/System.Configuration.dll.sources
  

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs
 trunk/mcs/class/System.Configuration/System.Configuration/ChangeLog
  

trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs

trunk/mcs/class/System.Configuration/System.Configuration/ConfigInfo.cs
  
 trunk/mcs/class/System.Configuration/System.Configuration/Configuration.cs
  

trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationEleme
 nt.cs
  

trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationError
 sException.cs
  

trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationLocat
 ion.cs
  

trunk/mcs/class/System.Configuration/System.Configuration/ConfigurationSecti
 on.cs
  
 trunk/mcs/class/System.Configuration/System.Configuration_test.dll.sources

trunk/mcs/class/System.Configuration/Test/System.Configuration/ChangeLog
 trunk/mcs/class/System.Configuration/Test/standalone/ChangeLog
 trunk/mcs/class/System.Configuration/Test/standalone/Makefile
 trunk/mcs/class/System.Configuration/Test/standalone/t28.cs
 trunk/mcs/class/System.Configuration/Test/standalone/t42.cs
 Log:
 * ConfigurationErrorsExceptionTest.cs: Added tests for ctors and
 GetFilename/GetLineNumber overloads.
 * System.Configuration_test.dll.sources: added
 ConfigurationErrorsExceptionTest.cs.
 * System.Configuration.dll.sources: added ConfigXmlTextReader.cs.
 * ConfigurationElement.cs: Use ConfigurationErrorsException instead of
 ConfigurationException, and pass reader to ConfigurationErrorsException
 ctor to allow for file/linenumber info in exception message.
 * ConfigurationErrorsException.cs: Removed local bareMessage field, and
 use base.BareMessage field

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Jb Evain
Hey,

On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
   Even only with that point, I'm pretty much tempted to revert your
   changes.


 Yeah, I'm glad my (any?) contributions are that much appreciated.

Come on Gert, it's definitely not the first time that you're told that
your commits are:

* totally not atomic,
* mixing totally different concerns,

And for some of us that keep an eye on the code coming in, it makes
that task much harder.

That doesn't mean that we don't appreciate contributions. But once
again, I already told you that I was not happy with the way you're
making commits, and am not the first one. And I can certainly
understand the maintainer frustration to see this huge changeset
coming in.

-- 
Jb Evain  [EMAIL PROTECTED]
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen
Hey Jb,

Sorry dude, but this wasn't a large changeset.

If the definition of a large changeset is a patch which adds a large set of
unit tests, then I'm guilty as charged.

Apart from removing a few extra tabs (my mistake), everything I changed is
documented in the changelog and covered by unit tests or standalone tests.

There's only one part of the patch that could be committed separately, and
this is the change to ClientConfigurationSystem. And again, this change
fixes a failing standalone test (t28).

Please be reasonable. What more can you ask?

Gert

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jb Evain
Sent: donderdag 26 juni 2008 15:11
To: Gert Driesen
Cc: Atsushi Eno; mono-devel-list
Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

Hey,

On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
   Even only with that point, I'm pretty much tempted to revert your
   changes.


 Yeah, I'm glad my (any?) contributions are that much appreciated.

Come on Gert, it's definitely not the first time that you're told that
your commits are:

* totally not atomic,
* mixing totally different concerns,

And for some of us that keep an eye on the code coming in, it makes
that task much harder.

That doesn't mean that we don't appreciate contributions. But once
again, I already told you that I was not happy with the way you're
making commits, and am not the first one. And I can certainly
understand the maintainer frustration to see this huge changeset
coming in.

-- 
Jb Evain  [EMAIL PROTECTED]
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Atsushi Eno
 To: Gert Driesen
 Cc: Atsushi Eno; mono-devel-list
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 Hey,
 
 On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
   Even only with that point, I'm pretty much tempted to revert your
   changes.


 Yeah, I'm glad my (any?) contributions are that much appreciated.
 
 Come on Gert, it's definitely not the first time that you're told that
 your commits are:
 
 * totally not atomic,
 * mixing totally different concerns,
 
 And for some of us that keep an eye on the code coming in, it makes
 that task much harder.
 
 That doesn't mean that we don't appreciate contributions. But once
 again, I already told you that I was not happy with the way you're
 making commits, and am not the first one. And I can certainly
 understand the maintainer frustration to see this huge changeset
 coming in.
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Jb Evain
On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
  Sorry dude, but this wasn't a large changeset.

Alright, so because you simply *refuse* to hear what we telling you,
let me rephrase and explain.

  If the definition of a large changeset is a patch which adds a large set of
  unit tests, then I'm guilty as charged.

  Apart from removing a few extra tabs (my mistake), everything I changed is
  documented in the changelog and covered by unit tests or standalone tests.

It's not because changes are covered by unit tests and described in
the ChangeLog that changes are *atomic*.

We're programming right, so we believe in the separation of concerns?
I (at least try) to apply the separation of concerns in commits as
well. I like to think to a SCM as an important developer tool, and I'm
not the only one to monitor patches coming in. By having small self
contained patch, it's much easier to navigate through history, detect
defects, and revert them precisely. Am sorry that you don't see the
issue, but there's one. Really.

And not only that allow us to be aware of the code coming in, and to
work on it if needed, but it also allow us to review the code, we,
maintainers, that are asked to maintain a piece of code. By checking
patches in the way you're doing it, you're simply preventing us to do
this work efficiently. And as I said, it's not because you're adding
tests and writing ChangeLog entries that some mistakes are not buried
into the hundred of lines of changes. We already saw that happen
didn't we?

To sum up, you're checking in large set of tests + behavior changes +
style changes all in the same commit. And that's not a good practice,
at all.

  Please be reasonable. What more can you ask?

Please listen when different people like Atsushi or Sébastien (or even
me for that matters) repeatedly say the same thing.

And I'd ask you to follow their advices.

-- 
Jb Evain  [EMAIL PROTECTED]
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Jb Evain
Hey,

On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
  Please be reasonable. What more can you ask?

Is that worth noting that the particular commit we're talking about
broke the build?

-- 
Jb Evain  [EMAIL PROTECTED]
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Atsushi Eno
I think that's kind of mistake we often make; CONFIGURATION_DEP
annoyance. Let's not worry much about it ;-)

Atsushi Eno

Jb Evain wrote:
 Hey,
 
 On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
  Please be reasonable. What more can you ask?
 
 Is that worth noting that the particular commit we're talking about
 broke the build?
 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen
Hey Atsushi,

Apart from the change in ClientConfigurationSystem my patch was about using
the IConfigErrorInfo interface for getting filename/linenumber info instead
of explicitly checking for XmlTextReader, or using internal IConfigXmlNode
interface.

Before the introduction of IConfigErrorInfo, we had to resort to this. My
changes just allow us to use this new interface, which - at the same time -
allows us to write unit tests for this (as this now matches the MS
implementation).

I don't intend to write a book about these trivial changes, but I've
responded to your comments inline.

Gert

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
Sent: donderdag 26 juni 2008 17:41
To: Gert Driesen
Cc: 'mono-devel-list'
Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

No. You claim as if your change were only about one issue, which it
NOT true. Here is concrete description:

 Modified:
trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
.cs
 ===
 ---
trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
.cs 2008-06-26 09:57:29 UTC (rev 106625)
 +++
trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
.cs 2008-06-26 10:31:07 UTC (rev 106626)
 @@ -73,7 +73,7 @@
   if (File != ) {
   try {
   Stream s = System.IO.File.OpenRead
(File);
 - XmlReader subreader = new
XmlTextReader (s);
 + XmlReader subreader = new
ConfigXmlTextReader (s, File);
   base.DeserializeElement (subreader,
serializeCollectionKey);
   s.Close ();
   }

For example it is about ConfigXmlTextReader change.

= The use of ConfigXmlTextReader is necessary as it implements
IConfigErrorInfo. I consider this part of the same change.

 Modified:
trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
nSystem.cs
 ===
 ---
trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
nSystem.cs  2008-06-26 09:57:29 UTC (rev 106625)
 +++
trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
nSystem.cs  2008-06-26 10:31:07 UTC (rev 106626)
 @@ -32,28 +32,39 @@
  using System.Reflection;
  using System.Configuration.Internal;
  
 -namespace System.Configuration {
 -
 +namespace System.Configuration
 +{
   internal class ClientConfigurationSystem : IInternalConfigSystem
   {
 - readonly Configuration cfg;
 + Configuration cfg;
  
 - public ClientConfigurationSystem () {
 - Assembly a = Assembly.GetEntryAssembly();
 - string exePath =
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 -
 - if (a == null  exePath == null)
 - exePath = ;
 -
 - cfg =
ConfigurationManager.OpenExeConfigurationInternal
(ConfigurationUserLevel.None, a, exePath);
 + public ClientConfigurationSystem ()
 + {
   }
  
 + private Configuration Configuration {
 + get {
 + if (cfg == null) {
 + Assembly a =
Assembly.GetEntryAssembly();
 + string exePath =
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 +
 + if (a == null  exePath == null)
 + exePath = string.Empty;
 +
 + try {
 + cfg =
ConfigurationManager.OpenExeConfigurationInternal (
 +
ConfigurationUserLevel.None, a, exePath);
 + } catch (Exception ex) {
 + throw new
ConfigurationErrorsException (Error Initializing the configuration
system., ex);
 + }
 + }
 + return cfg;
 + }
 + }
 +
   object IInternalConfigSystem.GetSection (string configKey)
   {
 - if (cfg == null)
 - return null;
 -
 - ConfigurationSection s = cfg.GetSection (configKey);
 + ConfigurationSection s = Configuration.GetSection
(configKey);
   return s != null ? s.GetRuntimeObject () : null;
   }
  

This is about lazy

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen
Jb,  I envy your positive attitude.

Atsushi, that for the quick fix. I'll do a full bootstrap next.

Gert

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Jb Evain
Sent: donderdag 26 juni 2008 18:46
To: Gert Driesen
Cc: Atsushi Eno; mono-devel-list
Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

Hey,

On 6/26/08, Gert Driesen [EMAIL PROTECTED] wrote:
  Please be reasonable. What more can you ask?

Is that worth noting that the particular commit we're talking about
broke the build?

-- 
Jb Evain  [EMAIL PROTECTED]
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Atsushi Eno
In short, you are not going to change your commit policy right?

When I go ahead and make significant refactoring, I'll clean your
changes up and mark insignificant compatibility tests as Ignore.

Insignificant compatibility mastur* should not block significant
performance improvements.

Atsushi Eno


Gert Driesen wrote:
 Hey Atsushi,
 
 Apart from the change in ClientConfigurationSystem my patch was about using
 the IConfigErrorInfo interface for getting filename/linenumber info instead
 of explicitly checking for XmlTextReader, or using internal IConfigXmlNode
 interface.
 
 Before the introduction of IConfigErrorInfo, we had to resort to this. My
 changes just allow us to use this new interface, which - at the same time -
 allows us to write unit tests for this (as this now matches the MS
 implementation).
 
 I don't intend to write a book about these trivial changes, but I've
 responded to your comments inline.
 
 Gert
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
 Sent: donderdag 26 juni 2008 17:41
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 No. You claim as if your change were only about one issue, which it
 NOT true. Here is concrete description:
 
 Modified:
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs
 ===
 ---
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs   2008-06-26 09:57:29 UTC (rev 106625)
 +++
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs   2008-06-26 10:31:07 UTC (rev 106626)
 @@ -73,7 +73,7 @@
  if (File != ) {
  try {
  Stream s = System.IO.File.OpenRead
 (File);
 -XmlReader subreader = new
 XmlTextReader (s);
 +XmlReader subreader = new
 ConfigXmlTextReader (s, File);
  base.DeserializeElement (subreader,
 serializeCollectionKey);
  s.Close ();
  }
 
 For example it is about ConfigXmlTextReader change.
 
 = The use of ConfigXmlTextReader is necessary as it implements
 IConfigErrorInfo. I consider this part of the same change.
 
 Modified:
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs
 ===
 ---
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs2008-06-26 09:57:29 UTC (rev 106625)
 +++
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs2008-06-26 10:31:07 UTC (rev 106626)
 @@ -32,28 +32,39 @@
  using System.Reflection;
  using System.Configuration.Internal;
  
 -namespace System.Configuration {
 -
 +namespace System.Configuration
 +{
  internal class ClientConfigurationSystem : IInternalConfigSystem
  {
 -readonly Configuration cfg;
 +Configuration cfg;
  
 -public ClientConfigurationSystem () {
 -Assembly a = Assembly.GetEntryAssembly();
 -string exePath =
 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 -
 -if (a == null  exePath == null)
 -exePath = ;
 -
 -cfg =
 ConfigurationManager.OpenExeConfigurationInternal
 (ConfigurationUserLevel.None, a, exePath);
 +public ClientConfigurationSystem ()
 +{
  }
  
 +private Configuration Configuration {
 +get {
 +if (cfg == null) {
 +Assembly a =
 Assembly.GetEntryAssembly();
 +string exePath =
 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 +
 +if (a == null  exePath == null)
 +exePath = string.Empty;
 +
 +try {
 +cfg =
 ConfigurationManager.OpenExeConfigurationInternal (
 +
 ConfigurationUserLevel.None, a, exePath);
 +} catch (Exception ex) {
 +throw new
 ConfigurationErrorsException (Error Initializing the configuration
 system., ex);
 +}
 +}
 +return cfg;
 +}
 +}
 +
  object IInternalConfigSystem.GetSection (string configKey)
  {
 -if (cfg

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Gert Driesen
Atsushi,

I'm not deliberately ignoring your or anyone else's advice. Perhaps my idea
of trivial changes is different than yours, definitely if a very large part
of those changes is covered by unit tests. Next time, I'll flood mono-dev
with small patches ;-)

I'm definitely not claiming my changes are more important than performance
improvements, but I'd be surprised if both can't be combined.

Gert

-Original Message-
From: Atsushi Eno [mailto:[EMAIL PROTECTED] 
Sent: donderdag 26 juni 2008 19:58
To: Gert Driesen
Cc: 'mono-devel-list'
Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
trunk/mcs/class/System.Configuration: . System.Configuration
Test/System.Configuration Test/standalone]

In short, you are not going to change your commit policy right?

When I go ahead and make significant refactoring, I'll clean your
changes up and mark insignificant compatibility tests as Ignore.

Insignificant compatibility mastur* should not block significant
performance improvements.

Atsushi Eno


Gert Driesen wrote:
 Hey Atsushi,
 
 Apart from the change in ClientConfigurationSystem my patch was about
using
 the IConfigErrorInfo interface for getting filename/linenumber info
instead
 of explicitly checking for XmlTextReader, or using internal IConfigXmlNode
 interface.
 
 Before the introduction of IConfigErrorInfo, we had to resort to this. My
 changes just allow us to use this new interface, which - at the same time
-
 allows us to write unit tests for this (as this now matches the MS
 implementation).
 
 I don't intend to write a book about these trivial changes, but I've
 responded to your comments inline.
 
 Gert
 
 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
 Sent: donderdag 26 juni 2008 17:41
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 No. You claim as if your change were only about one issue, which it
 NOT true. Here is concrete description:
 
 Modified:

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs
 ===
 ---

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs   2008-06-26 09:57:29 UTC (rev 106625)
 +++

trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs   2008-06-26 10:31:07 UTC (rev 106626)
 @@ -73,7 +73,7 @@
  if (File != ) {
  try {
  Stream s = System.IO.File.OpenRead
 (File);
 -XmlReader subreader = new
 XmlTextReader (s);
 +XmlReader subreader = new
 ConfigXmlTextReader (s, File);
  base.DeserializeElement (subreader,
 serializeCollectionKey);
  s.Close ();
  }
 
 For example it is about ConfigXmlTextReader change.
 
 = The use of ConfigXmlTextReader is necessary as it implements
 IConfigErrorInfo. I consider this part of the same change.
 
 Modified:

trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs
 ===
 ---

trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs2008-06-26 09:57:29 UTC (rev 106625)
 +++

trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs2008-06-26 10:31:07 UTC (rev 106626)
 @@ -32,28 +32,39 @@
  using System.Reflection;
  using System.Configuration.Internal;
  
 -namespace System.Configuration {
 -
 +namespace System.Configuration
 +{
  internal class ClientConfigurationSystem : IInternalConfigSystem
  {
 -readonly Configuration cfg;
 +Configuration cfg;
  
 -public ClientConfigurationSystem () {
 -Assembly a = Assembly.GetEntryAssembly();
 -string exePath =
 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 -
 -if (a == null  exePath == null)
 -exePath = ;
 -
 -cfg =
 ConfigurationManager.OpenExeConfigurationInternal
 (ConfigurationUserLevel.None, a, exePath);
 +public ClientConfigurationSystem ()
 +{
  }
  
 +private Configuration Configuration {
 +get {
 +if (cfg == null) {
 +Assembly a =
 Assembly.GetEntryAssembly();
 +string exePath =
 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 +
 +if (a == null  exePath == null

Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in trunk/mcs/class/System.Configuration: . System.Configuration Test/System.Configuration Test/standalone]

2008-06-26 Thread Atsushi Eno
Actually anyone who uses this IConfigErrorInfo is an idiot because
it is explicitly written as .NET FX internal.

This API supports the .NET Framework infrastructure and is not
intended to be used directly from your code.

So, compatibility is COMPLETELY no value here.

You don't have to flood mono-dev next time. I will silently
eliminate extraneous changes. I really don't care about those
pointless compatibility and will be glad to eliminate.

Atsushi Eno


Gert Driesen wrote:
 Atsushi,
 
 I'm not deliberately ignoring your or anyone else's advice. Perhaps my idea
 of trivial changes is different than yours, definitely if a very large part
 of those changes is covered by unit tests. Next time, I'll flood mono-dev
 with small patches ;-)
 
 I'm definitely not claiming my changes are more important than performance
 improvements, but I'd be surprised if both can't be combined.
 
 Gert
 
 -Original Message-
 From: Atsushi Eno [mailto:[EMAIL PROTECTED] 
 Sent: donderdag 26 juni 2008 19:58
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]
 
 In short, you are not going to change your commit policy right?
 
 When I go ahead and make significant refactoring, I'll clean your
 changes up and mark insignificant compatibility tests as Ignore.
 
 Insignificant compatibility mastur* should not block significant
 performance improvements.
 
 Atsushi Eno
 
 
 Gert Driesen wrote:
 Hey Atsushi,

 Apart from the change in ClientConfigurationSystem my patch was about
 using
 the IConfigErrorInfo interface for getting filename/linenumber info
 instead
 of explicitly checking for XmlTextReader, or using internal IConfigXmlNode
 interface.

 Before the introduction of IConfigErrorInfo, we had to resort to this. My
 changes just allow us to use this new interface, which - at the same time
 -
 allows us to write unit tests for this (as this now matches the MS
 implementation).

 I don't intend to write a book about these trivial changes, but I've
 responded to your comments inline.

 Gert

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] On Behalf Of Atsushi Eno
 Sent: donderdag 26 juni 2008 17:41
 To: Gert Driesen
 Cc: 'mono-devel-list'
 Subject: Re: [Mono-dev] [Fwd: [Mono-patches] r106626 - in
 trunk/mcs/class/System.Configuration: . System.Configuration
 Test/System.Configuration Test/standalone]

 No. You claim as if your change were only about one issue, which it
 NOT true. Here is concrete description:

 Modified:
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs
 ===
 ---
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs  2008-06-26 09:57:29 UTC (rev 106625)
 +++
 trunk/mcs/class/System.Configuration/System.Configuration/AppSettingsSection
 .cs  2008-06-26 10:31:07 UTC (rev 106626)
 @@ -73,7 +73,7 @@
 if (File != ) {
 try {
 Stream s = System.IO.File.OpenRead
 (File);
 -   XmlReader subreader = new
 XmlTextReader (s);
 +   XmlReader subreader = new
 ConfigXmlTextReader (s, File);
 base.DeserializeElement (subreader,
 serializeCollectionKey);
 s.Close ();
 }
 For example it is about ConfigXmlTextReader change.

 = The use of ConfigXmlTextReader is necessary as it implements
 IConfigErrorInfo. I consider this part of the same change.

 Modified:
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs
 ===
 ---
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs   2008-06-26 09:57:29 UTC (rev 106625)
 +++
 trunk/mcs/class/System.Configuration/System.Configuration/ClientConfiguratio
 nSystem.cs   2008-06-26 10:31:07 UTC (rev 106626)
 @@ -32,28 +32,39 @@
  using System.Reflection;
  using System.Configuration.Internal;
  
 -namespace System.Configuration {
 -
 +namespace System.Configuration
 +{
 internal class ClientConfigurationSystem : IInternalConfigSystem
 {
 -   readonly Configuration cfg;
 +   Configuration cfg;
  
 -   public ClientConfigurationSystem () {
 -   Assembly a = Assembly.GetEntryAssembly();
 -   string exePath =
 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
 -
 -   if (a == null  exePath == null)
 -   exePath = ;
 -
 -   cfg =
 ConfigurationManager.OpenExeConfigurationInternal
 (ConfigurationUserLevel.None, a, exePath);
 +   public