On 02 Jun 2011, at 4:09 PM, Jeff Trawick wrote:

What are the critical facts?

LDAP support in APR 2.0:

* there was [almost] no support for preserving the status quo; those
that spoke up wanted either to make it a full API or drop it
** more wanted to drop it
** Graham offered to do the work to make it a full API

* AFAIK we did not resolve the fact that more people spoke up for
removal than for making it a full API ("tentative compromise"?)

* nobody got around to either removing it or making it a full API for
a long time afterwards, for the same multitude of reasons that other
things do not get done

* wrowe finally got around to take action, which was to yank it
** I dunno if that was preceded by a notice, which would have been
"nice"  (no, I haven't spent much time in my inbox :( )

Any dispute so far?

Yes, you missed out the apr_crypto and apr_dbd API issues that blocked apr_ldap.

apr_crypto was written off a direct template of the apr_dbd code under the understanding that apr_dbd represented the accepted level of API quality in apr. Feedback since the apr_crypto code was committed has revealed that apr_dbd does not represent the accepted level of API quality in apr, with respect to the passing of multiple context pointers at the same time, and the ordering of the parameters, and it has been made clear by those expressing their disapproval that this is required to be fixed. I agree with them. As you are aware, fixing apr_crypto is a top priority, because it blocks apr-util v1.4 and httpd v2.4.

Given that the plan was to model the apr_ldap code on apr_dbd, work on apr_ldap was suspended until the issues of exactly what was wrong with the apr_crypto and apr_dbd APIs was resolved. Most specifically, the plan was as follows:

1) apr_crypto gets all required changes made to it, people agree that apr_crypto's interface represents the level of quality acceptable to the project. Feedback on apr_crypto has been torturously slow, but it has at last arrived.

2) apr_dbd gets the same changes applied to it to bring it to the new standard required of apr_crypto, people agree that apr_dbd's interface represents the level of quality acceptable to the project.

3) apr_ldap gets written from scratch, carefully ensuring as little disruption for the 7 different toolkits we support (ie we leave the autoconf stuff alone, as it already works, the API is a problem), again with an interface consistent with apr_crypto/apr_dbd, and to the level of quality acceptable to the project.

Where are we right now? We're still at step one above. Wrowe has after a long delay provided an apr_crypto.h file that represents the blueprint for what he believed was wrong with the apr_crypto and apr_dbd APIs, and his issues have been recently fixed. These have been backported to apr-util v1.5 and v1.4. Further polishing has taken place, and these too need backporting, and I planned to have this resolved this week while trying to have a holiday.

The work on apr_dbd was to happen next, but wrowe expressed his preference to wait until httpd v2.4 was out the door (no objection from my side). My plan was to propose a new apr_dbd API within the comments of apr_dbd, giving people the opportunity to agree on the changes in principle before they were applied in practice. I was not prepared to start the work on apr_ldap until I had a solid and agreed template on which to build upon, as I am not prepared to repeat the torturous process of vague objection followed by endless delay that I experienced writing apr_crypto. In the mean time, there is enough work to keep me busy on httpd v2.4.

At this point, out of the blue, something snaps and wrowe decides that he is tired of waiting for step 3 above, makes the accusation "but you had years to set aside time, and couldn't be bothered", as if to say that I have been doing nothing all this time (svn disagrees). This statement comes after making me wait literally years for a clear and unambiguous answer as to exactly what is wrong with the apr_crypto and apr_dbd APIs, so that I could move forward on the plan above.

As a project, we need to work together, we need to collaborate.

The right thing to have done would have been to have asked on the list as to the status of apr_ldap, and what was blocking progress. The answer to that question is written above, and would have been provided had somebody just asked.

Regards,
Graham
--

Reply via email to