Re: [External] : Agenda for the next OTC meeting

2021-10-13 Thread Kurt Roeckx
> I would like to also discuss code coverage, and in particular adding tests 
> for any new code that is added.

It was always my understanding that our policy was that tests need
to be added. We have a checkbox in the pull request to indicate
that it's been done. But maybe it's not written down in a document
that that is what is expected.


Kurt



OMC Release Requirements

2021-10-13 Thread Matt Caswell

FYI, the OMC have agreed the attached release requirements document.

Matt
# OMC Release Requirements

This document provides information on the OMC requirements and expectations for the next release after 3.0 and subsequent releases.

## Release timeframe

The OMC objective is to have shorter release timeframes, with releases occurring every six months.

1.1.1 is our current LTS release and we are committed to specifying another one by September 2022. Therefore OMC expects that the next release (3.1) will be the next LTS. In the event that 3.1 is not released by September 2022 then the fallback position is for 3.0 to be the LTS.

## Platform List

Follow the to-be-published platform policy update covering the primary and secondary platforms.

## QUIC

The focus for the next releases is QUIC, with the objective of providing a fully functional QUIC implementation over a series of releases (2-3).

The current libssl record layer includes support for TLS, DTLS and KTLS. QUIC will introduce another variant and there may be more over time. The OMC requires a pluggable record layer interface to be implemented to enable this to be less intrusive, more maintainable, and to harmonize the existing record layer interactions between TLS, DTLS, KTLS and the planned QUIC protocols.

The application must have the ability to be in control of the event loop without requiring callbacks to process the various events. An application must also have the ability to operate in “blocking” mode.

The QUIC implementation must include at least one congestion control algorithm. The fully functional release will provide the ability to plug in more implementations (via a provider).

The minimum viable product (MVP) for the next release is a pluggable record layer interface and a single stream QUIC client in the form of s_client that does not require significant API changes. In the MVP, interoperability should be prioritized over strict standards compliance.

The MVP will not contain a library API for an HTTP/3 implementation (it is a non-goal of the initial release). Our expectation is that other libraries will be able to use OpenSSL to build an HTTP/3 client on top of OpenSSL for the initial release.

Once we have a fully functional QUIC implementation (in a subsequent release), it should be possible for external libraries to be able to use the pluggable record layer interface and it should offer a stable ABI (via a provider).

The next major release number is intended to be reserved for the fully functional QUIC release (this does not imply we expect API breakage to occur as part of this activity - we can change major release numbers even if APIs remain compatible).

PR#8797 will not be merged and compatibility with the APIs proposed in that PR is a non-goal.

We do not plan to place protocol versions themselves in separate providers at this stage.

For the MVP a single interop target (i.e. the server implementation list):

1.  Cloudfare - https://cloudflare-quic.com/

Testing against other implementations is not a release requirement for the MVP.

## DTLS

DTLS-1.3 is not a target for any release until it becomes an RFC. DTLS-1.3 is not a target for the next release even if it becomes an RFC.