Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

deprecation_policy.md 2.5 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. Deprecation Policy for Platform Dependencies
  2. ============================================
  3. Synapse has a number of platform dependencies, including Python, Rust,
  4. PostgreSQL and SQLite. This document outlines the policy towards which versions
  5. we support, and when we drop support for versions in the future.
  6. Policy
  7. ------
  8. Synapse follows the upstream support life cycles for Python and PostgreSQL,
  9. i.e. when a version reaches End of Life Synapse will withdraw support for that
  10. version in future releases.
  11. Details on the upstream support life cycles for Python and PostgreSQL are
  12. documented at [https://endoflife.date/python](https://endoflife.date/python) and
  13. [https://endoflife.date/postgresql](https://endoflife.date/postgresql).
  14. A Rust compiler is required to build Synapse from source. For any given release
  15. the minimum required version may be bumped up to a recent Rust version, and so
  16. people building from source should ensure they can fetch recent versions of Rust
  17. (e.g. by using [rustup](https://rustup.rs/)).
  18. The oldest supported version of SQLite is the version
  19. [provided](https://packages.debian.org/bullseye/libsqlite3-0) by
  20. [Debian oldstable](https://wiki.debian.org/DebianOldStable).
  21. Context
  22. -------
  23. It is important for system admins to have a clear understanding of the platform
  24. requirements of Synapse and its deprecation policies so that they can
  25. effectively plan upgrading their infrastructure ahead of time. This is
  26. especially important in contexts where upgrading the infrastructure requires
  27. auditing and approval from a security team, or where otherwise upgrading is a
  28. long process.
  29. By following the upstream support life cycles Synapse can ensure that its
  30. dependencies continue to get security patches, while not requiring system admins
  31. to constantly update their platform dependencies to the latest versions.
  32. For Rust, the situation is a bit different given that a) the Rust foundation
  33. does not generally support older Rust versions, and b) the library ecosystem
  34. generally bump their minimum support Rust versions frequently. In general, the
  35. Synapse team will try to avoid updating the dependency on Rust to the absolute
  36. latest version, but introducing a formal policy is hard given the constraints of
  37. the ecosystem.
  38. On a similar note, SQLite does not generally have a concept of "supported
  39. release"; bugfixes are published for the latest minor release only. We chose to
  40. track Debian's oldstable as this is relatively conservative, predictably updated
  41. and is consistent with the `.deb` packages released by Matrix.org.