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 1,123 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1123 commits
Select commit Hold shift + click to select a range
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
f7db52e
Use Send-less BoxFuture for HttpClient Service impl on wasm
jplatte Jan 16, 2025
453c4e1
doc(sdk): Simplify documentation of `RoomEventCache::subscribe`.
Hywan Jan 17, 2025
077d63a
chore(ui): Re-export matrix-sdk's js feature
jplatte Jan 7, 2025
63d14b7
ci: Reorder workflow matrix items to match ci.rs
jplatte Jan 16, 2025
e077980
ci: Shorten job name
jplatte Jan 16, 2025
993c103
ci: Add wasm job for matrix-sdk-ui
jplatte Jan 16, 2025
160600e
chore(ui): Copy some attributes from matrix-sdk
jplatte Jan 16, 2025
47fc073
refactor(live_location_share): exclude live location events of own us…
torrybr Jan 17, 2025
f2c9a8f
fix(ui): Fix latest_edit_json for live edits
zecakeh Jan 18, 2025
c82e469
chore(cargo): Update Ruma to include https://github.com/ruma/ruma/pul…
Hywan Jan 20, 2025
b846a6d
chore(deps): bump crate-ci/typos from 1.28.3 to 1.29.4
dependabot[bot] Jan 20, 2025
f3e43db
chore(deps): bump malinskiy/action-android/install-sdk@release/0.1.4
dependabot[bot] Jan 20, 2025
dbadfe1
fix(timeline): avoid adding non-pinned events to the pinned events ti…
jmartinesp Jan 20, 2025
0c74abb
test: get rid of `EventBuilder` (#4560)
bnjbvr Jan 21, 2025
210c574
test: minimize usage of `EventFactory::state_key`
bnjbvr Jan 21, 2025
d078ef6
fix: fix `mock_room_event` not being able to properly filter out even…
jmartinesp Jan 20, 2025
dad3e68
test: update the code in `pinned_events` integration tests
jmartinesp Jan 20, 2025
ad847a8
refactor: Remove `TestHelper` in `pinned_events.rs`
jmartinesp Jan 21, 2025
4341aaf
test: remove some uses of `sync_timeline_event!` in the base and sdk …
bnjbvr Jan 21, 2025
9ae658c
feat(sdk): Enable HTTP/2 support
zecakeh Jan 21, 2025
e826c54
Use the dehydrated device format implemented by vodozemac (#4421)
uhoreg Jan 22, 2025
991c9ad
chore(ci): simplify formatting checks by using xtask instead
stefanceriu Jan 22, 2025
4684cfb
chore: Replace `Timeline::subscribe` by `Timeline::subscribe_batched`.
Hywan Jan 22, 2025
1d83d42
chore(ui): Remove `Timeline::subscribe`.
Hywan Jan 21, 2025
a528624
chore(ffi): replace all the different timeline builder methods with o…
stefanceriu Jan 22, 2025
02c2e55
refactor(sdk): Move matrix_auth module to authentication::matrix
zecakeh Jan 22, 2025
3e78e44
refactor(sdk): Move oidc module to authentication::oidc
zecakeh Jan 22, 2025
df51404
chore(sdk): Add changelog for move of `matrix_auth` and `oidc`
zecakeh Jan 22, 2025
eb31f03
refactor: turn `TimelineEvent` into `SyncTimelineEvent`
bnjbvr Jan 21, 2025
0c2046f
refactor: have `SyncTimelineEvent::push_actions` be optional
bnjbvr Jan 21, 2025
3428494
refactor: rename `SyncTimelineEvent` to `TimelineEvent`
bnjbvr Jan 21, 2025
da4b800
docs: add changelog entries
bnjbvr Jan 21, 2025
041627e
test: rename `EventFactory::into_sync` to `into_event`
bnjbvr Jan 21, 2025
2d0f873
refactor: send respects to multiple automated lints and checks
bnjbvr Jan 21, 2025
4c4dd03
fix(wasm): don't use tokio::time::{timeout,sleep} (#4573)
maan2003 Jan 23, 2025
c6e3087
update maturity and contribution call to action
neilisfragile Jan 24, 2025
66ffc34
Update README.md
neilisfragile Jan 24, 2025
87983ab
chore: Remove an old todo
pixlwave Jan 24, 2025
756dec2
Upgrade `imbl`, `eyeball-im`, `eyeball-im-util` to fix bounds check
kevinaboos Jan 25, 2025
35ad544
crypto: split common struct out of device collection results
richvdh Jan 22, 2025
839fbe4
feat(beacons): expose ffi functions to start, stop and subscribe
torrybr Jan 23, 2025
f336638
refactor: move subscribe into arc
torrybr Jan 23, 2025
aaecbf0
refactor: dont panic if beacon_info is not found
torrybr Jan 24, 2025
2657eb7
feat(ui): expose a method for checking whether a message contains onl…
stefanceriu Jan 27, 2025
818876a
crypto: factor out common code between device collection cases
richvdh Jan 22, 2025
709b09c
test: factor out test helpers in `share_strategy` tests
richvdh Jan 17, 2025
98f4d55
test: check serialization format of `DeviceBasedStrategy`
richvdh Jan 22, 2025
8d612ec
crypto: break up split_devices_for_user
richvdh Jan 26, 2025
7c57f2c
crypto: split out new device collection strategies
richvdh Jan 26, 2025
f43edbd
refactor(crypto): split up `split_devices_for_user_for_error_on_verif…
richvdh Jan 26, 2025
3e610c8
Merge pull request #4581 from matrix-org/rav/refactor_share_keys
richvdh Jan 27, 2025
468a7ac
doc(ffi): Remove useless `#[cfg(doc)]` imports.
Hywan Jan 27, 2025
254ac6f
refactor(ui): Unify the `Timeline` pagination API.
Hywan Jan 27, 2025
0820170
doc(ui): Update the `CHANGELOG`.
Hywan Jan 27, 2025
408b843
test: fix cross-signing in legacy dehydrated device test
richvdh Jan 27, 2025
6dc5b33
chore(ui): Remove useless `trace!`.
Hywan Jan 27, 2025
5b3b87d
chore(ui): Rename `Timeline::subscribe_batched` to `::subscribe`.
Hywan Jan 27, 2025
1d3f8bf
doc(ui): Update the `CHANGELOG`.
Hywan Jan 27, 2025
173ec75
refactor(ui): Move common data of the SyncService under a lock
poljar Jan 16, 2025
4344e06
refactor(ui): Rename the scheduler task to supervisor task
poljar Jan 16, 2025
3085f05
refactor(ui): Create a Supervisor for the SyncService
poljar Jan 16, 2025
7c2b15f
refactor(ui): Move the spawning of the child tasks into the supervisor
poljar Jan 16, 2025
1b8a6b7
refactor(ui): Move the expiration of the sync services closer to the …
poljar Jan 16, 2025
d14526f
refactor(ui): Move the task spawning functions under the supervisor
poljar Jan 16, 2025
b52cf83
refactor(ui): Remove some early returns from the sync service
poljar Jan 16, 2025
842d32d
refactor(ui): Prettify the two sync tasks a bit
poljar Jan 16, 2025
28fb6f7
fix(ui): Shutdown the child tasks if the channel got closed in the su…
poljar Jan 16, 2025
06ad67f
docs(ui): Polish the documentation of the SyncService a bit
poljar Jan 16, 2025
be71c6d
docs: Document that the SyncService requires MSC4186
poljar Jan 23, 2025
30d7fac
refactor(ui): Remove some unneeded references from the SyncServiceInner
poljar Jan 23, 2025
8a49183
refactor(ui): Rename the abortion sender in the SyncService
poljar Jan 23, 2025
7cc121a
docs(ui): Clarify that the supervisor encapsulates the child tasks in…
poljar Jan 23, 2025
f8ec957
doc(ui): Reword the doc comment for the is_supervisor_task_running me…
poljar Jan 23, 2025
3f398d8
chore(ui): Move the SyncService stop logic out of the State::Running …
poljar Jan 24, 2025
8de1542
chore: Fix a typo
poljar Jan 28, 2025
d8ba2b5
refactor(crypto): extract a method from a test that I will re-use later
andybalaam Jan 20, 2025
447bd67
feat(crypto): Ignore to-device messages from dehydrated devices
andybalaam Jan 16, 2025
a311dcb
refact(mem_store): Replace unwrap with expect
BillCarsonFr Jan 17, 2025
9ff3761
refact(mem_store): Serialize account and cache static account data
BillCarsonFr Jan 17, 2025
fe85cdd
refact(mem_store): Serialize/Deserialise olm sessions
BillCarsonFr Jan 17, 2025
182fc6f
refact(mem_store): Ser/Deser inbound group sessions
BillCarsonFr Jan 17, 2025
50696a0
refact(mem_store) Add a global save change lock similar to other stores
BillCarsonFr Jan 20, 2025
542d68d
fix(test): Properly set up test crypto memory store by saving own device
BillCarsonFr Jan 21, 2025
8d530ef
Merge pull request #4558 from matrix-org/valere/memory_store_consiste…
BillCarsonFr Jan 28, 2025
834bed2
feat(base): Add MediaRetentionPolicy
zecakeh Jan 19, 2025
2c930df
feat(base): Add MediaService
zecakeh Jan 20, 2025
6c7d8c1
feat(base): Add macro for integration tests of EventCacheStoreMedia
zecakeh Jan 21, 2025
34c7dd4
refactor(base): Use struct for media content in the MemoryStore
zecakeh Jan 21, 2025
144f568
feat(base): Implement EventCacheStoreMedia for MemoryStore
zecakeh Jan 21, 2025
8ca5983
feat(sqlite): Implement EventCacheStoreMedia for SqliteEventCacheStore
zecakeh Jan 21, 2025
3e40db3
test(ui): Tests no longer use `add_events_at`.
Hywan Jan 28, 2025
20c1eff
refactor(ui): The `Timeline` no longer use `add_events_at`.
Hywan Jan 28, 2025
29e19b7
chore(ui): Remove `TimelineController::add_events_at`.
Hywan Jan 28, 2025
46d90af
refactor(ui): Use `handle_remote_events_with_diffs` instead of `add_r…
Hywan Jan 28, 2025
c0b91c4
chore(ui): Remove `TimelineState(Transaction)::add_remote_events_at`.
Hywan Jan 28, 2025
5e8f3b2
chore(ui): Remove `HandleManyEventsResult`.
Hywan Jan 28, 2025
31e7ec1
chore(ui): Remove `TimelineNewItemPosition`.
Hywan Jan 28, 2025
eb9b869
feat(base): Add methods for MediaRetentionPolicy to EventCacheStore
zecakeh Jan 21, 2025
2e05cc7
feat(sdk): Add methods to Media to interact with MediaRetentionPolicy
zecakeh Jan 22, 2025
9b38f38
fix(base): Organize changelog the same way as other crates
zecakeh Jan 22, 2025
a4a6bf5
chore(base): Add changelog entry for MediaRetentionPolicy and associa…
zecakeh Jan 22, 2025
8262726
chore(sqlite): Add changelog entry for EventCacheStore changes
zecakeh Jan 22, 2025
0334ff3
chore(sdk): Add changelog entry for MediaRetentionPolicy
zecakeh Jan 22, 2025
df9c355
Merge branch 'main' into media-retention-policy
zecakeh Jan 28, 2025
c2f39c1
Merge branch 'main' into media-retention-policy
zecakeh Jan 28, 2025
33d691a
Merge pull request #4571 from zecakeh/media-retention-policy
Hywan Jan 28, 2025
720d443
chore(ui): Move `TimelineStateTransaction` into its own module.
Hywan Jan 28, 2025
66e3dde
chore(ui): Move `TimelineMetadata` into its own module.
Hywan Jan 28, 2025
d755a8a
chore(ui): Move `EventMeta` inside the `metadata` module.
Hywan Jan 28, 2025
e3b3487
test: test helpers in `share_strategy` tests
richvdh Jan 17, 2025
6f42b0a
crypto: withhold outgoing messages to unsigned dehydrated devices
richvdh Jan 17, 2025
4d4cd61
chore: update copyright years for files newly introduced
bnjbvr Jan 30, 2025
4dadf85
refactor(ui): Move the creation of the child tasks in the SyncService…
poljar Jan 24, 2025
b71499f
refactor(ui): Move the start/stop implementations under the inner Syn…
poljar Jan 24, 2025
6a772d1
test: Add a method to mock the /versions endpoint to the MatrixMockSe…
poljar Jan 28, 2025
9d73239
feat(ui): Introduce a "offline" mode for the SyncService
poljar Jan 24, 2025
0d8ad15
test(ui): Write tests for the SyncService offline mode
poljar Jan 24, 2025
97cbe57
docs: Document the offline mode for the SyncService
poljar Jan 28, 2025
252786d
refactor(ui): Make SyncService::stop infallible
poljar Jan 29, 2025
b323802
fix(ui): Enable retries for network failures of the /versions check i…
poljar Jan 30, 2025
0dc5e69
fix: Retry the sync even in case of network errors
poljar Jan 30, 2025
585224b
chore(ui): Replace the unit type with an empty block
poljar Jan 31, 2025
29862fc
refactor: Add the assert_next_eq_with_timeout test helper
poljar Jan 31, 2025
5049d1a
chore(sqlite): Use `repeat_n(…, n)` instead of `repeat(…).take(n)`.
Hywan Jan 31, 2025
3f40ad8
chore(sdk): Remove a useless type conversion.
Hywan Jan 31, 2025
d594b4d
chore(sdk): Remove a useless type conversion.
Hywan Jan 31, 2025
78d9e12
chore(sdk): Do not iterate over the entire iterator when we can reach…
Hywan Jan 31, 2025
e3958b7
chore(crypto-ffi): `Done` is a unit type, no need for `{ .. }`.
Hywan Jan 31, 2025
eaaa5e1
chore: Fix a doc example in the MatrixMockServer
poljar Jan 31, 2025
3707d2f
test: Make the timeout parameter in the assert_next_with_timeout macr…
poljar Jan 31, 2025
8d27b0c
test: Simplify some tests using the assert_next_with_timeout macro
poljar Jan 31, 2025
b8949cf
chore: Bump vodozemac
poljar Jan 31, 2025
57919f5
chore: Bump most of our deps
poljar Jan 31, 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
67 changes: 67 additions & 0 deletions .deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# 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",
# We can release vodozemac whenever we need but let's not block development
# on releases.
"https://github.com/matrix-org/vodozemac",
]
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
22 changes: 11 additions & 11 deletions .github/workflows/bindings_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ jobs:
java-version: '17'

- name: Install android sdk
uses: malinskiy/action-android/install-sdk@release/0.1.4
uses: malinskiy/action-android/install-sdk@release/0.1.7

- name: Install android ndk
uses: nttld/setup-ndk@v1
Expand Down 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
84 changes: 44 additions & 40 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 @@ -206,12 +224,16 @@ jobs:
- name: '[m]-common'
cmd: matrix-sdk-common

- name: '[m], no-default'
cmd: matrix-sdk-no-default

- name: '[m]-ui'
cmd: matrix-sdk-ui
check_only: true

- name: '[m]-indexeddb'
cmd: indexeddb

- name: '[m], no-default, wasm-flags'
cmd: matrix-sdk-no-default

- name: '[m], indexeddb stores'
cmd: matrix-sdk-indexeddb-stores

Expand All @@ -230,6 +252,7 @@ jobs:

- name: Install wasm-pack
uses: qmaru/[email protected]
if: '!matrix.check_only'
with:
version: v0.10.3

Expand Down Expand Up @@ -259,27 +282,10 @@ jobs:
target/debug/xtask ci wasm ${{ matrix.cmd }}

- name: Wasm-Pack test
if: '!matrix.check_only'
run: |
target/debug/xtask ci wasm-pack ${{ matrix.cmd }}

formatting:
name: Check Formatting
runs-on: ubuntu-latest

steps:
- name: Checkout the repo
uses: actions/checkout@v4

- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2024-06-25
components: rustfmt

- name: Cargo fmt
run: |
cargo fmt -- --check

typos:
name: Spell Check with Typos
runs-on: ubuntu-latest
Expand All @@ -289,10 +295,10 @@ 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.29.4

clippy:
name: Run clippy
lint:
name: Lint
needs: xtask
runs-on: ubuntu-latest

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

- name: Load cache
uses: Swatinem/rust-cache@v2
Expand All @@ -323,6 +329,10 @@ jobs:
key: "${{ needs.xtask.outputs.cachekey-linux }}"
fail-on-cache-miss: true

- name: Check Formatting
run: |
target/debug/xtask ci style

- name: Clippy
run: |
target/debug/xtask ci clippy
Expand All @@ -335,7 +345,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 +363,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 +377,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
Loading