Define SQLite compatibility policy #12983
Description
We don't appear to have a defined compatibility policy for SQLite. https://matrix-org.github.io/synapse/latest/deprecation_policy.html#deprecation-policy-for-platform-dependencies doesn't mention it.
I don't think we can apply the "upstream support life cycle" for SQLite, since AFAIK the upstream SQLite developers do not provide bug fixes for anything except the most recent minor version. (Currently, that is 3.38.5, so we would require SQLite 3.38.x, which is clearly impractical.)
Typically, your SQLite version is determined by your distribution. (The sqlite3
python module is part of the stdlib, which is provided by the distribution, and cannot be upgraded via a virtualenv. Normally the _sqlite3.so
is dynamically linked against the distribution's libsqlite3
.)
Hence, "which version of SQLite do we need to support" tends to be defined by "which distributions do we aim to support", which itself doesn't have a clear answer (normally: "anything that has a sufficiently modern python".)