From a888cbdd314a84cbb477e5b04bd27b7053f08495 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Tue, 6 Apr 2021 13:07:36 +0100 Subject: [PATCH] Add deprecation policy doc (#9723) Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-authored-by: Patrick Cloke --- INSTALL.md | 3 ++- README.rst | 11 ++++++++++- changelog.d/9723.doc | 1 + docs/deprecation_policy.md | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 changelog.d/9723.doc create mode 100644 docs/deprecation_policy.md diff --git a/INSTALL.md b/INSTALL.md index 808243719e..7b40689234 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -38,6 +38,7 @@ There are 3 steps to follow under **Installation Instructions**. - [URL previews](#url-previews) - [Troubleshooting Installation](#troubleshooting-installation) + ## Choosing your server name It is important to choose the name for your server before you install Synapse, @@ -542,7 +543,7 @@ Alternatively, you can do so from the command line. This can be done as follows: register_new_matrix_user -c homeserver.yaml http://localhost:8008 ``` -This will prompt you to add details for the new user, and will then connect to +This will prompt you to add details for the new user, and will then connect to the running Synapse to create the new user. For example: ``` New user localpart: erikj diff --git a/README.rst b/README.rst index 6a1e713590..655a2bf3be 100644 --- a/README.rst +++ b/README.rst @@ -314,6 +314,15 @@ Testing with SyTest is recommended for verifying that changes related to the Client-Server API are functioning correctly. See the `installation instructions `_ for details. + +Platform dependencies +===================== + +Synapse uses a number of platform dependencies such as Python and PostgreSQL, +and aims to follow supported upstream versions. See the +``_ document for more details. + + Troubleshooting =============== @@ -389,7 +398,7 @@ likely cause. The misbehavior can be worked around by setting People can't accept room invitations from me -------------------------------------------- -The typical failure mode here is that you send an invitation to someone +The typical failure mode here is that you send an invitation to someone to join a room or direct chat, but when they go to accept it, they get an error (typically along the lines of "Invalid signature"). They might see something like the following in their logs:: diff --git a/changelog.d/9723.doc b/changelog.d/9723.doc new file mode 100644 index 0000000000..2bfc9a4ca6 --- /dev/null +++ b/changelog.d/9723.doc @@ -0,0 +1 @@ +Add a document describing the deprecation policy for platform dependencies. diff --git a/docs/deprecation_policy.md b/docs/deprecation_policy.md new file mode 100644 index 0000000000..06ea340559 --- /dev/null +++ b/docs/deprecation_policy.md @@ -0,0 +1,33 @@ +Deprecation Policy for Platform Dependencies +============================================ + +Synapse has a number of platform dependencies, including Python and PostgreSQL. +This document outlines the policy towards which versions we support, and when we +drop support for versions in the future. + + +Policy +------ + +Synapse follows the upstream support life cycles for Python and PostgreSQL, +i.e. when a version reaches End of Life Synapse will withdraw support for that +version in future releases. + +Details on the upstream support life cycles for Python and PostgreSQL are +documented at https://endoflife.date/python and +https://endoflife.date/postgresql. + + +Context +------- + +It is important for system admins to have a clear understanding of the platform +requirements of Synapse and its deprecation policies so that they can +effectively plan upgrading their infrastructure ahead of time. This is +especially important in contexts where upgrading the infrastructure requires +auditing and approval from a security team, or where otherwise upgrading is a +long process. + +By following the upstream support life cycles Synapse can ensure that its +dependencies continue to get security patches, while not requiring system admins +to constantly update their platform dependencies to the latest versions.