Am 18.04.2018 um 15:07 schrieb Jim Jagielski:
There are, IMO at least, 3 types of "regression" that we should be
concerned about or that some people are concerned about:

   1. New features:
      Undoubtedly, new features will likely have bugs and
      no by adding new features we could be adding bugs
      which could be seen as a regression.

   2. Simple fixes:
      A simple fix causes a regression.

   3. Wholesale refactoring:
      IMO, this is the one which is the most problematic for
      us lately. We have seen several cases where a simple
      bug or a desire to "make this part of the code better"
      has resulted in huge amounts of code churn, major rewrites
      and major refactoring.

My PoV is that:

  o We need to continue to add new features. We must provide better
    QA and testing.

  o We need to avoid our natural inclinations to look at "fixing
    bugs" as an opportunity for major refactors. If people want
    to major refactor, fine. But that stays in trunk. What is
    important is that we patch the bug 1st. Premature re-factoring
    is as bad as premature optimization.

Since this thread was triggered by the mod_ssl config merging problems: I think that was a case where a new feature was really nice, but to implement it the needed changes where not not easy to understand in detail. Combined with the complex behavior of mod_ssl w.r.t. config merging we ended up with unexpected config merging problems. So that specific problem belongs to your class 1 (I think both, the one detected by Mark Blackman and the one received via Joe).

It is not a total surprise, that regressions - be it due to features, bug fixing or refactoring - most often happen in mod_proxy or mod_ssl. These are IMHO by far the most complex modules (together with the event MPM). Unfortunately the same parts are very attractive for features, so we have some need to touch them.

When implementing a feature or fixing a bug it is often hard to decide where the border is crossed that makes a change a "major" refactoring or whether a changes still mostly helps to understand the code.

We do lack a robust procedure and resources for testing complex configurations and also testing on many platforms. I don't have a solution for that :(

More release branches would only help, if people would actually pick them up. So we would need to keep features in the higher branches at least for a noticeable time. Of course the enterprise distros would not pick the additional release branches up, but maybe if they have attractive features, they might get picked up by faster moving distros, inside container images and by 3rd-parties like Apache Lounge. We could even provide builds for some platforms as a voluntary service.

All in all I'd prefer an attempt to have a faster moving 2.6 and a stable backport branch 2.4 real soon.

Regards,

Rainer

Reply via email to