Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase #3

Open
wants to merge 990 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
990 commits
Select commit Hold shift + click to select a range
ed1f2e2
refactor(ui): `ObservableItemsTransactionEntry::remove` is no longer …
Hywan Dec 9, 2024
e32ea16
doc(ui): Fix typos.
Hywan Dec 9, 2024
72f1bd6
doc(ui): Document `ObservableItems::items` more and `TimelineItemKind`.
Hywan Dec 9, 2024
13e26b1
doc(ui): Rephrase the documentation of `ObservableItems::all_remote_e…
Hywan Dec 9, 2024
0d17ea3
refactor(ui): Replace a panic by a sensible value + `error!`.
Hywan Dec 9, 2024
0f2ada0
refactor(ui): Rename `ObservableItems::clone` to `clone_items`.
Hywan Dec 9, 2024
6b56c9e
doc(ui): Explain why `Deref` is fine, but `DerefMut` is not.
Hywan Dec 9, 2024
9a08975
doc(ui): Explain why `ObservableItemsEntries` does not implement `Ite…
Hywan Dec 9, 2024
3526761
doc(ui): Unfold a `Self` in the doc.
Hywan Dec 9, 2024
ee94c86
doc(ui): Fix a typo.
Hywan Dec 9, 2024
cf178d6
doc(ui): Fix typos.
Hywan Dec 9, 2024
cf02e69
feat(event cache store): add a method to clear all rooms' linked chunks
bnjbvr Dec 9, 2024
0783cf8
feat(ffi): add a feature flag to enable persistent storage for the ev…
bnjbvr Dec 9, 2024
4ee96aa
feat(event cache): add a way to clear a single room's persistent storage
bnjbvr Dec 9, 2024
32e2070
refactor(ffi): use a bool instead of an option to make the API less a…
bnjbvr Dec 10, 2024
a04f918
refactor(ui): store UTD info within `PendingUtdReport`
richvdh Dec 1, 2024
c501a39
refactor(sdk): Add `Encryption::device_creation_timestamp`
richvdh Dec 1, 2024
e8b3949
feat(ui): Add `UnableToDecryptInfo::event_local_age_millis`
richvdh Dec 1, 2024
1e72131
feat(ui) Add `UnableToDecryptInfo::user_trusts_own_identity`
richvdh Dec 1, 2024
1d72d27
feat(ui): Add more properties to `UnableToDecryptInfo`
richvdh Dec 1, 2024
935e4df
feat(ui): make the timeline date separators configurable; have them a…
stefanceriu Dec 9, 2024
634edf2
chore(ui): rename all timeline "day dividers" to "date deviders" foll…
stefanceriu Dec 9, 2024
8f06458
chore(ui): rename the `day_dividers` module to `date_dividers`
stefanceriu Dec 9, 2024
d5e7a9c
chore(ui): rename date divider `is_same_date_as` to `is_same_date_div…
stefanceriu Dec 10, 2024
723d797
fix(send_queue): Use MediaFormat::File when caching attachment thumbnail
zecakeh Dec 10, 2024
7295f29
doc(send_queue): Document media caching of send_attachment
zecakeh Dec 10, 2024
a562f73
doc(timeline): Document media caching of send_attachment
zecakeh Dec 10, 2024
eeb14f6
refactor!(event cache store): have the event cache store return raw l…
bnjbvr Dec 9, 2024
832fedb
feat(event cache): display raw linked chunks from storage when they f…
bnjbvr Dec 9, 2024
2018455
feat(event cache): start with an empty linked chunk if reloading failed
bnjbvr Dec 9, 2024
4402f59
refactor(event cache): spawn a task to handle updates to the event ca…
bnjbvr Dec 10, 2024
925d10f
task(event cache store): include the number of added items in one log
bnjbvr Dec 10, 2024
d42c449
refactor(event cache): only store a prev-batch token if the timeline …
bnjbvr Dec 10, 2024
0264e49
task(event cache): rename a few things
bnjbvr Dec 11, 2024
fda374e
feat(ffi): Add new properties to `UnableToDecryptInfo`
richvdh Dec 11, 2024
3356e0c
refactor(state store): use a single lock for all memory store accesses
bnjbvr Dec 11, 2024
780a463
chore(ffi): avoid hardcoding clang version
richvdh Dec 11, 2024
f7f58df
feat(ui): Add the MemberHints state event type to the required state
poljar Dec 12, 2024
7ae31d0
fix(base): Subtract the number of service members from the number joi…
poljar Dec 12, 2024
54bd1d7
refactor(base): Move the joined member count logic into its respectiv…
poljar Dec 12, 2024
150d9e4
fix(event cache store): always use immediate mode when handling linke…
bnjbvr Dec 12, 2024
6dcefe4
feat(utds): Provide the reason why an event was an expected UTD
andybalaam Dec 6, 2024
2b39476
feat(crypto): Support storing the dehydrated device pickle key
BillCarsonFr Dec 13, 2024
789bd31
Merge pull request #4383 from matrix-org/valere/cache_dehydration_pic…
BillCarsonFr Dec 13, 2024
a573b65
chore(sdk): Remove image-rayon cargo feature check from build.rs
zecakeh Dec 15, 2024
b654247
task(event cache): make the code more concise in back-pagination
bnjbvr Dec 11, 2024
a052a79
fix(event cache): store the gap *before* events, after back-paginating
bnjbvr Dec 11, 2024
ed34719
task(event cache): simplify handling a back-pagination result
bnjbvr Dec 11, 2024
c197808
task(event cache): get rid of one level of indent
bnjbvr Dec 11, 2024
5a25e65
test(event cache): use the MatrixMockServer
bnjbvr Dec 11, 2024
8d2e672
feat!: Upgrade Ruma to 0.12.0
zecakeh Dec 16, 2024
2703f7f
crypto: extra logging in `OtherUserIdentity`
richvdh Dec 16, 2024
9a899c1
feat(room): add 'seen request to join ids' to the stores
jmartinesp Dec 10, 2024
780c264
feat(room): add `JoinRequest` abstraction
jmartinesp Dec 10, 2024
93ebae6
feat(room): allow subscribing to requests to join a room
jmartinesp Dec 10, 2024
3387695
feat(ffi): add bindings for subscribing to the join requests
jmartinesp Dec 10, 2024
05d46e6
Rename `JoinRequest` in the SDK crates to `KnockRequest`, make `Room:…
jmartinesp Dec 13, 2024
47044b1
chore(deps): bump crate-ci/typos from 1.28.2 to 1.28.3
dependabot[bot] Dec 16, 2024
f6cb818
task(event cache): limit the display of event ids to 8 chars in the r…
bnjbvr Dec 12, 2024
34d15a4
feat(event cache): propose a debug representation for the linked chun…
bnjbvr Dec 12, 2024
cae7e43
feat(multiverse): add linked chunk debug screen in multiverse
bnjbvr Dec 12, 2024
34ea42a
feat(ffi): expose the linked chunk debug string function at the FFI l…
bnjbvr Dec 16, 2024
866b5fe
feat(room): Separate `RoomState::Banned` from `RoomState::Left`.
jmartinesp Dec 13, 2024
95582a6
feat(crypto-bindings): Save/Load dehydrated pickle key
BillCarsonFr Dec 17, 2024
512a2d2
Merge pull request #4399 from matrix-org/valere/ffi_save_store_dehydr…
BillCarsonFr Dec 17, 2024
177ec12
feat(crypto)!: Don't ignore the error if the room_keys_received strea…
poljar Nov 28, 2024
f17f4e2
feat: Add a stream to listen to room keys being inserted to the store
poljar Nov 28, 2024
bd15f4e
feat(timeline): Listen to the room keys stream to retry decryptions
poljar Nov 28, 2024
daeffc0
feat: Derive PartialEq and Eq for RoomListLoadingState
poljar Dec 17, 2024
0ca35d6
test: Test that room keys received by notification clients trigger re…
poljar Dec 17, 2024
5d8ad3a
fix(linked chunk): in LinkedChunk::ritems_from, skip as long as we're…
bnjbvr Dec 17, 2024
373709f
feat(event cache): don't replace a gap chunk by an empty items chunks
bnjbvr Dec 16, 2024
5f3b56a
task(crypto): Accept old PreviouslyVerified value of SenderData when …
andybalaam Dec 17, 2024
db39c6b
task(crypto): Accept old PreviouslyVerified value of VerificationLeve…
andybalaam Dec 18, 2024
612ba6f
task(crypto): Accept old PreviouslyVerified value of ShieldStateCode …
andybalaam Dec 18, 2024
b18e7d7
fix(crypto): Fix error when reading VerifiedStateOrBool with old Prev…
andybalaam Dec 18, 2024
0394761
Merge branch 'release-for-crypto-wasm-11'
andybalaam Dec 18, 2024
bb70229
chore: Make Clippy happy.
Hywan Dec 18, 2024
ff7077b
doc(crypto): Add changelog entry for #4424
andybalaam Dec 18, 2024
bb57311
chore: Release matrix-sdk version 0.9.0
poljar Dec 18, 2024
bc582ae
doc(common): Update documentation of `AsVector`.
Hywan Dec 18, 2024
de56883
fix(linked chunk): fix order handling of initial chunks in `UpdateToV…
bnjbvr Dec 18, 2024
b181002
test(room): add test to verify how `Room::observe_events` will behave…
jmartinesp Dec 18, 2024
f18e0b1
Replace PathBuf/Utf8PathBuf with Path/Utf8Path when ownership not needed
Integral-Tech Dec 19, 2024
9975365
feat(room): add `Room::room_member_updates_sender`
jmartinesp Dec 18, 2024
5d0fed5
feat(room): add helper methods to `BaseRoom` to get and write the cur…
jmartinesp Dec 18, 2024
4a88e7c
feat(room): add `BaseRoom::remove_outdated_seen_knock_requests_ids` fn
jmartinesp Dec 18, 2024
616c193
feat(room): create a cleanup task in `Room::subscribe_to_knock_requests`
jmartinesp Dec 18, 2024
38cc9fb
test(room): Improve `Room::room_member_updates_sender` tests
jmartinesp Dec 19, 2024
0d546dc
refactor(event cache): move `PaginationToken` from the pagination to …
bnjbvr Dec 16, 2024
a20ad72
feat(event cache): don't restart back-pagination from the end if we h…
bnjbvr Dec 16, 2024
d89194f
refactor: display source pagination error in `PaginatorError::SdkError`
bnjbvr Dec 16, 2024
3f07120
refactor(event cache): add a way to know if we deduplicated all event…
bnjbvr Dec 17, 2024
bcb9a86
feat(event cache): don't add a previous gap if all events were dedupl…
bnjbvr Dec 17, 2024
60f521c
feat(event cache): don't add a previous gap if all events were dedupl…
bnjbvr Dec 17, 2024
d00ff8f
refactor(event cache): remove duplicated method `RoomEventCacheState:…
bnjbvr Dec 18, 2024
fe9354a
test: make `test_room_keys_received_on_notification_client_trigger_re…
bnjbvr Dec 18, 2024
bc8c4f5
fix(event cache): don't touch the linked chunk if an operation wouldn…
bnjbvr Dec 18, 2024
e4712be
task(crypto): Support receiving stable identifier for MSC4147
andybalaam Dec 16, 2024
f2942db
refactor: avoid use of `async_trait` for `RoomIdentityProvider`
bnjbvr Dec 19, 2024
3b31bbe
test(snapshot): Use snapshot testing in sdk-common
BillCarsonFr Dec 19, 2024
519f281
Merge pull request #4428 from matrix-org/valere/insta_rs_snapshot_tes…
BillCarsonFr Dec 19, 2024
5f5e979
refactor!: Put the RequestConfig argument of Client::send() into a bu…
bnjbvr Dec 19, 2024
f8a9d12
Use a type alias to allow bindings to take advantage of custom types
Dec 12, 2024
36427b0
fix(ui): Consider banned rooms as rooms we left in the non-left rooms…
poljar Dec 20, 2024
be89e3a
feat(ui): Add `TimelineBuilder::with_vectordiffs_as_inputs`.
Hywan Dec 13, 2024
1c2fb1a
refactor(sdk): Add `RoomEventCacheUpdate::UpdateTimelineEvents`.
Hywan Dec 9, 2024
e280733
feat(ui): Add blank `handle_remote_events_with_diffs`.
Hywan Dec 9, 2024
c1f8232
task(ui): Support `VectorDiff::Append` in `TimelineStateTransaction::…
Hywan Dec 9, 2024
23c09b2
task(ui): Support `VectorDiff::PushFront` in `TimelineStateTransactio…
Hywan Dec 9, 2024
3f17325
task(ui): Support `VectorDiff::PushBack` in `TimelineStateTransaction…
Hywan Dec 9, 2024
eca3749
task(ui): Support `VectorDiff::Clear` in `TimelineStateTransaction::h…
Hywan Dec 9, 2024
02ab578
task(ui): Add `ObservableItems::insert_remote_event`.
Hywan Dec 9, 2024
b25fd83
task(ui): Add `AllRemoteEvents::range`.
Hywan Dec 10, 2024
409fccb
task(ui): Support `VectorDiff::Insert` in `TimelineStateTransaction::…
Hywan Dec 10, 2024
2358e4c
task(ui): Support `VectorDiff::Remove,` in `TimelineStateTransaction:…
Hywan Dec 10, 2024
c1ff5ff
refactor(ui): Deduplicate remote events conditionnally.
Hywan Dec 13, 2024
39afb53
task(ui): `DayDivider` has been renamed `DateDivider`.
Hywan Dec 13, 2024
38e35b9
test(ui): Increase the `recursion_limit`.
Hywan Dec 13, 2024
054f5e2
fix(common): Use a trick to avoid hitting the `recursion_limit` too q…
Hywan Dec 18, 2024
d8dd72f
refactor(ui): Deduplicate timeline items conditionnally.
Hywan Dec 16, 2024
f1842ba
refactor(ui): `Timeline` receives pagination events as `VectorDiff`s!
Hywan Dec 17, 2024
51c76a1
chore(ui): Make Clippy happy.
Hywan Dec 18, 2024
c413225
feat(ui): Enable `TimelineSettings::vectordiffs_as_inputs` if event c…
Hywan Dec 20, 2024
1abb2ef
refactor(sdk): Rename two variables.
Hywan Dec 20, 2024
f4b50db
test: Increase timeout for codecoverage.
Hywan Dec 20, 2024
667a8e6
chore: Fix a typo in the changelog
poljar Dec 20, 2024
adb4428
test(crypto): Add some basic snapshot testing in crypto crate
BillCarsonFr Dec 20, 2024
c503583
refactor!(sdk): Set thumbnail in `AttachmentConfig` with builder meth…
zecakeh Dec 22, 2024
1480fad
refactor(event cache): make it clearer that vecdiff updates must be h…
bnjbvr Jan 6, 2025
70fb789
feat!(timeline): Allow to send attachments from bytes (#4451)
zecakeh Jan 6, 2025
8e75a94
Use Instant from web-time in more places (via ruma re-export)
jplatte Jan 6, 2025
412fcab
test: Await the device creation in the notification client redecrypti…
poljar Jan 7, 2025
b7b88f5
feat!(send queue): make unrecoverable errors stop the sending queue
bnjbvr Jan 6, 2025
bcad0a3
test(timeline): rewrite a test to use the MatrixMockServer instead
bnjbvr Jan 6, 2025
5110aa6
doc(base): update lying doc comment of `compute_display_name`
bnjbvr Jan 6, 2025
618e472
feat!(base): reintroduce `Room::display_name`
bnjbvr Jan 7, 2025
8205da8
feat(send queue): allow setting intentional mentions in media caption…
bnjbvr Jan 6, 2025
2ef14de
refactor(event cache): a few `AllEventsCache` refactorings (#4471)
bnjbvr Jan 7, 2025
c5a9a1e
Clean up some imports
jplatte Jan 7, 2025
47445b1
chore: Upgrade Ruma
zecakeh Jan 8, 2025
47c24b9
fix(sdk): Fix test now that Ruma is fixed
zecakeh Jan 8, 2025
aca8c8b
chore: remove some `allow(dead_code)` annotations and associated dead…
bnjbvr Jan 8, 2025
3f977b7
feat(timeline): allow sending mentions along with media
frebib Jan 8, 2025
55e25a3
feat(sdk,ui): Add `EventsOrigin::Pagination`.
Hywan Jan 8, 2025
7ff1170
chore: Re-indent.
Hywan Jan 7, 2025
d649606
refactor(sdk): Rename `RoomEvents::filter_duplicated_events`.
Hywan Jan 6, 2025
5ff556f
fix(crypto): Serialize sender data msk in base64 instead of numbers
BillCarsonFr Dec 20, 2024
9e69b63
Merge pull request #4450 from matrix-org/valere/serialize_known_sende…
BillCarsonFr Jan 8, 2025
35a0327
chore(ffi): rename `url` to `filename` in the FFI methods for sending…
bnjbvr Jan 8, 2025
ed17860
chore!(ffi): group parameters to upload in `UploadParameters`
bnjbvr Jan 8, 2025
45c3752
refactor!(ffi): common out more code in `send_attachment` and disting…
bnjbvr Jan 8, 2025
dc2775e
chore!(ffi): rename `thumbnail_url` to `thumbnail_path`
bnjbvr Jan 8, 2025
34e9934
fix(ffi): ensure the log level for `panic` is always set (#4485)
bnjbvr Jan 8, 2025
2514333
chore(test): Remove a warning.
Hywan Jan 6, 2025
4e0a6d1
chore(sdk): Merge imports for the sake of clarity.
Hywan Jan 6, 2025
b8d0384
refactor: Remove `RoomEventCacheUpdate::AddTimelineEvents`.
Hywan Jan 6, 2025
14d0cc1
refactor(ui): Remove `TimelineSettings::vectordiffs_as_inputs`.
Hywan Jan 7, 2025
e19bdbf
test(ui): Adjust tests according to the new `Timeline` behaviour.
Hywan Jan 7, 2025
891583b
refactor: Add Mutex and RwLock wrappers that panic on poison
poljar Jan 8, 2025
46dc2a9
refactor: Use the simplified locks in the failures cache
poljar Jan 8, 2025
62567ca
refactor(crypto): Use the simplified locks across the crypto crate
poljar Jan 8, 2025
61dd560
feat: Remove the `experimental-sliding-sync` feature flag.
Hywan Jan 8, 2025
6b2233f
fix(sdk): Use `spawn` from `matrix_sdk_common` to make it compatible …
Hywan Jan 8, 2025
5675ac7
refactor(sdk): Remove `SlidingSyncRoomInner::client`.
Hywan Jan 8, 2025
df4b696
chore: Make Clippy and `wasm-pack` happy.
Hywan Jan 8, 2025
d6c6402
refactor(sdk): Un-cfg Client::rooms_stream
jplatte Jan 8, 2025
eac5a5e
refactor(ui): Fix unused import on wasm
jplatte Jan 8, 2025
b837865
refactor(ui): Inherit Send / Sync bounds on RoomDataProvider from sup…
jplatte Jan 8, 2025
2a954e3
fix(base): Correctly name the LeftRoomUpdate in its debug implementat…
poljar Jan 9, 2025
ddf4d57
fix(sdk): Ensure a gap has been inserted before removing it.
Hywan Jan 8, 2025
b926c42
refactor(event cache): use a more fine-grained check for the gap removal
bnjbvr Jan 9, 2025
9e97ed3
test(event cache): add a regression test for not deleting a gap that …
bnjbvr Jan 9, 2025
fb54e86
chore(event cache): add more logs when the event cache tasks are shut…
bnjbvr Jan 7, 2025
0915eee
chore(event cache): simplify and add logs to `RoomEventCacheState::pr…
bnjbvr Jan 7, 2025
8e0ee47
refactor(event cache): eliminate intermediate function `append_events…
bnjbvr Jan 7, 2025
c4bfbd0
feat(ffi): move tracing setup from the final client to the ffi layer …
stefanceriu Jan 9, 2025
6e0f258
chore(sdk): move send_queue.rs to send_queue/mod.rs
bnjbvr Jan 9, 2025
5f5aa81
chore(ui): move date and timestamp functionality to `timeline/date_di…
bnjbvr Jan 9, 2025
c4a86a3
chore(ui): move timeline/read_receipts to timeline/controller/read_re…
bnjbvr Jan 9, 2025
692aceb
chore(ui): move `RelativePosition` in timeline/controller
bnjbvr Jan 9, 2025
0cae54c
chore(ui): rename "utils" to "algorithms"
bnjbvr Jan 9, 2025
6c053a8
chore: Fix new nightly warnings
jplatte Jan 9, 2025
ff5dcbf
refactor(common): Warn if LinkedChunk::updates() return value is not …
jplatte Jan 9, 2025
4043f9b
refactor(sdk): Un-cfg SendAttachment::with_send_progress_observable
jplatte Jan 9, 2025
526b5c4
refactor(ui): Relax some Send constraints on WASM
jplatte Jan 9, 2025
7466f77
refactor(ui): Replace tokio::spawn with matrix_sdk::executor::spawn
jplatte Jan 9, 2025
7ec384c
fix: Fix incorrect debug_struct calls in several places
andybalaam Jan 8, 2025
cb72d43
chore: Upgrade Ruma
zecakeh Jan 10, 2025
e4b269e
fix: Implement visit_bytes for the Ed25519PublicKey deserialization
poljar Jan 10, 2025
1dd2b2c
test: Test the KnownSenderData migration with optimised [u8] serializ…
BillCarsonFr Jan 10, 2025
def4bbb
fix(store-encryption): Remove an unwrap that snuck in (#4506)
poljar Jan 10, 2025
b349158
feat(sdk): Allow to set and check whether an image is animated
zecakeh Jan 10, 2025
5941495
feat(sdk): Implement Default for AttachmentInfo types
zecakeh Jan 10, 2025
a79d409
task(bindings): Expose `withdraw_verification` in `UserIdentity`
BillCarsonFr Jan 8, 2025
4ebf505
chore: Remove our ancient upgrade guide
poljar Jan 10, 2025
d6c2a63
refactor: Use the simplified locks in the encryption tasks
poljar Jan 10, 2025
e37ad11
refactor(ui): Use RPITIT / AFIT for RoomDataProvider
jplatte Jan 9, 2025
f173aea
feat(sdk): Expose Client::server_versions publicly
zecakeh Jan 12, 2025
ca9eb70
Add PR link to changelog
zecakeh Jan 12, 2025
c9a4900
chore(xtask): tweak the TWiM report to include only merged PRs, not c…
bnjbvr Jan 13, 2025
f61ad19
feat(room): Add `RoomPrivacySettings` helper struct.
jmartinesp Jan 9, 2025
4fbe79a
feat(room): Add `fn RoomPrivacySettings::update_room_history_visibili…
jmartinesp Jan 9, 2025
49985e5
feat(room): Add `fn RoomPrivacySettings::update_join_rule`.
jmartinesp Jan 9, 2025
587545a
feat(room): Add `fn RoomPrivacySettings::get_room_visibility`.
jmartinesp Jan 9, 2025
d807d71
feat(room): Add `fn RoomPrivacySettings::update_room_visibility`.
jmartinesp Jan 9, 2025
d6a74d3
feat(room): Add `fn RoomPrivacySettings::publish_room_alias_in_room_d…
jmartinesp Jan 9, 2025
5887027
feat(room): Add `fn RoomPrivacySettings::remove_room_alias_in_room_di…
jmartinesp Jan 9, 2025
d9c1188
test(room): Add integration tests for publishing and removing room al…
jmartinesp Jan 9, 2025
5548f38
feat(ffi): Add FFI bindings for the new room privacy settings feature.
jmartinesp Jan 9, 2025
5af326b
fix(event cache): keep the previous-batch token when we haven't enabl…
bnjbvr Jan 9, 2025
c456356
tests: add a helper to create a room /messages response
bnjbvr Jan 13, 2025
e6dc109
tests: add helper to delay a room /messages response
bnjbvr Jan 13, 2025
9514388
tests: rename `RoomMessagesResponse` to `RoomMessagesResponseTemplate`
bnjbvr Jan 13, 2025
279c78b
chore!(encryption): rename `are_we_the_last_man_standing` to `is_last…
bnjbvr Jan 13, 2025
67d2cb7
chore: Fix a couple of typos
poljar Jan 13, 2025
7f04a9a
fix(memory chunk): only remove a given room's events when clearing a roo
bnjbvr Jan 13, 2025
e647ff9
feat(event cache store): allow removing an entire room at once
bnjbvr Jan 13, 2025
a8ca77f
feat(base): remove cached events when forgetting about a room
bnjbvr Jan 13, 2025
9641aa9
feat(send queue): Add an enqueued time to to-be-sent events (#4385)
zzorba Jan 13, 2025
ee32b1f
tests: Add an encrypted snapshot of a SQLite db for regression tests
BillCarsonFr Jan 13, 2025
c60bfb8
chore: Add some missing links to the changelog
poljar Jan 13, 2025
e9487b0
fix(timeline): Add UTDs to the timeline conditionally
jmartinesp Jan 13, 2025
b9014a5
test: keep a single sync in `test_delayed_invite_response_and_sent_me…
bnjbvr Jan 14, 2025
e015a53
feat(room): Add `fn Room::own_membership_details`
jmartinesp Jan 10, 2025
bd5d7aa
feat(ffi): Add FFI bindings for `fn Room::own_membership_details`.
jmartinesp Jan 10, 2025
c969f90
Merge pull request #4526 from matrix-org/valere/test_encrypted_crypto…
BillCarsonFr Jan 15, 2025
fedf7d2
test: add some snapshot tests before we change anything
richvdh Jan 7, 2025
c9bac4f
test: snapshot the generated object rather than the JSON
richvdh Jan 14, 2025
b6be4d5
test: remove redundant sig on master key
richvdh Jan 8, 2025
5fadde5
test: implement test user data builder type
richvdh Jan 8, 2025
25ea5fd
test: use builder for some more test data
richvdh Jan 8, 2025
49748db
test: factor out common parts of `dan_keys_query_response{_loggedout}`
richvdh Jan 7, 2025
47f8b32
test: give Dan new keys
richvdh Jan 8, 2025
3a3cc54
test: generate dan's data dynamically
richvdh Jan 8, 2025
fe3cc09
test: add examples for the new builder
richvdh Jan 14, 2025
8bd9431
fix(tests): Fix a flaky test by marking a room's members as synced.
andybalaam Jan 15, 2025
de7397a
feat(event cache): handle redacted redactions in the `AllEventsCache`
bnjbvr Jan 15, 2025
560e582
test: get rid of `mock_redaction` and replace it with the holy Matrix…
bnjbvr Jan 16, 2025
b3a789a
test: get rid of the `synced_client` helper
bnjbvr Jan 16, 2025
6a0333e
test: replace Option::default() by None
bnjbvr Jan 16, 2025
3dd81fb
test: rename snapshots not to contain `:`
richvdh Jan 16, 2025
425e48a
feat(linked chunk): add `LinkedChunk::replace_item_at` to replace an …
bnjbvr Jan 15, 2025
6f780a4
test(timeline): use assert_let_timeout more in the timeline's code
bnjbvr Jan 15, 2025
5038309
feat(event cache): redact events in the database whenever they're red…
bnjbvr Jan 15, 2025
7fa06cb
refactor(timeline): rename `TimelineItemPosition::UpdateDecrypted` to…
bnjbvr Jan 15, 2025
c24770a
test: add support for dehydrated devices to `KeyQueryResponseTemplate…
richvdh Jan 16, 2025
2cb6ee8
chore(ffi): silence useless logs coming out of the ffi crate
stefanceriu Jan 16, 2025
f231c74
test: simplify examples for `KeyQueryResponseTemplate`
richvdh Jan 16, 2025
2bd8c56
crypto: add some more documentation to `DeviceKeys`
richvdh Jan 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 0 additions & 48 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,57 +1,9 @@
# Pass the rustflags specified to host dependencies (build scripts, proc-macros)
# when a `--target` is passed to Cargo. Historically this was not the case, and
# because of that, cross-compilation would not set the rustflags configured
# below in `target.'cfg(...)'` for them, resulting in cache invalidation.
#
# Since this is an unstable feature (enabled at the bottom of the file), this
# setting is unfortunately ignored on stable toolchains, but it's still better
# to have it apply on nightly than using the old behavior for all toolchains.
target-applies-to-host = false

[alias]
xtask = "run --package xtask --"
uniffi-bindgen = "run --package uniffi-bindgen --"

[doc.extern-map.registries]
crates-io = "https://docs.rs/"

# Exclude tarpaulin, android and ios from extra lints since on stable, without
# the nightly-only target-applies-to-host setting at the top, cross compilation
# and otherwise changing cfg's can be very bad for caching. These should never
# be the default either and don't have much target-specific code that would
# benefit from the extra lints.
[target.'cfg(not(any(tarpaulin, target_os = "android", target_os = "ios")))']
rustflags = [
"-Wrust_2018_idioms",
"-Wsemicolon_in_expressions_from_macros",
"-Wunused_extern_crates",
"-Wunused_import_braces",
"-Wunused_qualifications",
"-Wtrivial_casts",
"-Wtrivial_numeric_casts",
"-Wclippy::cloned_instead_of_copied",
"-Wclippy::dbg_macro",
"-Wclippy::inefficient_to_string",
"-Wclippy::macro_use_imports",
"-Wclippy::mut_mut",
"-Wclippy::needless_borrow",
"-Wclippy::nonstandard_macro_braces",
"-Wclippy::str_to_string",
"-Wclippy::todo",
"-Wclippy::unused_async",
"-Wclippy::redundant_clone",
]

[target.'cfg(target_arch = "wasm32")']
rustflags = [
# We have some types that are !Send and/or !Sync only on wasm, it would be
# slightly more efficient, but also pretty annoying, to wrap them in Rc
# where we would use Arc on other platforms.
"-Aclippy::arc_with_non_send_sync",
]

# activate the target-applies-to-host feature.
# Required for `target-applies-to-host` at the top to take effect.
[unstable]
rustdoc-map = true
target-applies-to-host = true
64 changes: 64 additions & 0 deletions .deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# https://embarkstudios.github.io/cargo-deny/checks/cfg.html
[graph]
all-features = true
exclude = [
# dev only dependency
"criterion"
]

[advisories]
version = 2
ignore = [
{ id = "RUSTSEC-2023-0071", reason = "We are not using RSA directly, nor do we depend on the RSA crate directly" },
{ id = "RUSTSEC-2024-0384", reason = "Unmaintained backoff crate, not critical. We'll migrate soon." },
]

[licenses]
version = 2
allow = [
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"BSL-1.0",
"ISC",
"MIT",
"MPL-2.0",
"Unicode-3.0",
"Zlib",
]
exceptions = [
{ allow = ["Unicode-DFS-2016"], crate = "unicode-ident" },
{ allow = ["CDDL-1.0"], crate = "inferno" },
{ allow = ["LicenseRef-ring"], crate = "ring" },
]

[[licenses.clarify]]
name = "ring"
expression = "LicenseRef-ring"
license-files = [
{ path = "LICENSE", hash = 0xbd0eed23 },
]

[bans]
# We should disallow this, but it's currently a PITA.
multiple-versions = "allow"
wildcards = "allow"

[sources]
unknown-registry = "deny"
unknown-git = "deny"

allow-git = [
# A patch override for the bindings fixing a bug for Android before upstream
# releases a new version.
"https://github.com/element-hq/tracing.git",
# Sam as for the tracing dependency.
"https://github.com/element-hq/paranoid-android.git",
# Well, it's Ruma.
"https://github.com/ruma/ruma",
# A patch override for the bindings: https://github.com/rodrimati1992/const_panic/pull/10
"https://github.com/jplatte/const_panic",
# A patch override for the bindings: https://github.com/smol-rs/async-compat/pull/22
"https://github.com/jplatte/async-compat",
]
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"
13 changes: 0 additions & 13 deletions .github/workflows/audit.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-06-25
toolchain: nightly-2024-11-26
components: rustfmt

- name: Run Benchmarks
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/bindings_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ jobs:
test-apple:
name: matrix-rust-components-swift
needs: xtask
runs-on: macos-12
runs-on: macos-15
if: github.event_name == 'push' || !github.event.pull_request.draft

steps:
Expand Down Expand Up @@ -175,23 +175,23 @@ jobs:
run: swift test

- name: Build Framework
run: target/debug/xtask swift build-framework --target=aarch64-apple-ios
run: target/debug/xtask swift build-framework --target=aarch64-apple-ios --profile=reldbg

#complement-crypto:
# name: "Run Complement Crypto tests"
# uses: matrix-org/complement-crypto/.github/workflows/single_sdk_tests.yml@main
# with:
# use_rust_sdk: "." # use local checkout
# use_complement_crypto: "MATCHING_BRANCH"
complement-crypto:
name: "Run Complement Crypto tests"
uses: matrix-org/complement-crypto/.github/workflows/single_sdk_tests.yml@main
with:
use_rust_sdk: "." # use local checkout
use_complement_crypto: "MATCHING_BRANCH"

test-crypto-apple-framework-generation:
name: Generate Crypto FFI Apple XCFramework
runs-on: macos-12
runs-on: macos-15
if: github.event_name == 'push' || !github.event.pull_request.draft

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

# install protoc in case we end up rebuilding opentelemetry-proto
- name: Install protoc
Expand Down
46 changes: 29 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ concurrency:

env:
CARGO_TERM_COLOR: always
# Insta.rs is run directly via cargo test. We don't want insta.rs to create new snapshots files.
# Just want it to run the tests (option `no` instead of `auto`).
INSTA_UPDATE: no

jobs:
xtask:
Expand All @@ -40,7 +43,6 @@ jobs:
- markdown
- socks
- sso-login
- image-proc

steps:
- name: Checkout
Expand All @@ -49,6 +51,11 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable

- name: Install libsqlite
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev

- name: Load cache
uses: Swatinem/rust-cache@v2
with:
Expand Down Expand Up @@ -114,6 +121,11 @@ jobs:
- name: Checkout the repo
uses: actions/checkout@v4

- name: Install libsqlite
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

Expand Down Expand Up @@ -165,6 +177,12 @@ jobs:
with:
tool: [email protected]

- name: Install libsqlite
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
Expand Down Expand Up @@ -273,7 +291,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-06-25
toolchain: nightly-2024-11-26
components: rustfmt

- name: Cargo fmt
Expand All @@ -289,7 +307,7 @@ jobs:
uses: actions/checkout@v4

- name: Check the spelling of the files in our repo
uses: crate-ci/typos@v1.20.10
uses: crate-ci/typos@v1.28.3

clippy:
name: Run clippy
Expand All @@ -308,7 +326,7 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-06-25
toolchain: nightly-2024-11-26
components: clippy

- name: Load cache
Expand All @@ -335,7 +353,7 @@ jobs:
# run several docker containers with the same networking stack so the hostname 'postgres'
# maps to the postgres container, etc.
services:
# sliding sync needs a postgres container
# synapse needs a postgres container
postgres:
# Docker Hub image
image: postgres
Expand All @@ -353,21 +371,10 @@ jobs:
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
# run sliding sync and point it at the postgres container and synapse container.
# the postgres container needs to be above this to make sure it has started prior to this service.
slidingsync:
image: "ghcr.io/matrix-org/sliding-sync:v0.99.11" # keep in sync with ./coverage.yml
env:
SYNCV3_SERVER: "http://synapse:8008"
SYNCV3_SECRET: "SUPER_CI_SECRET"
SYNCV3_BINDADDR: ":8118"
SYNCV3_DB: "user=postgres password=postgres dbname=syncv3 sslmode=disable host=postgres"
ports:
- 8118:8118
# tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the
# latter does not provide networking for services to communicate with it.
synapse:
image: ghcr.io/matrix-org/synapse-service:5b6a75935e560945f69af72e9768bbaac10c9b4f # keep in sync with ./coverage.yml
image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./coverage.yml
env:
SYNAPSE_COMPLEMENT_DATABASE: sqlite
SERVER_NAME: synapse
Expand All @@ -378,6 +385,11 @@ jobs:
- name: Checkout the repo
uses: actions/checkout@v4

- name: Install libsqlite
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

Expand Down
21 changes: 7 additions & 14 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ jobs:
# run several docker containers with the same networking stack so the hostname 'postgres'
# maps to the postgres container, etc.
services:
# sliding sync needs a postgres container
postgres:
# Docker Hub image
image: postgres
Expand All @@ -47,21 +46,10 @@ jobs:
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
# run sliding sync and point it at the postgres container and synapse container.
# the postgres container needs to be above this to make sure it has started prior to this service.
slidingsync:
image: "ghcr.io/matrix-org/sliding-sync:v0.99.11" # keep in sync with ./ci.yml
env:
SYNCV3_SERVER: "http://synapse:8008"
SYNCV3_SECRET: "SUPER_CI_SECRET"
SYNCV3_BINDADDR: ":8118"
SYNCV3_DB: "user=postgres password=postgres dbname=syncv3 sslmode=disable host=postgres"
ports:
- 8118:8118
# tests need a synapse: this is a service and not michaelkaye/setup-matrix-synapse@main as the
# latter does not provide networking for services to communicate with it.
synapse:
image: ghcr.io/matrix-org/synapse-service:5b6a75935e560945f69af72e9768bbaac10c9b4f # keep in sync with ./ci.yml
image: ghcr.io/matrix-org/synapse-service:v1.117.0 # keep in sync with ./ci.yml
env:
SYNAPSE_COMPLEMENT_DATABASE: sqlite
SERVER_NAME: synapse
Expand All @@ -74,6 +62,11 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}

- name: Install libsqlite
run: |
sudo apt-get update
sudo apt-get install libsqlite3-dev

- name: Install Rust
uses: dtolnay/rust-toolchain@stable

Expand Down Expand Up @@ -101,7 +94,7 @@ jobs:
run: |
rustup run stable cargo tarpaulin \
--skip-clean --profile cov --out xml \
--features experimental-widgets,testing,image-proc
--features experimental-widgets,testing
env:
CARGO_PROFILE_COV_INHERITS: 'dev'
CARGO_PROFILE_COV_DEBUG: 1
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/deny.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Lint dependencies (for licences, allowed sources, banned dependencies, vulnerabilities)
on:
pull_request:
paths:
- '**/Cargo.toml'
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
cargo-deny:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: EmbarkStudios/cargo-deny-action@v2
Loading