matrix-org / matrix-org/matrix-rust-sdk
Document supported matrix versions, and introduce compatibility modes for older ones
- Dominant language
- Rust
- Stars
- 2.3k
- Forks
- 500
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 106
Description
#### Is your feature request related to a problem? Please describe.
Matrix now has a quarterly release cadence, starting with [v1.1](https://matrix.org/blog/2021/11/09/matrix-v-1-1-release), it'd help if libraries and clients can start relying on these versions to introduce, work with, or otherwise stay compatible with versions and features per-version.
#### Describe the solution you'd like
A few action items;
- [ ] Document the matrix versions supported (https://github.com/badges/shields/issues/7245)
- [ ] Make supported matrix versions programmaticallu queryable
- [ ] Introduce compatibility probing (call `/versions`)
- [ ] Bubble error when client cannot properly communicate to server.
("Cannot communicate with server, this library version supports versions v1.1 and v1.2, but the server only supports v1.0")
- [ ] Introduce compatibility modes based off of the `/versions` response for older versions
#### Describe alternatives you've considered
#### Additional context
Contributor guide
Research direction
Start by reviewing the linked supported-matrix-versions issue (#7245) and the Matrix /versions endpoint described here. Define how supported versions are exposed, how probing and incompatible-server errors should work, and how older-version compatibility modes are selected; done means the full checklist has an agreed, testable design and implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100