From 615e105a54ceec5710ac0afd423048f717a34103 Mon Sep 17 00:00:00 2001 From: clokep Date: Wed, 22 Sep 2021 13:42:09 +0000 Subject: deploy: 52913d56a5a2b07106774d97f4e188148d85a900 --- develop/print.html | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'develop/print.html') diff --git a/develop/print.html b/develop/print.html index 2c138d6907..e4c15e576d 100644 --- a/develop/print.html +++ b/develop/print.html @@ -101,7 +101,7 @@ @@ -12157,6 +12157,39 @@ default value is the string "FALSE" - wh in Python, evaluates to True.

+

Implementing experimental features in Synapse

+

It can be desirable to implement "experimental" features which are disabled by +default and must be explicitly enabled via the Synapse configuration. This is +applicable for features which:

+ +

Note that this only really applies to features which are expected to be desirable +to a broad audience. The module infrastructure should +instead be investigated for non-standard features.

+

Guarding experimental features behind configuration flags should help with some +of the following scenarios:

+ +

Experimental configuration flags should be disabled by default (requiring Synapse +administrators to explicitly opt-in), although there are situations where it makes +sense (from a product point-of-view) to enable features by default. This is +expected and not an issue.

+

It is not a requirement for experimental features to be behind a configuration flag, +but one should be used if unsure.

+

New experimental configuration flags should be added under the experimental +configuration key (see the synapse.config.experimental file) and either explain +(briefly) what is being enabled, or include the MSC number.

Log Contexts

To help track the processing of individual requests, synapse uses a 'log context' to track which request it is handling at any given -- cgit 1.5.1