matrix-rust-sdk
matrix-rust-sdk copied to clipboard
[EPIC] Spring cleaning
Spring cleaning
Motivation
As the seasons change and the warmth of the sun begins to illuminate our surroundings, we're often confronted with the less appealing aspects of the thaw: dust accumulating, cobwebs in every nook, neglected electronic parts under desks, and remnants of recent woodworking projects scattered about. It's a scenario many of us are familiar with. Similarly, our SDK has been the focus of relentless feature development, but now it's crucial to take a step back and see which puzzle pieces don't quite fit.
The list
This list is unordered and contains short descriptions of issues that we should tackle. Some of the items on the list are known bugs and have a separate issue already, some of them do not. If you want to work on one of the items, and there isn't a separate issue already, please open a separate issue and link it in the list.
If it's unclear what one of the items means, please just ask and we'll reword it, or open a dedicated issue for the item.
General
- [ ] Bring back git-cliff with a vengeance, it probably makes sense to test this out in vodozemac.
- [ ] Determine a release schedule with a 1-2 week feature freeze period.
- [ ] Switch to using similar_asserts, it provides much nicer diffs if an assert fails.
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/2937
- [ ] Get rid of the testing feature
Main crate
- [x] The calculated name is stored in the
m.room.name
field of theRoomInfo
- [ ] The avatar URL for DMs is calculated by the SS proxy and put into the
m.room.avatar
field of theRoomInfo
- [x] AuthenticationService duplicates the ClientBuilder API without a builder
- [ ] The
BaseRoomInfo
since some time uses something calledMinimalStateEvent
, this event isn't that minimal since it's keeping the whole content. Since it is keeping the whole content, and additionally is using Ruma types for the content, those may fail to be reserialized. - [ ] People hack around having no
MemberList
, an equivalent to theRoomList
but for members. - [ ] Deprecate the base crate and merge the
BaseClient
into the main crate andClient
. - [ ] Check that we don't handle state events in the timeline portion of the sliding sync responses.
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/1254
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/3079
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/3502
Crypto crate
- [ ] Split the gossipping support in the crypto crate into separate submodules, one for the secret send and one for the, now optional, room key forwarding support.
- [ ] Crypto crate doc improvements and tutorial.
- [ ] Clean up the mess and documentation in the
PkSigning
support. - [ ] Clean up the verification state machine.
- [ ] Move the crypto related locks from the
matrix-sdk
crate into thematrix-sdk-crypto
crate, this would allow consumers of the crypto crate. - [ ] No way to observe Device/UserIdentity changes, blocked by the multiprocess crypto crate stuff.
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/2624
- [ ] https://github.com/matrix-org/matrix-rust-sdk/issues/2448
- [x] Replace the
#[zeroize(drop)]
macro with theZeroizeOnDrop
derive. - [ ] Clean up the zeroization story around attachments.
- [ ] If the
auto_enable_cross_signing
EncryptionSettings
setting is enabled, device keys get uploaded twice.
FFI crate
- [ ] Don't return an
EventTimelineItem
inlatest_event()
, because there's no timeline involved (consider unifying with the type returned by the notification client)