On 01/20/2017 09:37 PM, Graham Leggett wrote:
> On 20 Jan 2017, at 7:47 PM, David Zuelke <d...@heroku.com> wrote:
> 
>> I'd actually like to question the whole practice of porting features back to 
>> older branches. I think that's the core reason why trunk is in total 
>> disarray, and why no substantial releases have been made. There is just no 
>> reason for anyone to push forward the state of 2.6 or even 3.0 if you can 
>> just backport whatever you want.
> 
> The reason this is bad is because Apache httpd comes with a module ecosystem 
> - when you move from httpd v2.0 to v2.2 to v2.4 to v2.6, or rules are that 
> the ABI can break, and therefore all modules that depend on that version must 
> be recompiled. This includes modules that are closed source and offered by a 
> proprietary vendor, or are open source but provided in binary form by a 
> distro.

I share this concern. If you put new features only in 2.current+1 then most 
users have to wait for years until they can
use them due to the lack of support by third parties for 2.current+1. You might 
argue if you speed up with increasing
x in 2.x and faster deprecating older 2.y you would solve that issue and 3rd 
parties would simply speed up their model.
But I don't think so. I think and some actually do they would create there own 
fork of 2.x and only supply the
modules for that fork leaving you locked in a closed vendor solution with 
"features" added by them. Nothing I am keen on.

> 
> Right now, you can get new features on the httpd v2.4 branch, but ONLY if 
> that feature does not break existing behaviour in any way. This is entirely 
> reasonable, convenient, and what we’ve been doing since the 1990s.
> 
>> Just define 2.4 as "bug fixes only" the moment 2.6 is released, and start 
>> the process of getting 2.6 out ASAP. In fact, why not declare 2.4 that right 
>> now? It's already "stable". It doesn't need more features that suddenly 
>> change behavior from 2.4.28 to 2.4.29 or whatever (that's the opposite of 
>> what users are looking for).
>>
>> That's how PHP does it now... new features can go into x.y.0, and once that 
>> is released (actually, once it's in beta stage), anything that is not a 
>> small fix needs to wait for x.y+1.0 or x+1.0.0. Which is not a big deal 
>> because these releases land every year now, like clockwork.
> 
> So you have to wait a year for new features to see a release? Definitely not 
> keen on that.
> 
>> I have said this in the other thread that hasn't gotten much traction ("A 
>> new release process?"). The PHP team was in the exact same spot as HTTPD a 
>> few years ago. No substantial progress, stale branches, no light at the end 
>> of the tunnel, and a lot of fighting.
> 
> We’ve had a significant amount of progress, a trunk that is so stable that 
> almost all fixes and features can be backported to v2.4 without any fear of 
> incompatibility, and the “fighting” is limited to very few individuals.
> 
> We’re not broken, we don’t need fixing.

I wouldn't say we don't need fixing. But IMHO we don't need fixing in the way 
proposed.
We need to work on getting a better testing in place. Honestly I don't have an 
answer at hand how to do this,
but from my personal point of view I think that our perl framework is sometimes 
a little hard to work with
(might be my own limitation) and we lack the possibility of doing internal API 
tests more easily (I know that you can do
certain tests by creating C test modules in the perl framework, but that should 
be easier).
That would increase stability of our release and avoid regressions better.
But the cause for introducing regressions isn't because a feature is ported 
back, we have regressions as well on bug
fixes, the cause is in most cases the complexity of the code ported back or 
better the complexity of the code region
touched.
And by complexity in this case I don't mean necessarily the number of code 
lines ported back. A one line change can
cause ugly regressions if it messes with a complex subject.
But maybe that tells us that we need to restructure these areas of code to make 
them easier to understand and thus
more stable to changes.
Honestly the stuff above sounds like a lot of thankless work and not sexy and 
that maybe the reason why we lack progress
here.

Regards

Rüdiger

Reply via email to