This commit is contained in:
MadLittleMods
2026-08-18 16:48:51 +00:00
parent 742d7ab566
commit 19c20de346
114 changed files with 189 additions and 141 deletions
+1 -1
View File
@@ -38,7 +38,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+5 -8
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -275,13 +275,10 @@ reference only.</p>
<h3 id="building-full-schema-dumps"><a class="header" href="#building-full-schema-dumps">Building full schema dumps</a></h3>
<p>If you want to recreate these schemas, they need to be made from a database that
has had all background updates run.</p>
<p>To do so, use <code>scripts-dev/make_full_schema.sh</code>. This will produce new
<code>full.sql.postgres</code> and <code>full.sql.sqlite</code> files.</p>
<p>Ensure postgres is installed, then run:</p>
<pre><code class="language-sh">./scripts-dev/make_full_schema.sh -p postgres_username -o output_dir/
</code></pre>
<p>NB at the time of writing, this script predates the split into separate <code>state</code>/<code>main</code>
databases so will require updates to handle that correctly.</p>
<p>To do so, use the <code>make_full_schema.sh</code> script. This will produce new
<code>full.sql.postgres</code> and <code>full.sql.sqlite</code> files, after having applied ALL
schema deltas and background updates.</p>
<p>Run <code>poetry run scripts-dev/make_full_schema.sh -h</code> for usage instructions.</p>
<h2 id="delta-files"><a class="header" href="#delta-files">Delta files</a></h2>
<p>Delta files define the steps required to upgrade the database from an earlier version.
They can be written as either a file containing a series of SQL statements, or a Python
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -335,11 +335,12 @@ necessary registration and event handling.</p>
<ul>
<li>will need an <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/synapse/storage/databases/main/thread_subscriptions.py#L75">ID generator</a>
<ul>
<li>may need <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/synapse/config/workers.py#L177">writer configuration</a>, if there isnt already an obvious source of configuration for which workers should be designated as writers to your new stream.
<li>may need <a href="https://github.com/element-hq/synapse/blob/62a4bc46203880dd5034483b0e84156d03a3a8c6/synapse/config/workers.py#L184-L187">writer configuration</a>, if there isnt already an obvious source of configuration for which workers should be designated as writers to your new stream.
<ul>
<li>if adding new writer configuration, add Docker-worker configuration, which lets us configure the writer worker in Complement tests: <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/docker/configure_workers_and_start.py#L331">[1]</a>, <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/docker/configure_workers_and_start.py#L440">[2]</a></li>
</ul>
</li>
<li>Ensure that its been correctly added to <code>synapse/replication/tcp/handler.py</code> and its <code>streams_to_replicate</code> attribute to ensure that changes are actually replicated.</li>
</ul>
</li>
</ul>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -279,9 +279,6 @@ may change without notice.
</span></strong></p>
<p>Called when a user attempts to upload media that would exceed a
<a href="../usage/configuration/config_documentation.html#media_upload_limits">configured media upload limit</a>.</p>
<p>This callback will only be called on workers which handle
<a href="https://spec.matrix.org/v1.15/client-server-api/#post_matrixmediav3upload">POST /_matrix/media/v3/upload</a>
requests.</p>
<p>This could be used to inform the user that they have reached a media upload limit through
some external method.</p>
<p>The arguments passed to this callback are:</p>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+35 -15
View File
@@ -38,7 +38,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
@@ -2012,7 +2012,7 @@ v1.61.0.</p>
<tr><td>v1.85.0 v1.91.2</td><td>v1.83.0</td></tr>
<tr><td>v1.92.0 v1.97.0</td><td>v1.90.0</td></tr>
<tr><td>v1.98.0 v1.105.0</td><td>v1.96.0</td></tr>
<tr><td>v1.105.1 v1.158.0</td><td>v1.100.0</td></tr>
<tr><td>v1.105.1 v1.159.0</td><td>v1.100.0</td></tr>
</tbody>
</table>
</div>
@@ -2032,6 +2032,18 @@ database migrations are complete. You should wait until background updates from
each upgrade are complete before moving on to the next upgrade, to avoid
stacking them up. You can monitor the currently running background updates with
<a href="#status">the Admin API</a>.</p>
<h1 id="upgrading-to-v11590"><a class="header" href="#upgrading-to-v11590">Upgrading to v1.159.0</a></h1>
<h2 id="change-of-signing-key-expiry-date-for-the-debianubuntu-package-repository-2026"><a class="header" href="#change-of-signing-key-expiry-date-for-the-debianubuntu-package-repository-2026">Change of signing key expiry date for the Debian/Ubuntu package repository (2026)</a></h2>
<p>Administrators using the Debian/Ubuntu packages from <code>packages.matrix.org</code>,
please be aware that we have recently updated the expiry date on the repositorys GPG signing key,
but this change must be imported into your keyring.</p>
<p>If you have the <code>matrix-org-archive-keyring</code> package installed and it updates before the current key expires, this should
happen automatically.</p>
<p>Otherwise, if you see an error similar to <code>The following signatures were invalid: EXPKEYSIG F473DD4473365DE1</code>, you
will need to get a fresh copy of the keys. You can do so with:</p>
<pre><code class="language-sh">sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
</code></pre>
<p>The old version of the key will expire on <code>2027-03-15</code>.</p>
<h1 id="upgrading-to-v11580"><a class="header" href="#upgrading-to-v11580">Upgrading to v1.158.0</a></h1>
<h2 id="drop-support-for-ubuntu-2510-questing-quokka-add-support-for-ubuntu-2604-resolute-raccoon"><a class="header" href="#drop-support-for-ubuntu-2510-questing-quokka-add-support-for-ubuntu-2604-resolute-raccoon">Drop support for Ubuntu 25.10 Questing Quokka, add support for Ubuntu 26.04 Resolute Raccoon</a></h2>
<p>Ubuntu 25.10 Questing Quokka <a href="https://endoflife.date/ubuntu">is end-of-life as of
@@ -4461,6 +4473,14 @@ shown.</p>
<pre><code class="language-yaml">include_profile_data_on_invite: false
</code></pre>
<hr>
<h3 id="include_profile_updates_in_sync"><a class="header" href="#include_profile_updates_in_sync"><code>include_profile_updates_in_sync</code></a></h3>
<p><em>(boolean)</em> Use this option to include updates of other users profiles in sync responses, for users who share rooms.
Requires an <a href="https://github.com/matrix-org/matrix-spec-proposals/pull/4429">MSC4429</a> compatible client, and is currently limited to legacy sync and local users only.
This feature is under development and should be used with caution on busy servers or servers which depend on <code>limit_profile_requests_to_users_who_share_rooms</code> for ensuring profile information doesnt leak across rooms. Defaults to <code>false</code>.</p>
<p>Example configuration:</p>
<pre><code class="language-yaml">include_profile_updates_in_sync: true
</code></pre>
<hr>
<h3 id="allow_public_rooms_without_auth"><a class="header" href="#allow_public_rooms_without_auth"><code>allow_public_rooms_without_auth</code></a></h3>
<p><em>(boolean)</em> If set to true, removes the need for authentication to access the servers public rooms directory through the client API, meaning that anyone can query the room directory. Defaults to <code>false</code>.</p>
<p>Example configuration:</p>
@@ -12243,9 +12263,6 @@ may change without notice.
</span></strong></p>
<p>Called when a user attempts to upload media that would exceed a
<a href="#media_upload_limits">configured media upload limit</a>.</p>
<p>This callback will only be called on workers which handle
<a href="https://spec.matrix.org/v1.15/client-server-api/#post_matrixmediav3upload">POST /_matrix/media/v3/upload</a>
requests.</p>
<p>This could be used to inform the user that they have reached a media upload limit through
some external method.</p>
<p>The arguments passed to this callback are:</p>
@@ -12826,9 +12843,14 @@ configured as stream writer for the <code>device_lists</code> stream:</p>
</code></pre>
<h5 id="the-quarantined_media_changes-stream"><a class="header" href="#the-quarantined_media_changes-stream">The <code>quarantined_media_changes</code> stream</a></h5>
<p>The <code>quarantined_media_changes</code> stream supports multiple writers. The following endpoints
can be handled by any worker, but should be routed directly to one of the workers
configured as stream writer for the <code>quarantined_media_changes</code> stream:</p>
must be routed directly to one of the workers configured as stream writer for the
<code>quarantined_media_changes</code> stream (which must also be able to run the media
repository, as these endpoints are only registered on media-capable workers):</p>
<pre><code>^/_synapse/admin/v1/quarantine_media/.*$
^/_synapse/admin/v1/room/.*/media/quarantine$
^/_synapse/admin/v1/user/.*/media/quarantine$
^/_synapse/admin/v1/media/quarantine/.*$
^/_synapse/admin/v1/media/unquarantine/.*$
</code></pre>
<h4 id="restrict-outbound-federation-traffic-to-a-specific-set-of-workers"><a class="header" href="#restrict-outbound-federation-traffic-to-a-specific-set-of-workers">Restrict outbound federation traffic to a specific set of workers</a></h4>
<p>The
@@ -18937,13 +18959,10 @@ reference only.</p>
<h3 id="building-full-schema-dumps"><a class="header" href="#building-full-schema-dumps">Building full schema dumps</a></h3>
<p>If you want to recreate these schemas, they need to be made from a database that
has had all background updates run.</p>
<p>To do so, use <code>scripts-dev/make_full_schema.sh</code>. This will produce new
<code>full.sql.postgres</code> and <code>full.sql.sqlite</code> files.</p>
<p>Ensure postgres is installed, then run:</p>
<pre><code class="language-sh">./scripts-dev/make_full_schema.sh -p postgres_username -o output_dir/
</code></pre>
<p>NB at the time of writing, this script predates the split into separate <code>state</code>/<code>main</code>
databases so will require updates to handle that correctly.</p>
<p>To do so, use the <code>make_full_schema.sh</code> script. This will produce new
<code>full.sql.postgres</code> and <code>full.sql.sqlite</code> files, after having applied ALL
schema deltas and background updates.</p>
<p>Run <code>poetry run scripts-dev/make_full_schema.sh -h</code> for usage instructions.</p>
<h2 id="delta-files"><a class="header" href="#delta-files">Delta files</a></h2>
<p>Delta files define the steps required to upgrade the database from an earlier version.
They can be written as either a file containing a series of SQL statements, or a Python
@@ -20471,11 +20490,12 @@ necessary registration and event handling.</p>
<ul>
<li>will need an <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/synapse/storage/databases/main/thread_subscriptions.py#L75">ID generator</a>
<ul>
<li>may need <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/synapse/config/workers.py#L177">writer configuration</a>, if there isnt already an obvious source of configuration for which workers should be designated as writers to your new stream.
<li>may need <a href="https://github.com/element-hq/synapse/blob/62a4bc46203880dd5034483b0e84156d03a3a8c6/synapse/config/workers.py#L184-L187">writer configuration</a>, if there isnt already an obvious source of configuration for which workers should be designated as writers to your new stream.
<ul>
<li>if adding new writer configuration, add Docker-worker configuration, which lets us configure the writer worker in Complement tests: <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/docker/configure_workers_and_start.py#L331">[1]</a>, <a href="https://github.com/element-hq/synapse/blob/4367fb2d078c52959aeca0fe6874539c53e8360d/docker/configure_workers_and_start.py#L440">[2]</a></li>
</ul>
</li>
<li>Ensure that its been correctly added to <code>synapse/replication/tcp/handler.py</code> and its <code>streams_to_replicate</code> attribute to ensure that changes are actually replicated.</li>
</ul>
</li>
</ul>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+9 -1
View File
@@ -1,6 +1,6 @@
{
"$schema": "https://element-hq.github.io/synapse/latest/schema/v1/meta.schema.json",
"$id": "https://element-hq.github.io/synapse/schema/synapse/v1.158/synapse-config.schema.json",
"$id": "https://element-hq.github.io/synapse/schema/synapse/v1.159/synapse-config.schema.json",
"type": "object",
"properties": {
"modules": {
@@ -219,6 +219,14 @@
false
]
},
"include_profile_updates_in_sync": {
"type": "boolean",
"description": "Use this option to include updates of other users' profiles in sync responses, for users who share rooms.\nRequires an [MSC4429](https://github.com/matrix-org/matrix-spec-proposals/pull/4429) compatible client, and is currently limited to legacy sync and local users only.\nThis feature is under development and should be used with caution on busy servers or servers which depend on `limit_profile_requests_to_users_who_share_rooms` for ensuring profile information doesn't leak across rooms.",
"default": false,
"examples": [
true
]
},
"allow_public_rooms_without_auth": {
"type": "boolean",
"description": "If set to true, removes the need for authentication to access the server's public rooms directory through the client API, meaning that anyone can query the room directory.",
+1 -1
View File
@@ -437,7 +437,7 @@ window.search = window.search || {};
if (yes) {
loadSearchScript(
window.path_to_searchindex_js ||
path_to_root + 'searchindex-7fd3c2af.js',
path_to_root + 'searchindex-35ac8dfb.js',
'mdbook-search-index');
search_wrap.classList.remove('hidden');
searchicon.setAttribute('aria-expanded', 'true');
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
+14 -2
View File
@@ -37,7 +37,7 @@
const path_to_root = "";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="toc-64310643.js"></script>
@@ -310,7 +310,7 @@ v1.61.0.</p>
<tr><td>v1.85.0 v1.91.2</td><td>v1.83.0</td></tr>
<tr><td>v1.92.0 v1.97.0</td><td>v1.90.0</td></tr>
<tr><td>v1.98.0 v1.105.0</td><td>v1.96.0</td></tr>
<tr><td>v1.105.1 v1.158.0</td><td>v1.100.0</td></tr>
<tr><td>v1.105.1 v1.159.0</td><td>v1.100.0</td></tr>
</tbody>
</table>
</div>
@@ -330,6 +330,18 @@ database migrations are complete. You should wait until background updates from
each upgrade are complete before moving on to the next upgrade, to avoid
stacking them up. You can monitor the currently running background updates with
<a href="usage/administration/admin_api/background_updates.html#status">the Admin API</a>.</p>
<h1 id="upgrading-to-v11590"><a class="header" href="#upgrading-to-v11590">Upgrading to v1.159.0</a></h1>
<h2 id="change-of-signing-key-expiry-date-for-the-debianubuntu-package-repository-2026"><a class="header" href="#change-of-signing-key-expiry-date-for-the-debianubuntu-package-repository-2026">Change of signing key expiry date for the Debian/Ubuntu package repository (2026)</a></h2>
<p>Administrators using the Debian/Ubuntu packages from <code>packages.matrix.org</code>,
please be aware that we have recently updated the expiry date on the repositorys GPG signing key,
but this change must be imported into your keyring.</p>
<p>If you have the <code>matrix-org-archive-keyring</code> package installed and it updates before the current key expires, this should
happen automatically.</p>
<p>Otherwise, if you see an error similar to <code>The following signatures were invalid: EXPKEYSIG F473DD4473365DE1</code>, you
will need to get a fresh copy of the keys. You can do so with:</p>
<pre><code class="language-sh">sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
</code></pre>
<p>The old version of the key will expire on <code>2027-03-15</code>.</p>
<h1 id="upgrading-to-v11580"><a class="header" href="#upgrading-to-v11580">Upgrading to v1.158.0</a></h1>
<h2 id="drop-support-for-ubuntu-2510-questing-quokka-add-support-for-ubuntu-2604-resolute-raccoon"><a class="header" href="#drop-support-for-ubuntu-2510-questing-quokka-add-support-for-ubuntu-2604-resolute-raccoon">Drop support for Ubuntu 25.10 Questing Quokka, add support for Ubuntu 26.04 Resolute Raccoon</a></h2>
<p>Ubuntu 25.10 Questing Quokka <a href="https://endoflife.date/ubuntu">is end-of-life as of
@@ -37,7 +37,7 @@
const path_to_root = "../../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
+1 -1
View File
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>
@@ -37,7 +37,7 @@
const path_to_root = "../../";
const default_light_theme = "light";
const default_dark_theme = "navy";
window.path_to_searchindex_js = "../../searchindex-7fd3c2af.js";
window.path_to_searchindex_js = "../../searchindex-35ac8dfb.js";
</script>
<!-- Start loading toc.js asap -->
<script src="../../toc-64310643.js"></script>

Some files were not shown because too many files have changed in this diff Show More