From: Daniel Stenberg Date: Mon, 6 May 2024 12:02:31 +0000 (+0200) Subject: EXPERIMENTAL: add graduation requirements for each feature X-Git-Tag: curl-8_8_0~121 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7490d5488e0e7835199285b0568a1c2e0d51b6a9;p=thirdparty%2Fcurl.git EXPERIMENTAL: add graduation requirements for each feature Starting now, experimental features should have a set of documentated requirements of what is needed for the feature to graduate. This adds requirements to all existing experiments. Closes #13541 --- diff --git a/docs/EXPERIMENTAL.md b/docs/EXPERIMENTAL.md index 09a0d166ec..23be5a5c38 100644 --- a/docs/EXPERIMENTAL.md +++ b/docs/EXPERIMENTAL.md @@ -22,10 +22,59 @@ Experimental support in curl means: experimental. 5. Experimental features are clearly marked so in documentation. Beware. +## Graduation + +1. Each experimental feature should have a set of documented requirements of + what is needed for that feature to graduate. Graduation means being removed + from the list of experiments. +2. An experiment should NOT graduate if it needs test cases to be disabled, + unless they are for minor features that are clearly documented as not + provided by the experiment and then the disabling should be managed inside + each affected test case. + ## Experimental features right now - - The Hyper HTTP backend - - HTTP/3 support (using the quiche or msh3 backends) - - The rustls backend - - WebSocket - - Use of the HTTPS resource record and Encrypted Client Hello (ECH) when using DoH +### The Hyper HTTP backend + +Graduation requirements: + +- HTTP/1 and HTTP/2 support, including multiplexing + +### HTTP/3 support (non-ngtcp2 backends) + +Graduation requirements: + +- The used libraries should be considered out-of-beta with a reasonable + expectation of a stable API going forward. + +- Using HTTP/3 with the given build should perform without risking busy-loops + +### The rustls backend + +Graduation requirements: + +- a reasonable expectation of a stable API going forward. + +### WebSocket + +Graduation requirements: + +- feedback from users saying that the API works for their specific use cases + +- unless the above happens, we consider WebSocket silently working by + September 2024 when it has been stewing as EXPERIMENTAL for two years. + +## ECH + +Use of the HTTPS resource record and Encrypted Client Hello (ECH) when using +DoH + +Graduation requirements: + +- ECH support exists in at least one widely used TLS library apart from + BoringSSL and wolfSSL. + +- feedback from users saying that ECH works for their use cases + +- it has been given time to mature, so no earlier than April 2025 (twelve + months after being added here)