[ech] ECH PR split/progression

Matt Caswell matt at openssl.org
Mon Jan 22 09:44:09 UTC 2024



On 22/01/2024 01:07, Stephen Farrell wrote:

> FWIW, I'm unclear if following this plan would mean that
> (all going well) each PR would be merged with master before
> the next is processed, or if the plan is really to help with
> more tractable reviews before ending up again with one PR
> that has all the functionality.

If we are aiming to have smaller PRs that can individually be merged to 
master then each PR needs to be entirely stand alone and include all 
tests etc relevant to it. From 3.3 we are doing "time based" releases 
(with 3.3 being in April this year), which means that master must be in 
a ready-to-go state at any point. We can't have "half finished" changes 
in master.

The alternative is for us to create a "feature branch" for ech and put 
reviewed PRs there, pending the complete set becoming available. We have 
one such feature branch at the moment 
(https://github.com/openssl/openssl/tree/feature/quic-server) - but 
frankly we're still figuring out how to manage things via a feature branch.

There are pros and cons to each approach.

The stand alone approach is simplest. We understand what we are doing 
with that. On the downside it might be more difficult to break things up 
to be entirely stand alone. Additionally we might be less willing to 
merge a big "high risk" PR the closer we get to April (or any subsequent 
time-based release date).

OTOH the feature branch approach has the advantage that we can work on 
the PRs without worrying about release dates etc, or ensuring that 
everything is fully stand alone. We can have "half finished" features in 
a feature branch. On the downside we are still learning how to manage 
feature branches - we haven't done them before. Such a feature branch 
would need to be regularly rebased (probably by a committer) - and we're 
not too clear on what the rules are for doing that or how it will work. 
There is a certain "overhead" in having a feature branch.

I'd personally prefer the stand alone approach if it can be arranged - 
just because it is simpler.

Matt


> I'm assuming the former, but
> would appreciate confirmation that that's feasible. (E.g.
> the 1st "server" PR would have to omit lots of test code
> that exists and works today, but that wouldn't work if the
> client code is temporarily omitted.)
> 
> Thanks,
> S.
> 
> 
> [1] https://github.com/openssl/openssl/pull/22938
> 


More information about the ech mailing list