Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Add deprecation policy doc #9723

Merged
merged 7 commits into from
Apr 6, 2021
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down
11 changes: 10 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
<https://github.com/matrix-org/sytest#installing>`_ 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
`<docs/deprecation_policy.md>`_ document for more details.


Troubleshooting
===============

Expand Down Expand Up @@ -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::
Expand Down
1 change: 1 addition & 0 deletions changelog.d/9723.doc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add a document describing the deprecation policy for platform dependencies.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just:

Document the deprecation policy for platform dependencies.

33 changes: 33 additions & 0 deletions docs/deprecation_policy.md
Original file line number Diff line number Diff line change
@@ -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 how we
drop support for versions in the future.
erikjohnston marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This document outlines the policy towards which versions we support, and how we
drop support for versions in the future.
This document outlines the policy of which versions of specific dependencies
we support, and how we drop support for old versions in the future.



Policy
------

For Python and PostgreSQL Synapse will follow the upstream support life cycles,
i.e. when a version reaches End of Life Synapse will withdraw support for that
version in future releases.
erikjohnston marked this conversation as resolved.
Show resolved Hide resolved

Details on the upstream support life cycles for Python and PostgreSQL are
documented at https://endoflife.date/python and
https://endoflife.date/postgresql.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we not want to comment on the policy for any other dependencies?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have other deps we care about in this regard?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not, but it may be nice to explicitly say that we don't.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can always add more in the future. 🤷


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.