matrix-rust-sdk icon indicating copy to clipboard operation
matrix-rust-sdk copied to clipboard

[EPIC] Spring cleaning

Open poljar opened this issue 3 months ago • 3 comments

Spring cleaning

image

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 the RoomInfo
  • [ ] The avatar URL for DMs is calculated by the SS proxy and put into the m.room.avatar field of the RoomInfo
  • [x] AuthenticationService duplicates the ClientBuilder API without a builder
  • [ ] The BaseRoomInfo since some time uses something called MinimalStateEvent, 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 the RoomList but for members.
  • [ ] Deprecate the base crate and merge the BaseClient into the main crate and Client.
  • [ ] 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 the matrix-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 the ZeroizeOnDrop 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 in latest_event(), because there's no timeline involved (consider unifying with the type returned by the notification client)

poljar avatar Mar 24 '24 16:03 poljar