19 KiB
[unreleased]
Breaking changes:
- Remove
PartialEq
implementations for a number of types- If the lack of such an
impl
causes problems, please open a GitHub issue
- If the lack of such an
0.14.1
Improvements:
- Add
From<&UserId>
andFrom<&OwnedUserId>
implementations forUserIdentifier
- Add
UserIdentifier::email
constructor
0.14.0
Bug fixes:
- Fix HTTP method of
backup::update_backup
- Make score and reason optional in room::report_content::Request
- Fix
uiaa::*::thirdparty_id_creds
according to a clarification in the spec
Breaking changes:
- Use
Raw
forconfig::set_*_account_data::Request::data
. - Rename the endpoints in
backup
:add_backup_key_session
=>add_backup_keys_for_session
add_backup_key_sessions
=>add_backup_keys_for_room
create_backup
=>create_backup_version
delete_backup
=>delete_backup_version
delete_backup_key_session
=>delete_backup_keys_for_session
delete_backup_key_sessions
=>delete_backup_keys_for_room
get_backup
=>get_backup_info
get_backup_key_session
=>get_backup_keys_for_session
get_backup_key_sessions
=>get_backup_keys_for_room
get_latest_backup
=>get_latest_backup_info
update_backup
=>update_backup_version
- Rename
discover
todiscovery
- Move
capabilities::get_capabilities
intodiscovery
- Make
from
optional inmessage::get_message_events
according to a clarification in the spec
Improvements:
- Add support for the space summary API in
space::get_hierarchy
according to MSC2946. - Add
device_id
toaccount::whoami::Response
according to MSC2033 - Add
is_guest
toaccount::whoami::Response
according to MSC3069 - Add
session::login::LoginInfo::ApplicationService
according to MSC2778 - Add new fields in
discovery::get_capabilities::Capabilities
according to MSC3283 - Implement Space Summary API according to MSC2946
- Add unstable support for threads in
filter::RoomEventFilter
according to MSC3440
0.13.0
Bug fixes:
- Fix deserialization of
r0::session::get_login_types::CustomLoginType
. - Make fields of
r0::session::get_login_types::IdentityProvider
public.
Breaking changes:
- Use an enum for user-interactive auth stage type (used to be
&str
/String
) - Make
r0::uiaa::ThirdpartyIdCredentials
an owned type and remove itsIncoming
equivalent- 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
LoginInfo
no longer implementsPartialEq
andEq
due to the custom variant that was added.LoginInfo
converted to newtype variants.- Use
Raw
forcreate_room::Request::creation_content
- Delete
r0::contact
modulerequest_contact_verification_token
was an out-of-date duplicate ofr0::account::request_3pid_management_token_via_email
get_contacts
has been can now be found atr0::account::get_3pids
- Move
r0::uiaa::authorize_fallback
tor0::uiaa::get_uiaa_fallback_page
- Change type of field
start
ofr0::message::get_message_events::Response
toString
in accordance with the updated specification. - Rename
uiaa::UserIdentifier::MatrixId
variant 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
AuthData
variant withIncomingAuthData::new
and then callIncomingAuthData::to_outgoing
on it. -
Add custom variant to
LoginInfo
which can be constructed withIncomingLoginInfo::new
and then callIncomingLoginInfo::to_outgoing
on it. -
Move MSC2858 - Multiple SSO Identity Providers out of the
unstable-pre-spec
feature flag, this includes:- The
r0::session::get_login_types::{IdentityProvider, IdentityProviderBrand}
types - The
session::sso_login_with_provider::v3
endpoint
- 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/3pid
response if the optionalthreepids
field is missing
0.12.2
Improvements
- Add
auth_type
andsession
accessors touiaa::IncomingAuthData
0.12.1
Improvements:
- Add
auth_type
andsession
accessors touiaa::AuthData
0.12.0
Breaking changes:
- Change inconsistent types in
rooms
andnot_rooms
fields inRoomEventFilter
structure: both types now useRoomId
- Move
r0::{session::login::UserIdentifier => uiaa::UserIdentifier}
- Add
stages
parameter 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 justAnyInitialStateEvent
in theinitial_state
field 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::Response
can be deserialized - Fix
get_tags::Response
serialization - Fix unsetting avatar URL when
compat
feature is enabled
Breaking changes:
- Update
contains_url: Option<bool>
inr0::filter::RoomEventFilter
tourl_filter: Option<UrlFilter>
. - Borrow strings in outgoing requests and responses.
- Explicit types may have to be updated from
endpoint::Request
toendpoint::Request<'_>
on clients andendpoint::IncomingRequest
on 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
assign
crate useful.
- Make
avatar_url
inr0::profile::set_avatar_url::Request
anOption
- Update type of
canonical_alias
inr0::directory::PublicRoomsChunk
fromOption<String>
toOption<RoomAliasId>
- Update
r0::room::create_room::CreationContent
- Change
federated
s type fromOption<bool>
tobool
- Add
predecessor
field
- Change
- Update
r0::push::get_pushrules_all
andr0::push::get_pushrules_global_scope
to use theRuleset
type 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_id
inr0::account::whoami
fromString
toruma_identifiers::UserId
- Update type of
limited
inr0::sync::sync_events::Timeline
fromOption<bool>
tobool
- Use
DeviceId
fordevice_id
field ofr0::session::login::Response
- Use
ruma_identifiers::ServerName
instead ofString
forserver_name
fields 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::SetPresence
has been moved and renamed. Usepresence::PresenceState
fromruma
orruma-common
.r0::push::Action
has been moved. Import it fromruma
orruma-common
.- Update type of
limit
inr0::user_directory::search_users
fromOption<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}
insignatures
fields ofr0::room::membership::ThirdPartySigned
. - Move
r0::directory::{Filter, PublicRoomsChunk, RoomNetwork}
to theruma-common
crate - Replace
r0::room::create_room::InitialStateEvent
withruma_events::InitialStateEvent
error::ErrorKind
no longer implementsCopy
,FromStr
- Switch from
AnyEvent
toAnyRoomEvent
inr0::search::search_events
- Move
r0::account::request_openid_token::TokenType
toruma-common
crate - Move
user: UserInfo
inr0::session::login::Request
toidentifier: UserIdentifier
inr0::session::login::LoginInfo::Password
r0::session::login::Request::new
takes onlylogin_info: LoginInfo
as a param
- Change
ruma_events::AnyEvent
toruma_events::AnySyncRoomEvent
inpush::get_notifications::Notification
- Use
ruma_identifiers::MxcUri
instead ofString
foravatar_url
fields 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::LoginType
to a non-exhaustive enum of structs. - Move
r0::receipt::ReceiptType
to theruma-common
crate
Improvements:
- Add method
into_event_content
forr0::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_room
r0::message::get_message_events
- Add
logout_devices
field tor0::account::change_password
- Add
r0::room::aliases
(introduced in r0.6.1) - Add constructors that use
ruma_identifiers::MxcUri
forRequest
in the following endpoints:r0::media::{ get_content, get_content_as_filename, get_content_thumbnail }
- Implement MSC2858 - Multiple SSO Identity Providers under the
unstable-pre-spec
feature flag:- Add the
r0::session::get_login_types::{IdentityProvider, IdentityProviderBrand}
types - Add the
r0::session::sso_login_with_provider
endpoint
- Add the
0.9.0
Bug fixes:
- Fix (de)serialization for
r0::media::get_content_thumnail::Response
- Make
r0::device::get_devices::Response::devices
public
Breaking changes:
- The
event_id
in 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::DeviceLists
fields - Change
r0::device::Device
fields according to the spec
Improvements:
r0::keys::AlgorithmAndDeviceId
now 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_name
parameter 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_parameters
field - Move to
r0::uiaa
module
- Rename to
- Add
room_network
parameter tor0::directory::get_public_rooms_filtered
to representinclude_all_networks
andthird_party_instance_id
Matrix fields - Update
r0::account::register
endpoint:- Remove
bind_email
request field (removed in r0.6.0) - Remove
inhibit_login
request field, makeaccess_token
anddevice_id
response fields optional (added in r0.4.0) - Remove deprecated
home_server
response field (removed in r0.4.0)
- Remove
- Update
r0::contact::get_contacts
endpoint to r0.6.0 - Change
UInt
timestamps toSystemTime
in:media::get_media_preview::Request
push::get_notifications::Notification
server::get_user_info::ConnectionInfo
device::Device
- Change all usages of
HashMap
toBTreeMap
- Change the messages type that gets sent out using the
r0::client_exchange::send_event_to_device
request. - Add
M_USER_DEACTIVATED
toerror::ErrorKind
- Make
display_name
field ofr0::membership::joined_events::RoomMember
optional - Update
r0::search::search_events
to r0.6.0 - Add
account_data
field tor0::sync::sync_events
- Rename
r0::client_exchange
tor0::to_device
Improvements:
- Add types for User-Interactive Authentication API:
r0::uiaa::{AuthFlow, UiaaInfo, UiaaResponse}
- Add missing serde attributes to
get_content_thumbnail
query parameters - Add missing
state
response field tor0::message::get_message_events
- Normalize
serde_json
imports - Remove dependency on the
url
crate
0.7.2
Bug fixes:
- Fix
create_room
requests without aninitial_state
field failing deserialization - Fix
sync_events
responses without adevice_one_time_keys_count
field 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_remote
parameter tor0::media::get_content
- Add missing parameters for
r0::room::create_room
- Moved
r0::room::create_room::Invite3pid
tor0::membership::Invite3pid
- Replaced
user_id
parameter ofr0::membership::invite_user
withrecipient
to 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
limit
request parameter ofr0::context::get_context
fromu8
toOption<js_int::UInt>
- Use
std::time::Duration
for 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
Error
type 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_features
tounversioned::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
filter
type 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::send
endpoints and remove module:- Move
r0::send::send_message_event
tor0::message::create_message_event
- Move
r0::send::send_state_event_for_empty_key
tor0::state:create_state_event_for_empty_key
- Move
r0::send::send_state_event_for_key
tor0::state:create_state_event_for_key
- Move
- Refactor
r0::sync
endpoints:- Move
r0::sync::get_member_events
tor0::membership::get_member_events
- Move
r0::sync::get_message_events
tor0::message::get_message_events
- Move
r0::sync::get_state_events
tor0::state::get_state_events
- Move
r0::sync::get_state_events_for_empty_key
tor0::state::get_state_events_for_empty_key
- Move
r0::sync::get_state_events_for_key
tor0::state::get_state_events_for_key
- Move
- Update endpoints for requesting account management tokens via email:
- Move
r0::account::request_password_change_token
tor0::account::request_password_change_token_via_email
- Move
r0::account::request_register_token
tor0::account::request_registration_token_via_email
- Modify
r0::account::request_registration_token_via_email
not to be rate-limited and require authentication
- Move
- Merge duplicate enums
r0::contact::get_contact::Medium
andr0::session::login::Medium
and move them tor0::thirdparty
Improvements:
- Add
r0::device
endpoints - 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::keys
endpoints (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_msisdn
r0::account::request_password_change_token_via_msisdn
r0::account::request_registration_token_via_msisdn
r0::account::request_3pid_management_token_via_email
- Update
r0::presence_get_presence
from r0.4.0 to r0.6.0 - Add
r0::account::bind_3pid
- Add
r0::account::delete_3pid
- Add
r0::account::unbind_3pid
- Add
r0::push
endpoints - 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::PublicRoomsChunk
tor0::directory::PublicRoomsChunk
- Move
r0::room::create_room::Visibility
tor0::room::Visibility
- Move
r0::account::register::AuthenticationData
tor0::account::AuthenticationData
Improvements:
- Update
r0::directory::get_public_rooms
from r0.3.0 to r0.6.0 - Add
r0::directory::get_public_rooms_filtered
(introduced upstream in r0.3.0) - Add
filter
optional 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_url
tor0::filter::RoomEventFilter
(introduced upstream in r0.3.0) - Update
r0::account::change_password
from r0.3.0 to r0.6.0- Add optional
auth
field
- Add optional