17 KiB
[unreleased]
Breaking changes:
- Use
Rawforconfig::set_*_account_data::Request::data.
Improvements:
- Add support for the space summary API in
space::get_hierarchyaccording to MSC2946.
0.13.0
Bug fixes:
- Fix deserialization of
r0::session::get_login_types::CustomLoginType. - Make fields of
r0::session::get_login_types::IdentityProviderpublic.
Breaking changes:
- Use an enum for user-interactive auth stage type (used to be
&str/String) - Make
r0::uiaa::ThirdpartyIdCredentialsan owned type and remove itsIncomingequivalent- Previously, we had two fields of type
&'a [ThirdpartyIdCredentials<'a>]and this kind of nested borrowing can be very annoying
- Previously, we had two fields of type
LoginInfono longer implementsPartialEqandEqdue to the custom variant that was added.LoginInfoconverted to newtype variants.- Use
Rawforcreate_room::Request::creation_content - Delete
r0::contactmodulerequest_contact_verification_tokenwas an out-of-date duplicate ofr0::account::request_3pid_management_token_via_emailget_contactshas been can now be found atr0::account::get_3pids
- Move
r0::uiaa::authorize_fallbacktor0::uiaa::get_uiaa_fallback_page - Change type of field
startofr0::message::get_message_events::ResponsetoStringin accordance with the updated specification. - Rename
uiaa::UserIdentifier::MatrixIdvariant touiaa::UserIdentifier::UserIdOrLocalpart
Improvements:
-
Add support for reasons in the membership endpoints:
r0::membership::{ join_room_by_id, join_room_by_id_or_alias, invite_user, unban_user } -
Add a
.data()accessor method tor0::uiaa::{AuthData, IncomingAuthData} -
Allow to construct the custom
AuthDatavariant withIncomingAuthData::newand then callIncomingAuthData::to_outgoingon it. -
Add custom variant to
LoginInfowhich can be constructed withIncomingLoginInfo::newand then callIncomingLoginInfo::to_outgoingon it. -
Move MSC2858 - Multiple SSO Identity Providers out of the
unstable-pre-specfeature flag, this includes:- The
r0::session::get_login_types::{IdentityProvider, IdentityProviderBrand}types - The
session::sso_login_with_provider::v3endpoint
- The
-
Move reason support for leaving room out of
unstable-pre-spec -
Move room type support out of
unstable-pre-spec -
Move knocking support out of
unstable-pre-spec -
Move blurhash support to
unstable-msc2448
0.12.3
- Add a
feature = "compat"workaround for Element failing onGET /_matrix/client/r0/account/3pidresponse if the optionalthreepidsfield is missing
0.12.2
Improvements
- Add
auth_typeandsessionaccessors touiaa::IncomingAuthData
0.12.1
Improvements:
- Add
auth_typeandsessionaccessors touiaa::AuthData
0.12.0
Breaking changes:
- Change inconsistent types in
roomsandnot_roomsfields inRoomEventFilterstructure: both types now useRoomId - Move
r0::{session::login::UserIdentifier => uiaa::UserIdentifier} - Add
stagesparameter tor0::uiaa::AuthFlow::new - Upgrade dependencies
Improvements:
-
Add more endpoints:
r0::knock::knock_room -
Add unstable support for room knocking
-
Add unstable support for reasons for leaving rooms
0.11.2
Yanked since it depended on a version of ruma-api that had to be yanked too.
0.11.1
Yanked, wrong dependency version.
0.11.0
Breaking changes:
-
Use
Raw<AnyInitialStateEvent>over justAnyInitialStateEventin theinitial_statefield ofr0::room::create_room::Request -
Remove
r0::keys::{ CrossSigningKey, CrossSigningKeySignatures, KeyUsage, OneTimeKey, SignedKey, SignedKeySignatures, }These are now found in
ruma_common::encryption(orruma::encryption). -
Remove
r0::to_device::DeviceIdOrAllDevices, now found inruma_common::to_device(orruma::to_device) -
Remove
r0::contact::get_contacts::{ThirdPartyIdentifier, ThirdPartyIdentifierInit}, now found inruma_common::thirdparty(orruma::thirdparty)
0.10.2
Bug fixes:
- Remove authentication for get alias endpoint
0.10.1
Improvements:
- Add unstable support for room types
0.10.0
Bug fixes:
- Fix deserialization of
r0::room::get_room_event::Response - More missing fields in
r0::sync::sync_events::Responsecan be deserialized - Fix
get_tags::Responseserialization - Fix unsetting avatar URL when
compatfeature is enabled
Breaking changes:
- Update
contains_url: Option<bool>inr0::filter::RoomEventFiltertourl_filter: Option<UrlFilter>. - Borrow strings in outgoing requests and responses.
- Explicit types may have to be updated from
endpoint::Requesttoendpoint::Request<'_>on clients andendpoint::IncomingRequeston servers, the other way around for responses. - When sending a request or response, you shouldn't have to clone things as much as before. Tip:
Use clippy to detect now-unnecessary
.into()conversions.
- Explicit types may have to be updated from
- Make most types non-exhaustive
- This means you no longer can construct many of them using struct literals.
- Instead, constructors are provided.
- Tip: To set optional fields that aren't set in the constructor, you may find the
assigncrate useful.
- Make
avatar_urlinr0::profile::set_avatar_url::RequestanOption - Update type of
canonical_aliasinr0::directory::PublicRoomsChunkfromOption<String>toOption<RoomAliasId> - Update
r0::room::create_room::CreationContent- Change
federateds type fromOption<bool>tobool - Add
predecessorfield
- Change
- Update
r0::push::get_pushrules_allandr0::push::get_pushrules_global_scopeto use theRulesettype fromruma_common::push(also available asruma::push) - Fix event types in
r0::context::get_context - Fix event types in
r0::sync::sync_events - Update type of
user_idinr0::account::whoamifromStringtoruma_identifiers::UserId - Update type of
limitedinr0::sync::sync_events::TimelinefromOption<bool>tobool - Use
DeviceIdfordevice_idfield ofr0::session::login::Response - Use
ruma_identifiers::ServerNameinstead ofStringforserver_namefields in the following endpoints:r0::{ account::request_openid_token, media::{get_content, get_content_as_filename, get_content_thumbnail}, membership::join_room_by_id_or_alias, session::login, } - Rename
r0::search::search_events::{RoomEventJsons => ResultRoomEvents}. The previous name was an error introduced in a mass search and replace r0::sync::sync_events::SetPresencehas been moved and renamed. Usepresence::PresenceStatefromrumaorruma-common.r0::push::Actionhas been moved. Import it fromrumaorruma-common.- Update type of
limitinr0::user_directory::search_usersfromOption<UInt>toUInt - Rename
r0::message::{create_message_event => send_message_event} - Rename
r0::state::{create_state_event_* => send_state_event_*} - Replace
r0::keys::{AlgorithmAndDeviceId, KeyAlgorithm}withruma_identifiers::{DeviceKeyId, DeviceKeyAlgorithm}, respectively - Use
ruma_identifiers::{ServerName, ServerKeyId}insignaturesfields ofr0::room::membership::ThirdPartySigned. - Move
r0::directory::{Filter, PublicRoomsChunk, RoomNetwork}to theruma-commoncrate - Replace
r0::room::create_room::InitialStateEventwithruma_events::InitialStateEvent error::ErrorKindno longer implementsCopy,FromStr- Switch from
AnyEventtoAnyRoomEventinr0::search::search_events - Move
r0::account::request_openid_token::TokenTypetoruma-commoncrate - Move
user: UserInfoinr0::session::login::Requesttoidentifier: UserIdentifierinr0::session::login::LoginInfo::Passwordr0::session::login::Request::newtakes onlylogin_info: LoginInfoas a param
- Change
ruma_events::AnyEventtoruma_events::AnySyncRoomEventinpush::get_notifications::Notification - Use
ruma_identifiers::MxcUriinstead ofStringforavatar_urlfields in the following endpoints:r0::{ directory, media::create_content, membership::joined_members, profile::{get_avatar_url, get_profile, set_avatar_url}, search::{search_events, search_users} } - Change
r0::session::get_login_types::LoginTypeto a non-exhaustive enum of structs. - Move
r0::receipt::ReceiptTypeto theruma-commoncrate
Improvements:
- Add method
into_event_contentforr0::room::create_room::CreationContent - Add room visibility endpoints:
r0::directory::{get_room_visibility, set_room_visibility}. - Add is_empty helpers for structs in
r0::sync::sync_events - Add a constructor for request structs of the following endpoints
r0::room::create_roomr0::message::get_message_events
- Add
logout_devicesfield tor0::account::change_password - Add
r0::room::aliases(introduced in r0.6.1) - Add constructors that use
ruma_identifiers::MxcUriforRequestin the following endpoints:r0::media::{ get_content, get_content_as_filename, get_content_thumbnail } - Implement MSC2858 - Multiple SSO Identity Providers under the
unstable-pre-specfeature flag:- Add the
r0::session::get_login_types::{IdentityProvider, IdentityProviderBrand}types - Add the
r0::session::sso_login_with_providerendpoint
- Add the
0.9.0
Bug fixes:
- Fix (de)serialization for
r0::media::get_content_thumnail::Response - Make
r0::device::get_devices::Response::devicespublic
Breaking changes:
- The
event_idin the response for the message and state sending endpoints is now required- r0.6.0 doesn't say they are required, but this has been fixed for the next version of the spec
- Updated the type of
r0::sync::sync_events::DeviceListsfields - Change
r0::device::Devicefields according to the spec
Improvements:
r0::keys::AlgorithmAndDeviceIdnow implementsDisplay
0.8.0
Breaking changes:
- Update all endpoints to r0.6.0
- Some of the changes from that might not be listed below, but it should be easy to figure out what changed from the documentation and compiler errors if you are using any of the affected endpoints.
- Add
server_nameparameter tor0::join::join_room_by_id_or_alias - Modify
r0::account::AuthenticationData:- Rename to
AuthData - Change to an enum to facilitate fallback auth acknowledgements
- Add
auth_parametersfield - Move to
r0::uiaamodule
- Rename to
- Add
room_networkparameter tor0::directory::get_public_rooms_filteredto representinclude_all_networksandthird_party_instance_idMatrix fields - Update
r0::account::registerendpoint:- Remove
bind_emailrequest field (removed in r0.6.0) - Remove
inhibit_loginrequest field, makeaccess_tokenanddevice_idresponse fields optional (added in r0.4.0) - Remove deprecated
home_serverresponse field (removed in r0.4.0)
- Remove
- Update
r0::contact::get_contactsendpoint to r0.6.0 - Change
UInttimestamps toSystemTimein:media::get_media_preview::Requestpush::get_notifications::Notificationserver::get_user_info::ConnectionInfodevice::Device
- Change all usages of
HashMaptoBTreeMap - Change the messages type that gets sent out using the
r0::client_exchange::send_event_to_devicerequest. - Add
M_USER_DEACTIVATEDtoerror::ErrorKind - Make
display_namefield ofr0::membership::joined_events::RoomMemberoptional - Update
r0::search::search_eventsto r0.6.0 - Add
account_datafield tor0::sync::sync_events - Rename
r0::client_exchangetor0::to_device
Improvements:
- Add types for User-Interactive Authentication API:
r0::uiaa::{AuthFlow, UiaaInfo, UiaaResponse} - Add missing serde attributes to
get_content_thumbnailquery parameters - Add missing
stateresponse field tor0::message::get_message_events - Normalize
serde_jsonimports - Remove dependency on the
urlcrate
0.7.2
Bug fixes:
- Fix
create_roomrequests without aninitial_statefield failing deserialization - Fix
sync_eventsresponses without adevice_one_time_keys_countfield failing deserialization
0.7.1
Bug fixes:
- Fix deserialization of
sync_events::Request - Fix (de)serialization of
sync_events::RoomSummary
0.7.0
Breaking changes:
- Update ruma-api to 0.15.0
- Update ruma-events to 0.18.0
- Fix
r0::session::get_login_types - Add
allow_remoteparameter tor0::media::get_content - Add missing parameters for
r0::room::create_room - Moved
r0::room::create_room::Invite3pidtor0::membership::Invite3pid - Replaced
user_idparameter ofr0::membership::invite_userwithrecipientto allow invitation of users by either Matrix or third party identifiers. - Remove deprecated endpoint
r0::contact::create_contact(deprecated in r0.6.0) - Add lazy-loading options to
r0::filter::RoomEventFilter(introduced in r0.5.0) - Change type for
limitrequest parameter ofr0::context::get_contextfromu8toOption<js_int::UInt> - Use
std::time::Durationfor appropriate fields on several endpoints:r0::{ account::request_openid_token, keys::{claim_keys, get_keys}, presence::get_presence, sync::sync_events, typing::create_typing_event, voip::get_turn_server_info }
Improvements:
- Add an
Errortype that represents the well-known errors in the client-server API- the response deserialization code will try to create an instance of this type from http responses that indicate an error
- Add OpenID token request endpoint.
- Add
r0::client_exchange::send_event_to_device(introduced in r0.3.0) - Add endpoints to retrieve account_data (introduced in r0.5.0)
- Add media endpoints:
r0::media::{get_media_config, get_media_preview, get_content_as_filename} - Add
unstable_featurestounversioned::get_supported_versions(introduced in r0.5.0) - Add request and response parameters for
r0::account::deactivate - Add
r0::session::sso_login(introduced in r0.5.0) - Add
filtertype forr0::context::get_context
0.6.0
Breaking changes:
- Update ruma-api to 0.13.0
- Our Minimum Supported Rust Version is now 1.40.0
- Remove presence list endpoints
r0::presence::{get_subscribed_presences, update_presence_subscriptions}(removed in r0.5.0) - Refactor
r0::sendendpoints and remove module:- Move
r0::send::send_message_eventtor0::message::create_message_event - Move
r0::send::send_state_event_for_empty_keytor0::state:create_state_event_for_empty_key - Move
r0::send::send_state_event_for_keytor0::state:create_state_event_for_key
- Move
- Refactor
r0::syncendpoints:- Move
r0::sync::get_member_eventstor0::membership::get_member_events - Move
r0::sync::get_message_eventstor0::message::get_message_events - Move
r0::sync::get_state_eventstor0::state::get_state_events - Move
r0::sync::get_state_events_for_empty_keytor0::state::get_state_events_for_empty_key - Move
r0::sync::get_state_events_for_keytor0::state::get_state_events_for_key
- Move
- Update endpoints for requesting account management tokens via email:
- Move
r0::account::request_password_change_tokentor0::account::request_password_change_token_via_email - Move
r0::account::request_register_tokentor0::account::request_registration_token_via_email - Modify
r0::account::request_registration_token_via_emailnot to be rate-limited and require authentication
- Move
- Merge duplicate enums
r0::contact::get_contact::Mediumandr0::session::login::Mediumand move them tor0::thirdparty
Improvements:
- Add
r0::deviceendpoints - Add
r0::room::get_room_event(introduced in r0.4.0) - Add
r0::read_marker::set_read_marker(introduced in r0.4.0) - Add
r0::capabilities::get_capabilities(introduced in r0.5.0) - Add
r0::keysendpoints (introduced in r0.3.0) - Add
r0::session::get_login_types(introduced in r0.4.0) - Add
r0::account::get_username_availability(introduced in r0.4.0) - Add endpoints to request management tokens (introduced upstream in r0.4.0):
r0::account::request_3pid_management_token_via_msisdnr0::account::request_password_change_token_via_msisdnr0::account::request_registration_token_via_msisdnr0::account::request_3pid_management_token_via_email
- Update
r0::presence_get_presencefrom r0.4.0 to r0.6.0 - Add
r0::account::bind_3pid - Add
r0::account::delete_3pid - Add
r0::account::unbind_3pid - Add
r0::pushendpoints - Add
r0::room::upgrade_room(introduced upstream in r0.5.0)
0.5.0
Breaking changes:
- Our Minimum Supported Rust Version is now 1.39.0
- Update ruma-api from 0.11.0 to 0.12.0
- Move
r0::directory::get_public_rooms::PublicRoomsChunktor0::directory::PublicRoomsChunk - Move
r0::room::create_room::Visibilitytor0::room::Visibility - Move
r0::account::register::AuthenticationDatator0::account::AuthenticationData
Improvements:
- Update
r0::directory::get_public_roomsfrom r0.3.0 to r0.6.0 - Add
r0::directory::get_public_rooms_filtered(introduced upstream in r0.3.0) - Add
filteroptional parameter tor0::sync::get_message_events(introduced upstream in r0.3.0) - Add
r0::appservice::set_room_visibility(part of application service extensions for the client-server API) - Add
contains_urltor0::filter::RoomEventFilter(introduced upstream in r0.3.0) - Update
r0::account::change_passwordfrom r0.3.0 to r0.6.0- Add optional
authfield
- Add optional