RE: cvscommit: jakarta-commons/httpclient/src/test/org/apache/commons/httpclientTestAuthenticator.javaTestHttpState.javaTestHttps.java TestMethodsExternalHost.javaTestWebappBasicAuth.java

2003-07-07 Thread Kalnichevski, Oleg
Christopher,

> this thread has gotten a bit out of hand now... 

As long as we manage behaving as mature people, I see no problem in talking things 
through

> offensive, implying that we're doing something weird by using CVS HEAD 
> of HttpClient (which is totally normal at Jakarta). And your comment 
> about API compatibility sounded like you don't care very much about 
> preserving compatibility.

I apologize if my response sounded harsh to you. Allow me to point out, though, the 
problems of maintaining 2.0 API compatibility have been discussed repeatedly on this 
mailing list before, and the decision has been taken BY THE HTTPCLIENT COMMUNITY AS 
EARLY AS FEBRUARY that maintaining 2.0 compatibility was not feasible due to 
limitations of the existing architecture. It was a very hard decision and it has not 
been taken lightly. I believe there was nothing that precluded you from taking part in 
that decision making process and influencing its outcome. But once the decision has 
been taken, I do find it a bit irresponsible, to come up with (what I see as) demands 
to change the course of HttpClient development that suits best your particular 
project. 

We have been very explicit about API compatibility issue MONTHS IN ADVANCE: there's a 
2.0 branch which will provide you with FULL API compatibility, and you will have our 
full support migrating to 2.1 once is its APIs are frozen, but further development of 
HttpClient is not possible without limited API changes in the 2.1 branch. 


> There is a *huge* difference between "we should make all possible 
> efforts to keep API compatibility" (Michael) and "we will no longer be 
> able to provide API compatibility" (Oleg). And the difference might not 
> even be technical ;-)

I have always been a bad guy of HttpClient community  ;-) 
And will remain a bad guy as long people are not willing to listen to their 
counterparts' arguments

Cheers

Evil Comrade Oleg

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

RE: cvscommit: jakarta-commons/httpclient/src/test/org/apache/commons/httpclientTestAuthenticator.javaTestHttpState.javaTestHttps.java TestMethodsExternalHost.javaTestWebappBasicAuth.java

2003-07-06 Thread Ralph Goers
My 2 cents.

It is ALWAYS possible to maintain binary compatibility.  The downside is
that it is ugly and gets unmaintainable over time and it occasionally forces
you to create new classes or methods where you would have liked to have
reuse the old name. Such is life.

An acceptable compromise is to maintain deprecated methods and classes for a
release or two and then remove them.

Ralph

-Original Message-
From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED]
Sent: Sunday, July 06, 2003 2:33 PM
To: Commons HttpClient Project
Subject: RE: cvscommit:
jakarta-commons/httpclient/src/test/org/apache/commons/httpclientTestAut
henticator.javaTestHttpState.javaTestHttps.java
TestMethodsExternalHost.javaTestWebappBasicAuth.java


Vincent,
I have a feeling that you somehow suspect me of waking up this morning
and thinking: "Geez, I feel like screwing up those HttpClient APIs.
Wouldn't that be fun?". Believe me, I am not THAT bad

Please allow me to copy verbatim the paragraph from the release plan
that I wrote:

--
Objective:

The objective of the 2.1 release of HttpClient is to build upon the
foundation laid with the previous release while addressing those 
architectural shortcomings and flaws identified during 2.0 development
process. Several well known and much complained about problems could not
be resolved without sacrificing API stability. The primary motivation
behind the 2.1 is to fix those design limitations, breaking 2.0 API
compatibility where absolutely unavoidable, while preserving overall
compatibility with 2.0 use patterns. 
--

Cmon, what else am I supposed to say to make you beleive?

And of course, it just goes without saying that each and every patch
will be discussed on this mailing list and committed only if there are
enough confidence that it satisfies the above stated criteria. You are
welcome to dispute the merits of each individual API breakage, but just
demanding 100% compatibility with 2.0 release no matter what will
effectively halt further development of HttpClient.

Cheers

Oleg


-
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: cvscommit: jakarta-commons/httpclient/src/test/org/apache/commons/httpclientTestAuthenticator.javaTestHttpState.javaTestHttps.java TestMethodsExternalHost.javaTestWebappBasicAuth.java

2003-07-06 Thread Vincent Massol
Hi Oleg,

> -Original Message-
> From: Oleg Kalnichevski [mailto:[EMAIL PROTECTED]
> Sent: 06 July 2003 23:02
> To: Vincent Massol
> Subject: RE:cvscommit: jakarta-
>
commons/httpclient/src/test/org/apache/commons/httpclientTestAuthenticat
or
> .javaTestHttpState.javaTestHttps.java
> TestMethodsExternalHost.javaTestWebappBasicAuth.java
> 
> 
> > Hey, we're simply users, not developers of HttpClient! :-)
> >
> 
> Vincent, what is wrong with trying to influence the course of
HttpClient
> development when development plans are being publicly discussed, but
not
> after a decision has been taken? There is nothing that precludes you
> from voicing your opinion on issues that are important for you.

I'm sorry Oleg, but I can only follow so many projects and HttpClient is
not one of them. I just discovered that HttpClient had broken an API
when Gump signaled it to us this morning and I thank it for that! 

Chris sent an email to the commons-dev list mentioning that he'd like
the HttpClient to try to preserve API compatibility and to evolve the
API instead of breaking it. I have supported his comment and I totally
agree with him.

> 
> 
> > >
> > > Please also advice me how to fix these bugs while retaining 2.0
API
> > > compatibility:
> > >
> > > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20089
> > > http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16729
> >
> > I fear I am not able to help much as I'm not an HttpClient developer
and
> > I would need to dive in the code to give any help. That said, there
are
> > always ways to evolve an API by going through a deprecation
mechanism.
> >
> 
> It is not a problem to mark a method as deprecated. The problem is to
> keep deprecated stuff fully functional once the overall architecture
has
> undergone some significant changes. I do not see at as always
feasible.
> 
> In my humble opinion 2.0 API has been REALLY stretched to its very
limit
> and have done everything possible within the constraints of the
existing
> architecture.
> 
> Guys, please try to see a bit beyond your own project and your own
> interests.

The same can be said the other way around: Guys please try to see a bit
beyond your own project and your own interests. HttpClient is famous now
and you have customers to support! :-)

Preserving compatibility is not always easy and sometime even not
possible. What I am just saying is that you should try to make all your
possible to preserve it and only break it from time to time when there's
no other solution. Then, it should be clearly marked and an easy path
should be offered for your users.

As Michael said, the best solution is probably to address each problem
one by one and try to find the less disruptive solution. Thanks to Gump,
it should be relatively easy to detect breakages.

Thanks
-Vincent

> 
> Cheers
> 
> Oleg
> 



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]