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 2 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
11 changes: 10 additions & 1 deletion INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
There are 3 steps to follow under **Installation Instructions**.
Copy link
Member

Choose a reason for hiding this comment

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

this is item 4... :/

I'm hesitant to put this upfront in the installation instructions: there's a lot for new users to understand here, and I'm not entirely sure it belongs here

Copy link
Member

Choose a reason for hiding this comment

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

maybe link it from the README instead?

Copy link
Member Author

Choose a reason for hiding this comment

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

Fair, its a bit of a tricky balance. Maybe we should point to the doc whenever we mention min requirements?


- [Installation Instructions](#installation-instructions)
- [Platform Dependencies](#choosing-your-server-name)
- [Choosing your server name](#choosing-your-server-name)
- [Installing Synapse](#installing-synapse)
- [Installing from source](#installing-from-source)
Expand Down Expand Up @@ -38,6 +39,14 @@ There are 3 steps to follow under **Installation Instructions**.
- [URL previews](#url-previews)
- [Troubleshooting Installation](#troubleshooting-installation)


## Platform dependencies

Synapse uses a number of platform dependencies such as Python and PostgreSQL,
and aims to support versions supported upstream. See the
[deprecation policy](docs/deprecation_policy.md) document for more details.


## Choosing your server name

It is important to choose the name for your server before you install Synapse,
Expand Down Expand Up @@ -542,7 +551,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
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.

37 changes: 37 additions & 0 deletions docs/deprecation_policy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
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

The team will not intentionally break compatibility for at least one month after
an EOL date, but does explicitly reserve the right to do so should security or
other concerns arise in an unmaintained version of a dependency.
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 actually want to box ourselves in to this, or should we drop when upstream drops?

Copy link
Member Author

Choose a reason for hiding this comment

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

I'd me more than happy to drop this, it seems a bit pointless.

Copy link
Contributor

Choose a reason for hiding this comment

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

Make it so


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 deprecation policies so that they can effectively
erikjohnston marked this conversation as resolved.
Show resolved Hide resolved
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.