William A. Rowe, Jr. wrote:
* cache - that's experimental.
* ldap - that's experimental.
These are experimental in 2.0 only, they have been promoted in 2.1/2.2.
* proxy - that SHOULD have stayed experimental, it sure wasn't cooked
when we reimported it into 2.0. [Newcomers, do be aware that
we punted proxy OUT of httpd 2, it was so horrid. It was
significantly refactored, and reintroduced, but brought back
as many new bugs as the refactoring eliminated.]
I have lots of proxy installs that to date have worked with zero hassle
for years.
The majority of bugs in the v2.0 proxy code originated when a vendor of
an HTTP protocol testing suite added each individual protocol violation
they picked up to bugzilla. This makes proxy one of the most scrutinised
pieces of code in the server. Many of these violations were fixed, with
the more minor ones being still outstanding.
* ssl - I'm under the impression (and could be wrong) that most of
the ssl issues are unusual, more experimental configurations
using features that even the mod_ssl project doesn't build
by default ;-)
So they are new. Why does that make them experimental?
Because we don't yet know if they work well enough to be useful to end
users - only end users can tell us that, and end users don't use code
that isn't there.
Remember that there is a big difference between "works" and "works
well". Cache for example has worked well enough for light load servers
for a long time, but cache is not (yet) good enough for CNN.
We need an incubation process of some kind for new code that people who
are brave enough might try and use in production, without having to jump
the whole way in and install trunk onto production. That process up till
now has been the experimental directory. Without that directory, we
would have had no ldap and no cache.
Please lets bear in mind that a lot of code marked stable is really
just as
new and untested, and going through the same process. Obvious cases:
proxy, cache and ldap have been hugely re-hacked since anything in 2.0.
Proxy got a load balancer hook and a new protocol module, otherwise the
code is largely the same if you haven't switched either of these new
things on.
Cache and LDAP got a huge rework, thus their graduation from experimental.
If you want to commit non-working, experimental code, then we can always
roll another sandbox to 'play' in until there is something worthy of
inclusion in trunk.
A sandbox nobody can play in, because it implies running a development
version of the entire webserver, rather than just a
development/experimental version of a single feature.
Regards,
Graham
--