]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
EXPERIMENTAL: add graduation requirements for each feature
authorDaniel Stenberg <daniel@haxx.se>
Mon, 6 May 2024 12:02:31 +0000 (14:02 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 6 May 2024 15:05:04 +0000 (17:05 +0200)
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

docs/EXPERIMENTAL.md

index 09a0d166ecbd51a05b99d889302833027afe9d64..23be5a5c387701fb078f788e501dc78350e8e458 100644 (file)
@@ -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)