You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From this release forward, html5ever, xml5ever, markup5ever, and match_token are now released using a synced version number. Thus this release is version 0.35.0 of all of these crates.
Changes
Version numbers of all crates apart from web_atoms are now in sync. (#637)
===================
This release excludes some unnecessary things from the archive published to
crates.io. Specifically, fuzzing data and various shell scripts are now
excluded. If you run into problems, please file an issue.
Improvements:
#1319:
Switch from a Cargo exclude list to an include list, and exclude some
unnecessary stuff.
===================
This release fixes a cargo doc breakage on nightly when --cfg docsrs is
enabled. This caused documentation to fail to build on docs.rs.
Bug fixes:
BUG #1305:
Switches the doc_auto_cfg feature to doc_cfg on nightly for docs.rs builds.
===================
This release makes a bug fix in the new regex::Captures::get_match API
introduced in 1.12.0. There was an oversight with the lifetime parameter
for the Match returned. This is technically a breaking change, but given
that it was caught almost immediately and I've yanked the 1.12.0 release,
I think this is fine.
===================
This release contains a smattering of bug fixes, a fix for excessive memory
consumption in some cases and a new regex::Captures::get_match API.
Improvements:
FEATURE #1146:
Add Capture::get_match for returning the overall match without unwrap().
Bug fixes:
BUG #1083:
Fixes a panic in the lazy DFA (can only occur for especially large regexes).
BUG #1116:
Fixes a memory usage regression for large regexes (introduced in regex 1.9).
BUG #1195:
Fix universal start states in sparse DFA.
BUG #1295:
Fixes a panic when deserializing a corrupted dense DFA.
BUG 8f5d9479:
Make regex_automata::meta::Regex::find consistently return None when WhichCaptures::None is used.
===================
This is a new patch release of regex with some minor fixes. A larger number
of typo or lint fix patches were merged. Also, we now finally recommend using std::sync::LazyLock.
Improvements:
BUG #1217:
Switch recommendation from once_cell to std::sync::LazyLock.
BUG #1225:
Add DFA::set_prefilter to regex-automata.
Bug fixes:
BUG #1165:
Remove std dependency from perf-literal-multisubstring crate feature.
BUG #1165:
Clarify the meaning of (?R)$ in the documentation.
BUG #1281:
Remove fuzz/ and record/ directories from published crate on crates.io.
Fix the Clone implementation of the Owned* types generated with the IdDst macro. It used to always create a new instance from the borrowed type instead of using the Clone implementation of the internal type.
Improvements:
Add AppserviceUserIdentity::maybe_add_to_uri() to add an identity assertion to an http::Uri. This allows to reimplement the behavior of OutgoingRequestAppserviceExt::try_into_http_request_with_identity() outside of Ruma, if using this trait is inconvenient.
Add MatrixVersion::V1_17.
JoinRule holds arbitrary data in its fallback variant, with can be accessed with JoinRule::data(). It also means that this type won't fail to serialize for undocumented variants anymore.
Merge the PartialOrdAsRefStr derive macro into OrdAsRefStr, so both traits are always implemented using the same logic.
Rename the PartialEqAsRefStr derive macro to EqAsRefStr and make it implement both PartialEq and Eq.
The StringEnum derive macro also implements Ord, PartialOrd, Eq and PartialEq using the AsRef<str> implementation of the enum.
The predefined push rules for legacy mentions PatternedPushRule::contains_user_name(), ConditionalPushRule::contains_display_name() and ConditionalPushRule::roomnotif() were removed, according to MSC4210. Their rule IDs are still available in PredefinedContentRuleId and PredefinedOverrideRuleId, and they are still supported in PatternedPushRule::applies_to() and ConditionalPushRule::applies(), for backwards-compatibility for clients.
Macros no longer support importing the ruma and ruma-events crate from the matrix-sdk-appservice crate. This crate was dropped 2 years ago.
Metadata was changed from a struct to a trait. It is a supertrait of OutgoingRequest and IncomingRequest, and its fields are now associated types or constants.
The authentication field of the Metadata struct is now an associated type named Authentication. The AuthScheme enum was changed from an enum to a trait. Its variants are now structs implementing the AuthScheme trait. The None variant was renamed to NoAuthentication and the ServerSignatures variant was moved to ruma-federation-api. The access_token argument of OutgoingRequest::try_into_http_request() is renamed to authentication_input and is generic over the Input associated type of the AuthScheme trait.
The history field of the Metadata struct is now an associated constant named PATH_BUILDER. The type of this constant is defined by the PathBuilder associated type, which must implement the PathBuilder trait. The considering argument of OutgoingRequest::try_into_http_request() is renamed to path_builder_input and is generic over the Input associated type of the PathBuilder trait. The Input of VersionHistory was changed from &'_ SupportedVersions to Cow<'_, SupportedVersions>.
The other fields of the Metadata struct are now associated constants with the same name converted to uppercase.
The metadata! macro generates the Metadata trait implementation for a type named Request by default. This type can be changed with an @for setting.
The http_headers module is now behind the api cargo feature.
OutgoingRequestAppserviceExt::try_into_http_request_with_user_id() is renamed to try_into_http_request_with_identity() and takes an AppserviceUserIdentity instead of a UserId. This allows to specify a device ID, according to MSC4326.
IntoHttpError::NeedsAuthentication is a newtype variant renamed to Authentication that accepts any error type.
Remove support for the following rules for the StringEnum, AsRefStr and FromString derive macros' rename_all attribute, because they either can be replaced by the (prefix = "prefix", rule = "rule") syntax or are unused as far as we know:
"PascalCase"
"SCREAMING-KEBAB-CASE"
"m.dotted.case"
"M_MATRIX_ERROR_CASE"
"m.lowercase"
"m.snake_case"
".m.rule.snake_case"
"m.role.snake_case"
Bug fixes:
With the request and response attribute macros, the Content-Type header defaults to application/octet-stream instead of application/json if the raw_body attribute is set on a field.
Fix the check to make sure that all paths used to build VersionHistory contain the same number of variables. It was broken since the syntax was changed from :variable to {variable}.
Improvements:
Add org.matrix.msc4380 unstable feature support to /versions.
Add MatrixVersion::V1_16
Remove support for the org.matrix.hydra.11 room version and the corresponding unstable-hydra cargo feature. It should only have been used for development, and room version 12 should be used instead.
Metadata::make_endpoint_url() is also available as VersionHistory::make_endpoint_url().
PushCondition::ContainsDisplayName is deprecated, according to MSC4210.
Add SinglePath as a PathBuilder. It should be used for APIs that don't have a /versions endpoint and for endpoints that can't be versioned.
AuthScheme data can be extracted from incoming HTTP requests with AuthScheme::extract_authentication().
The StringEnum, AsRefStr and FromString derive macros allow to set a custom prefix alongside the rule to rename all the variants, like this: #[ruma_enum(rename_all(prefix = "m.", rule = "snake_case"))]. The previous syntax using #[ruma_enum(rename_all = "snake_case")] still works and assumes that the prefix is empty.
PushCondition::applies, ConditionalPushRule::applies, AnyPushRuleRef::applies, AnyPushRule::applies, Ruleset::applies, Ruleset::get_actions, Ruleset::get_match all became async, to allow for lazy evaluation of push rules.
UserId parsing and deserialization are now compatible with all non-compliant user IDs in the wild by default, due to a clarification in the spec.
The compat-user-id cargo feature was removed.
UserId::validate_historical() and UserId::validate_strict() allow to check for spec compliance.
The (owned_)user_id! macros always validate against the strict grammar in the spec, regardless of the compat features that are enabled.
(owned_)room_id! macros disallow the NUL byte, due to a clarification in the spec.
(owned_)room_alias_id! macros disallow the NUL byte for the localpart, due to a clarification in the spec.
MatrixVersion does not implement Display anymore as it is not correct to convert V1_0 to a string. Instead MatrixVersion::as_str() can be used that only returns None for that same variant.
MatrixVersion::(into/from)_parts are no longer exposed as public methods. They were usually used to sort MatrixVersions, now the PartialOrd and Ord implementations can be used instead.
Protocol and ProtocolInit are generic on the protocol instance type.
Add support for endpoints that only allow appservices to call them, renaming AppserviceToken to AppserviceTokenOptional, with the new variant taking AppserviceToken's place.
The redact* functions in canonical_json take RedactionRules instead of RoomVersionId. This avoids undefined behavior for unknown room versions.
OutgoingRequest::try_into_http_request(), OutgoingRequestAppserviceExt::try_into_http_request_with_user_id() and Metadata::make_endpoint_url() take a SupportedVersions instead of a &[MatrixVersion].
The metadata macro allows to specify stable and unstable feature flags for the paths in history.
VersionHistory::new() takes a &'static [(Option<&'static str>, &'static str)] for the unstable paths and a &'static [(StablePathSelector, &'static str)] for the stable paths.
VersionHistory::unstable_paths() returns an impl Iterator<Item = (Option<&'static str>, &'static str)>.
VersionHistory::stable_paths() returns an impl Iterator<Item = (StablePathSelector, &'static str)>.
VersionHistory::stable_endpoint_for() was renamed to version_path().
VersioningDecision's Stable variant was renamed to Version and Unstable was renamed to Feature.
The syntax of variables in endpoint paths segments in the metadata macro has changed: the variable must now be surrounded by {} instead of being preceded by :. For example /_matrix/client/foo/{bar}. This matches the OpenAPI syntax and the new syntax supported by axum 0.8.
JoinRule and its associated types where imported from ruma-events into the room module.
space::SpaceRoomJoinRule was removed and replaced by room::JoinRuleSummary.
directory::PublicRoomJoinRule was moved and renamed to room::JoinRuleKind.
It can be constructed with JoinRule::kind() and JoinRuleSummary::kind().
Make PushConditionRoomCtx and PushConditionPowerLevelsCtx non-exhaustive.
The versions field of SupportedVersions is now a BTreeSet<MatrixVersion>, to make sure that the versions are always deduplicated and sorted.
NotificationPowerLevels now takes a NotificationPowerLevelsKey for the key, an enum that accepts any string.
The key field of PushCondition::SenderNotificationPermission uses the same type.
RoomId::new() was renamed to RoomId::new_v1(), as several formats are now supported for this type.
StateResolutionVersion::V2 now takes StateResolutionV2Rules as a unit field, to specify tweaks to be used when resolving state with version 2 of the state resolution algorithm.
This field can be accessed with StateResolutionVersion::v2_rules, returning None if state_res is not StateResolutionVersion::V2.
StateResolutionV2Rules has the following fields:
begin_iterative_auth_checks_with_empty_state_map, to determine whether to begin the first phase of iterative auth checks with an empty state map.
consider_conflicted_state_subgraph, to determine whether to include the conflicted state subgraph in the full conflicted state.
Bug fix:
Set the disposition of RoomVersionRules::MSC2870 as unstable.
Improvements:
Implement the Zeroize trait for the Base64 type.
ProtocolInstance has an instance_id field, due to a clarification in the spec.
The unstable-unspecified cargo feature was removed.
Add AnyKeyName as a helper type to use KeyId APIs without validating the key name.
Add IdentityServerBase64PublicKey as a helper type to decode identity server public keys encoded using standard or URL-safe base64.
RoomVersion was imported from ruma-state-res and renamed to RoomVersionRules, along with the following changes:
RoomVersionRules::new() was removed and replaced by RoomVersionId::rules().
The RoomDisposition enum was renamed to RoomVersionDisposition.
The event_format field was renamed to event_id_format and the EventFormat enum was renamed to EventIdFormat.
The tweaks in the authorization rules were extracted into the AuthorizationRules struct, which is available in the authorization field of RoomVersionRules.
The special_case_aliases_auth field was renamed to special_case_room_aliases.
The strict_canonicaljson field was renamed to strict_canonical_json.
The extra_redaction_checks field was renamed to special_case_room_redaction.
The allow_knocking field was renamed to knocking.
The restricted_join_rules field was renamed to restricted_join_rule.
RedactionRules was added under the redaction field.
SignaturesRules was added under the signatures field.
RoomVersionId has an MSC2870 variant for the org.matrix.msc2870 room version defined in MSC2870.
Add OutgoingRequest::is_supported() and VersionHistory::is_supported() to be able to know if a server advertises support for an endpoint.
Re-export ID_MAX_BYTES from ruma-identifiers-validation.
Implement From<PublicRoomsChunk> for RoomSummary.
Add content_field_redacts field to RedactionRules, which is used to determine whether the content or top-level redacts field should be used to determine what event an m.room.redaction event redacts.
Add SpaceChildOrder which allows to validate the order of an m.space.child event.
Add support for room version 12 and its unstable version org.matrix.hydra.11.
Add explicitly_privilege_room_creators and additional_room_creators to AuthorizationRules to indicate whether room creators are considered to have "infinite" power level and whether additional room creators can be specified with the content.additional_creators field of an m.room.create event respectively.
Add RoomPowerLevelsRules, to provide tweaks to how the power level of a user is determined, and add it to PushConditionPowerLevelsCtx via the rules field.
Add room_id_format to RoomVersionRules, to identify the format to use for room IDs depending on the room version.
Add RoomId::new_v2() for the new format of room IDs. RoomId::strip_sigil() allows to access the reference hash used in that format.
Add unstable support for in-app-only notifications as per MSC3768 under a new unstable-msc3768 feature.
Add room_create_event_id_as_room_id to AuthorizationRules to indicate whether the reference hash of the m.room.create event is used to construct the room ID. It has other implications, like the m.room.create event not having a room ID, and the m.room.create event not listed in the auth_events of a PDU.
Add require_room_create_room_id and allow_room_create_in_auth_events to EventFormatRules to indicate whether the room ID is required for m.room.create events and whether the event ID of the m.room.create is allowed in the auth_events, respectively.
Fix serde::default_on_error deserialization helper. It was working with serde_json::from_value but not other functions like serde_json::from_(str/slice). It now works with all 3 methods but is limited to deserializing JSON.
Support catching panics, and raising JS Exceptions for them, when building
with panic=unwind on nightly, with the std feature. #4790
Added support for passing &[JsValue] slices from Rust to JavaScript functions. #4872
Added private attribute on exported types to allow generating
exports and structs as implicit internal exported types for function
arguments and returns, without exporting them on the public interface. #4788
Added iter_custom and iter_custom_future for bench to do custom measurements. #4841
Changed WASM import namespace from wbg to ./{name}_bg.js for web and no-modules targets,
aligning with bundler and experimental-nodejs-module to enable cross-target WASM sharing. #4850
Replace WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUT and WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIX with parsing LLVM_PROFILE_FILE analogous to Rust test coverage. #4367
Typescript custom sections sorted alphabetically across codegen-units. #4738
Optimized demangling performance by removing redundant string formatting #4867
Changed WASM import namespace from __wbindgen_placeholder__ to ./{name}_bg.js for node targets, aligning with bundler and experimental-nodejs-module to enable cross-target WASM sharing. #4869
Changed WASM import namespace from __wbindgen_placeholder__ to ./{name}_bg.js for deno and module targets, aligning with node, bundler and experimental-nodejs-module to enable cross-target WASM sharing. #4871
Consolidate JavaScript glue generation
Move target-specific JS emission into a single finalize phase, reducing
branching and making the generated output more consistent across targets.
Centralize JS output assembly in a single finalize phase (exports/imports/wasm loading).
Make --target experimental-nodejs-module emit one JS entrypoint (no separate _bg.js).
Ensure Node (CJS/ESM) and bundler entrypoints only expose public exports (no internal import shims).
Add /* @​ts-self-types="./<name>.d.ts" */ to JS entrypoints for JSR/Deno resolution.
Fixed duplicate symbols caused by enabling v0 mangling. #4822
Fixed a multithreaded wasm32+atomics race where Atomics.waitAsync promise callbacks could call run without waking first, causing sporadic panics. #4821
TypedArray::new_from_slice(&[T]) constructor that allows to create a
JS-owned TypedArray from a Rust slice. #4555
Added Function::call4 and Function::bind4 through Function::call9Function::bind9 methods for calling and binding JavaScript functions with 4-9 arguments. #4572
Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl. #4509
Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/wysiwyg/Cargo.toml --package wasm-bindgen@0.2.100 --precise 0.2.108
Updating crates.io index
error: failed to select a version for the requirement `wasm-bindgen = "=0.2.100"`
candidate versions found which didn't match: 0.2.108
location searched: crates.io index
required by package `web-sys v0.3.77`
... which satisfies dependency `web-sys = "^0.3.60"` (locked to 0.3.77) of package `wysiwyg v2.41.1 (/tmp/renovate/repos/github/element-hq/matrix-rich-text-editor/crates/wysiwyg)`
... which satisfies path dependency `wysiwyg` (locked to 2.41.1) of package `uniffi-wysiwyg-composer v2.41.1 (/tmp/renovate/repos/github/element-hq/matrix-rich-text-editor/bindings/wysiwyg-ffi)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path bindings/wysiwyg-wasm/Cargo.toml --package js-sys@0.3.77 --precise 0.3.85
Updating crates.io index
error: failed to select a version for the requirement `js-sys = "=0.3.77"`
candidate versions found which didn't match: 0.3.85
location searched: crates.io index
required by package `web-sys v0.3.77`
... which satisfies dependency `web-sys = "^0.3.60"` (locked to 0.3.77) of package `wysiwyg v2.41.1 (/tmp/renovate/repos/github/element-hq/matrix-rich-text-editor/crates/wysiwyg)`
... which satisfies path dependency `wysiwyg` (locked to 2.41.1) of package `uniffi-wysiwyg-composer v2.41.1 (/tmp/renovate/repos/github/element-hq/matrix-rich-text-editor/bindings/wysiwyg-ffi)`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.0.0→1.0.40.30.0→0.38.02.0.6→2.0.70.3.77→0.3.851.21.1→1.21.31.11.1→1.12.30.15.0→0.17.00.12.0→0.13.00.27.1→0.27.20.27.1→0.27.2789a902→e39dac5789a902→e39dac5789a902→e39dac52.5.4→2.5.80.2.100→0.2.1080.4.50→0.4.580.3.50→0.3.580.3.77→0.3.851.2.0→1.2.1Release Notes
rust-lang/cfg-if (cfg-if)
v1.0.4Compare Source
cfg(true)andcfg(false)(#99)v1.0.3Compare Source
@__identityrule."v1.0.2Compare Source
@__identityrule.v1.0.1Compare Source
compiler-builtinsfromrustc-dep-of-stddependenciesservo/html5ever (html5ever)
v0.35.0: 0.35.0From this release forward,
html5ever,xml5ever,markup5ever, andmatch_tokenare now released using a synced version number. Thus this release is version0.35.0of all of these crates.Changes
web_atomsare now in sync. (#637)maccrate. (#639)TreeBuilderoption. (#631)scripting_enabledandiframe_srcdocoptions (#631)TreeSink::attach_declarative_shadow_root(#633)dtolnay/indoc (indoc)
v2.0.7Compare Source
indoc! {c"..."},indoc! {cr"..."}(#67)matklad/once_cell (once_cell)
v1.21.3Compare Source
race: #284,#285.
v1.21.2Compare Source
race: #278.rust-lang/regex (regex)
v1.12.3Compare Source
===================
This release excludes some unnecessary things from the archive published to
crates.io. Specifically, fuzzing data and various shell scripts are now
excluded. If you run into problems, please file an issue.
Improvements:
Switch from a Cargo
excludelist to anincludelist, and exclude someunnecessary stuff.
v1.12.2Compare Source
===================
This release fixes a
cargo docbreakage on nightly when--cfg docsrsisenabled. This caused documentation to fail to build on docs.rs.
Bug fixes:
Switches the
doc_auto_cfgfeature todoc_cfgon nightly for docs.rs builds.v1.12.1Compare Source
===================
This release makes a bug fix in the new
regex::Captures::get_matchAPIintroduced in
1.12.0. There was an oversight with the lifetime parameterfor the
Matchreturned. This is technically a breaking change, but giventhat it was caught almost immediately and I've yanked the
1.12.0release,I think this is fine.
v1.12.0Compare Source
===================
This release contains a smattering of bug fixes, a fix for excessive memory
consumption in some cases and a new
regex::Captures::get_matchAPI.Improvements:
Add
Capture::get_matchfor returning the overall match withoutunwrap().Bug fixes:
Fixes a panic in the lazy DFA (can only occur for especially large regexes).
Fixes a memory usage regression for large regexes (introduced in
regex 1.9).Fix universal start states in sparse DFA.
Fixes a panic when deserializing a corrupted dense DFA.
Make
regex_automata::meta::Regex::findconsistently returnNonewhenWhichCaptures::Noneis used.v1.11.3Compare Source
===================
This is a small patch release with an improvement in memory usage in some
cases.
Improvements:
Improve memory usage by trimming excess memory capacity in some spots.
v1.11.2Compare Source
===================
This is a new patch release of
regexwith some minor fixes. A larger numberof typo or lint fix patches were merged. Also, we now finally recommend using
std::sync::LazyLock.Improvements:
Switch recommendation from
once_celltostd::sync::LazyLock.Add
DFA::set_prefiltertoregex-automata.Bug fixes:
Remove
stddependency fromperf-literal-multisubstringcrate feature.Clarify the meaning of
(?R)$in the documentation.Remove
fuzz/andrecord/directories from published crate on crates.io.ruma/ruma (ruma-common)
v0.17.1: ruma-common 0.17.1Compare Source
Bug fixes:
Cloneimplementation of theOwned*types generated with theIdDstmacro. It used to always create a new instance from the borrowed type instead of using theCloneimplementation of the internal type.Improvements:
AppserviceUserIdentity::maybe_add_to_uri()to add an identity assertion to anhttp::Uri. This allows to reimplement the behavior ofOutgoingRequestAppserviceExt::try_into_http_request_with_identity()outside of Ruma, if using this trait is inconvenient.MatrixVersion::V1_17.JoinRuleholds arbitrary data in its fallback variant, with can be accessed withJoinRule::data(). It also means that this type won't fail to serialize for undocumented variants anymore.v0.17.0: ruma-common 0.17.0Compare Source
Breaking changes:
PartialOrdAsRefStrderive macro intoOrdAsRefStr, so both traits are always implemented using the same logic.PartialEqAsRefStrderive macro toEqAsRefStrand make it implement bothPartialEqandEq.StringEnumderive macro also implementsOrd,PartialOrd,EqandPartialEqusing theAsRef<str>implementation of the enum.PatternedPushRule::contains_user_name(),ConditionalPushRule::contains_display_name()andConditionalPushRule::roomnotif()were removed, according to MSC4210. Their rule IDs are still available inPredefinedContentRuleIdandPredefinedOverrideRuleId, and they are still supported inPatternedPushRule::applies_to()andConditionalPushRule::applies(), for backwards-compatibility for clients.rumaandruma-eventscrate from thematrix-sdk-appservicecrate. This crate was dropped 2 years ago.Metadatawas changed from astructto atrait. It is a supertrait ofOutgoingRequestandIncomingRequest, and its fields are now associated types or constants.authenticationfield of theMetadatastruct is now an associated type namedAuthentication. TheAuthSchemeenum was changed from anenumto atrait. Its variants are now structs implementing theAuthSchemetrait. TheNonevariant was renamed toNoAuthenticationand theServerSignaturesvariant was moved to ruma-federation-api. Theaccess_tokenargument ofOutgoingRequest::try_into_http_request()is renamed toauthentication_inputand is generic over theInputassociated type of theAuthSchemetrait.historyfield of theMetadatastruct is now an associated constant namedPATH_BUILDER. The type of this constant is defined by thePathBuilderassociated type, which must implement thePathBuildertrait. Theconsideringargument ofOutgoingRequest::try_into_http_request()is renamed topath_builder_inputand is generic over theInputassociated type of thePathBuildertrait. TheInputofVersionHistorywas changed from&'_ SupportedVersionstoCow<'_, SupportedVersions>.Metadatastruct are now associated constants with the same name converted to uppercase.metadata!macro generates theMetadatatrait implementation for a type namedRequestby default. This type can be changed with an@forsetting.http_headersmodule is now behind theapicargo feature.OutgoingRequestAppserviceExt::try_into_http_request_with_user_id()is renamed totry_into_http_request_with_identity()and takes anAppserviceUserIdentityinstead of aUserId. This allows to specify a device ID, according to MSC4326.IntoHttpError::NeedsAuthenticationis a newtype variant renamed toAuthenticationthat accepts any error type.StringEnum,AsRefStrandFromStringderive macros'rename_allattribute, because they either can be replaced by the(prefix = "prefix", rule = "rule")syntax or are unused as far as we know:"PascalCase""SCREAMING-KEBAB-CASE""m.dotted.case""M_MATRIX_ERROR_CASE""m.lowercase""m.snake_case"".m.rule.snake_case""m.role.snake_case"Bug fixes:
requestandresponseattribute macros, theContent-Typeheader defaults toapplication/octet-streaminstead ofapplication/jsonif theraw_bodyattribute is set on a field.VersionHistorycontain the same number of variables. It was broken since the syntax was changed from:variableto{variable}.Improvements:
org.matrix.msc4380unstable feature support to/versions.MatrixVersion::V1_16org.matrix.hydra.11room version and the correspondingunstable-hydracargo feature. It should only have been used for development, and room version 12 should be used instead.Metadata::make_endpoint_url()is also available asVersionHistory::make_endpoint_url().PushCondition::ContainsDisplayNameis deprecated, according to MSC4210.SinglePathas aPathBuilder. It should be used for APIs that don't have a/versionsendpoint and for endpoints that can't be versioned.AuthSchemedata can be extracted from incoming HTTP requests withAuthScheme::extract_authentication().StringEnum,AsRefStrandFromStringderive macros allow to set a custom prefix alongside the rule to rename all the variants, like this:#[ruma_enum(rename_all(prefix = "m.", rule = "snake_case"))]. The previous syntax using#[ruma_enum(rename_all = "snake_case")]still works and assumes that the prefix is empty.v0.16.0: ruma-common 0.16.0Compare Source
Breaking changes:
PushCondition::applies,ConditionalPushRule::applies,AnyPushRuleRef::applies,AnyPushRule::applies,Ruleset::applies,Ruleset::get_actions,Ruleset::get_matchall became async, to allow for lazy evaluation of push rules.UserIdparsing and deserialization are now compatible with all non-compliant user IDs in the wild by default, due to a clarification in the spec.compat-user-idcargo feature was removed.UserId::validate_historical()andUserId::validate_strict()allow to check for spec compliance.(owned_)user_id!macros always validate against the strict grammar in the spec, regardless of the compat features that are enabled.(owned_)room_id!macros disallow theNULbyte, due to a clarification in the spec.(owned_)room_alias_id!macros disallow theNULbyte for the localpart, due to a clarification in the spec.MatrixVersiondoes not implementDisplayanymore as it is not correct to convertV1_0to a string. InsteadMatrixVersion::as_str()can be used that only returnsNonefor that same variant.MatrixVersion::(into/from)_partsare no longer exposed as public methods. They were usually used to sortMatrixVersions, now thePartialOrdandOrdimplementations can be used instead.ProtocolandProtocolInitare generic on the protocol instance type.AppserviceTokentoAppserviceTokenOptional, with the new variant takingAppserviceToken's place.redact*functions incanonical_jsontakeRedactionRulesinstead ofRoomVersionId. This avoids undefined behavior for unknown room versions.OutgoingRequest::try_into_http_request(),OutgoingRequestAppserviceExt::try_into_http_request_with_user_id()andMetadata::make_endpoint_url()take aSupportedVersionsinstead of a&[MatrixVersion].metadatamacro allows to specify stable and unstable feature flags for the paths inhistory.VersionHistory::new()takes a&'static [(Option<&'static str>, &'static str)]for the unstable paths and a&'static [(StablePathSelector, &'static str)]for the stable paths.VersionHistory::unstable_paths()returns animpl Iterator<Item = (Option<&'static str>, &'static str)>.VersionHistory::stable_paths()returns animpl Iterator<Item = (StablePathSelector, &'static str)>.VersionHistory::stable_endpoint_for()was renamed toversion_path().VersioningDecision'sStablevariant was renamed toVersionandUnstablewas renamed toFeature.metadatamacro has changed: the variable must now be surrounded by{}instead of being preceded by:. For example/_matrix/client/foo/{bar}. This matches the OpenAPI syntax and the new syntax supported by axum 0.8.JoinRuleand its associated types where imported fromruma-eventsinto theroommodule.space::SpaceRoomJoinRulewas removed and replaced byroom::JoinRuleSummary.directory::PublicRoomJoinRulewas moved and renamed toroom::JoinRuleKind.JoinRule::kind()andJoinRuleSummary::kind().PushConditionRoomCtxandPushConditionPowerLevelsCtxnon-exhaustive.versionsfield ofSupportedVersionsis now aBTreeSet<MatrixVersion>, to make sure that the versions are always deduplicated and sorted.NotificationPowerLevelsnow takes aNotificationPowerLevelsKeyfor thekey, an enum that accepts any string.keyfield ofPushCondition::SenderNotificationPermissionuses the same type.RoomId::new()was renamed toRoomId::new_v1(), as several formats are now supported for this type.StateResolutionVersion::V2now takesStateResolutionV2Rulesas a unit field, to specify tweaks to be used when resolving state with version 2 of the state resolution algorithm.StateResolutionVersion::v2_rules, returningNoneifstate_resis notStateResolutionVersion::V2.StateResolutionV2Ruleshas the following fields:begin_iterative_auth_checks_with_empty_state_map, to determine whether to begin the first phase of iterative auth checks with an empty state map.consider_conflicted_state_subgraph, to determine whether to include the conflicted state subgraph in the full conflicted state.Bug fix:
dispositionofRoomVersionRules::MSC2870as unstable.Improvements:
Zeroizetrait for theBase64type.ProtocolInstancehas aninstance_idfield, due to a clarification in the spec.unstable-unspecifiedcargo feature was removed.AnyKeyNameas a helper type to useKeyIdAPIs without validating the key name.IdentityServerBase64PublicKeyas a helper type to decode identity server public keys encoded using standard or URL-safe base64.RoomVersionwas imported from ruma-state-res and renamed toRoomVersionRules, along with the following changes:RoomVersionRules::new()was removed and replaced byRoomVersionId::rules().RoomDispositionenum was renamed toRoomVersionDisposition.event_formatfield was renamed toevent_id_formatand theEventFormatenum was renamed toEventIdFormat.AuthorizationRulesstruct, which is available in theauthorizationfield ofRoomVersionRules.special_case_aliases_authfield was renamed tospecial_case_room_aliases.strict_canonicaljsonfield was renamed tostrict_canonical_json.extra_redaction_checksfield was renamed tospecial_case_room_redaction.allow_knockingfield was renamed toknocking.restricted_join_rulesfield was renamed torestricted_join_rule.RedactionRuleswas added under theredactionfield.SignaturesRuleswas added under thesignaturesfield.RoomVersionIdhas anMSC2870variant for theorg.matrix.msc2870room version defined in MSC2870.OutgoingRequest::is_supported()andVersionHistory::is_supported()to be able to know if a server advertises support for an endpoint.ID_MAX_BYTESfromruma-identifiers-validation.From<PublicRoomsChunk>forRoomSummary.content_field_redactsfield toRedactionRules, which is used to determine whether thecontentor top-levelredactsfield should be used to determine what event anm.room.redactionevent redacts.SpaceChildOrderwhich allows to validate theorderof anm.space.childevent.org.matrix.hydra.11.explicitly_privilege_room_creatorsandadditional_room_creatorstoAuthorizationRulesto indicate whether room creators are considered to have "infinite" power level and whether additional room creators can be specified with thecontent.additional_creatorsfield of anm.room.createevent respectively.RoomPowerLevelsRules, to provide tweaks to how the power level of a user is determined, and add it toPushConditionPowerLevelsCtxvia therulesfield.room_id_formattoRoomVersionRules, to identify the format to use for room IDs depending on the room version.RoomId::new_v2()for the new format of room IDs.RoomId::strip_sigil()allows to access the reference hash used in that format.unstable-msc3768feature.room_create_event_id_as_room_idtoAuthorizationRulesto indicate whether the reference hash of them.room.createevent is used to construct the room ID. It has other implications, like them.room.createevent not having a room ID, and them.room.createevent not listed in theauth_eventsof a PDU.require_room_create_room_idandallow_room_create_in_auth_eventstoEventFormatRulesto indicate whether the room ID is required form.room.createevents and whether the event ID of them.room.createis allowed in theauth_events, respectively.v0.15.4: ruma-common 0.15.4Compare Source
Bug fix:
serde::default_on_errordeserialization helper. It was working withserde_json::from_valuebut not other functions likeserde_json::from_(str/slice). It now works with all 3 methods but is limited to deserializing JSON.v0.15.3: ruma-common 0.15.3Compare Source
Improvements:
RoomSummarythat represents the summary of a room's state.From<RoomSummary>forPublicRoomsChunkMatrixVersion::V1_15.PublicRoomJoinRulenow includes all possible join rule kinds, due to a clarification in Matrix 1.15.serde::default_on_error()as a helper to ignore errors during deserialization.PublicRoomJoinRuleandSpaceRoomJoinRule.FeatureFlagas an enum whose variants are the flags of features supported by Ruma.SupportedVersions, a type to parse/versionsresponses to get lists of supported versions and features.v0.15.2: ruma-common 0.15.2Compare Source
Bug fixes:
MatrixVersion::V1_0now also matches Identity Service API versions r0.2.0 to r0.3.0.RUMA_UNSTABLE_EXHAUSTIVE_TYPESenvironment variableImprovements:
MatrixVersionimplementsPartialOrdandOrd. The variants are ordered by release date, with a newer version being greater than an older version.SignaturesimplementsIntoIteratorPartialEqAsRefStr,Eq,PartialOrdAsRefStr,OrdAsRefStrforruma_common::media::Method.DeviceId::new()generates a string with 10 chars instead of 8.ignore_invalid_vec_items, to assist deserialization ofVecs, where invalid items should be ignored.MatrixVersion::V1_14.oknozor/speculoos (speculoos)
v0.13.0Compare Source
What's Changed
New Contributors
Full Changelog: oknozor/speculoos@0.12.0...0.13.0
Peternator7/strum (strum)
v0.27.2Compare Source
#141: Adding support for doc comments on
EnumDiscriminantsgenerated type.#435:allow discriminants on empty enum.
#443: Change enum table callbacks to FnMut.
#444: Add
#[automatically_derived]to theimpls by @dandedotdev in #444#440: Implement a
suffixattribute for serialization of enum variants.#446: Drop needless
rustversiondependency.servo/rust-url (url)
v2.5.8Compare Source
v2.5.7What's Changed
v.2.5.6
v.2.5.7
New Contributors
Full Changelog: servo/rust-url@v2.5.5...v2.5.7
v2.5.5Compare Source
What's Changed
Mimeby @mrobinson in #1047cargo clippy --fix -- -Wclippy::use_selfby @mrobinson in #1048Url::domaindocs to show that it includes subdomain by @supercoolspy in #1057New Contributors
Full Changelog: servo/rust-url@v2.5.4...v2.5.5
wasm-bindgen/wasm-bindgen (wasm-bindgen)
v0.2.108Compare Source
Fixed
panic=unwindbuilds for non-Wasm targets would triggerUnwindSafeassertions.#4903
v0.2.107Compare Source
Added
Support catching panics, and raising JS Exceptions for them, when building
with panic=unwind on nightly, with the
stdfeature.#4790
Added support for passing
&[JsValue]slices from Rust to JavaScript functions.#4872
Added
privateattribute on exported types to allow generatingexports and structs as implicit internal exported types for function
arguments and returns, without exporting them on the public interface.
#4788
Added
iter_customanditer_custom_futurefor bench to do custom measurements.#4841
Added Window Management API.
#4843
Changed
Changed WASM import namespace from
wbgto./{name}_bg.jsforwebandno-modulestargets,aligning with
bundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#4850
Replace
WASM_BINDGEN_UNSTABLE_TEST_PROFRAW_OUTandWASM_BINDGEN_UNSTABLE_TEST_PROFRAW_PREFIXwith parsingLLVM_PROFILE_FILEanalogous to Rust test coverage.#4367
Typescript custom sections sorted alphabetically across codegen-units.
#4738
Optimized demangling performance by removing redundant string formatting
#4867
Changed WASM import namespace from
__wbindgen_placeholder__to./{name}_bg.jsfornodetargets, aligning withbundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#4869
Changed WASM import namespace from
__wbindgen_placeholder__to./{name}_bg.jsfordenoandmoduletargets, aligning withnode,bundlerandexperimental-nodejs-moduleto enable cross-target WASM sharing.#4871
Consolidate JavaScript glue generation
Move target-specific JS emission into a single finalize phase, reducing
branching and making the generated output more consistent across targets.
--target experimental-nodejs-moduleemit one JS entrypoint (no separate_bg.js)./* @​ts-self-types="./<name>.d.ts" */to JS entrypoints for JSR/Deno resolution.#4879
Forward worker errors to test output in the test runner.
#4855
Fixed
Fix: Include doc comments in TypeScript definitions for classes
#4858
Interpreter: support try_table blocks
#4862
Interpreter: Stop interpretting descriptor after
__wbindgen_describe_cast#4862
v0.2.106Compare Source
Added
New MSRV policy, and bump of the MSRV fo 1.71.
#4801
Added typed
thissupport in the first argument in free function exports viaa new
#[wasm_bindgen(this)]attribute.#4757
Added
reexportattribute for imports to support re-exporting imported types,with optional renaming.
#4759
Added
js_namespaceattribute on exported types, mirroring the importsemantics to enable arbitrarily nested exported interface objects.
#4744
Added 'container' attribute to
ScrollIntoViewOptions#4806
Updated and refactored output generation to use alphabetical ordering
of declarations.
#4813
Added benchmark support to
wasm-bindgen-test.#4812
#4823
Fixed
Fixed node test harness getting stuck after tests completed.
#4776
Quote names containing colons in generated .d.ts.
#4488
Fixes TryFromJsValue for structs JsValue stack corruption on failure.
#4786
Fixed
wasm-bindgen-test-runneroutputting empty line when using the--listoption. In particular,cargo-nextestnow works correctly.#4803
It now works to build with
-Cpanic=unwind.#4796
#4783
#4782
Fixed duplicate symbols caused by enabling v0 mangling.
#4822
Fixed a multithreaded wasm32+atomics race where
Atomics.waitAsyncpromise callbacks could callrunwithout waking first, causing sporadic panics.#4821
Removed
v0.2.105Compare Source
Added
Added
Math::PIbinding tojs_sys, exposing the ECMAScriptMath.PIconstant.#4748
Added ability to use
--keep-lld-exportsinwasm-bindgen-test-runnerby setting theWASM_BINDGEN_KEEP_LLD_EXPORTSenvironment variable.#4736
Added
CookieStoreAPI.#4706
Added
run_cli_with_argslibrary functions to allwasm_bindgen_clientrypoints.#4710
Added
get_rawandset_rawforWebAssembly.Table.#4701
Added
new_with_valueandgrow_with_valueforWebAssembly.Table.#4698
Added better support for async stack traces when building in debug mode.
#4711
Extended support for
TryFromJsValuetrait implementations.#4714
New
JsValue.is_null_or_undefined()method and intrinsic.#4751
Support for
Option<JsValue>in function arguments and return.#4752
Support for
WASM_BINDGEN_KEEP_TEST_BUILD=1environment variableto retain build files when using the test runner.
#4758
Fixed
Fixed multithreading JS output for targets
bundler,denoandmodule.#4685
Fixed
TextDe/Encoderdetection for audio worklet use-cases.#4703
Fixed post-processing failures in case Std has debug assertions enabled.
#4705
Fixed JS memory leak in
wasm_bindgen::Closure.#4709
Fixed warning when using
#[wasm_bindgen(wasm_bindgen=xxx)]on struct.#4715
Removed
wasm-bindgen-backendwill no longer be published.#4696
v0.2.104Compare Source
Added
Added bindings for
WeakRef.#4659
Support
Symbol.disposemethods by default, when it is supported in the environment.#4666
Added
aarch64-unknown-linux-muslrelease artifacts.#4668
Changed
Unconditionally use the global
TextEncoder/TextDecoderfor string encoding/decoding. The Node.js output now requires a minimum of Node.js v11.#4670
Deprecate the
msrvcrate feature. MSRV detection is now always on.#4675
Fixed
Fixed wasm-bindgen-cli's
encode_intoargument not working.#4663
Fixed a bug in
--experimental-reset-state-functionsupport for heap reset.#4665
Fixed compilation failures on Rust v1.82 and v1.83.
#4675
v0.2.103Compare Source
Fixed
#4656
v0.2.102Compare Source
Added
Added
DocumentOrShadowRoot.adoptedStyleSheets.#4625
Added support for arguments with spaces using shell-style quoting in webdriver
*_ARGSenvironment variables to
wasm-bindgen-test.#4433
Added ability to determine WebDriver JSON config location via
WASM_BINDGEN_TEST_WEBDRIVER_JSONenvironment variable towasm-bindgen-test.#4434
Generate DWARF for tests by default. See the guide on debug information for more details.
#4635
New
--target=moduletarget for outputting source phase imports.#4638
Changed
wasm-bindgen --helpdocs.#4646
Fixed
Fixed wrong method names for
GestureEventbindings.#4615
Fix crash caused by allocations during
TypedArrayinteractions.#4622
v0.2.101Compare Source
Added
Added format and colorSpace support to VideoFrameCopyToOptions
#4543
Added support for the
onbeforeinputattribute.#4544
TypedArray::new_from_slice(&[T])constructor that allows to create aJS-owned
TypedArrayfrom a Rust slice.#4555
Added
Function::call4andFunction::bind4throughFunction::call9Function::bind9methods for calling and binding JavaScript functions with 4-9 arguments.#4572
Added isPointInFill and isPointInStroke methods for the SVGGeometryElement idl.
#4509
Added unstable bindings for
GestureEvent.#4589
Stricter checks for
module,raw_moduleandinline_jsattributes applied to inapplicable items.#4522
Add bindings for
PictureInPicture.#4593
Added
bytesmethod for theBlobidl#4506
Add error message when export symbol is not found
#4594
Changed
Deprecate async constructors.
#4402
The
sizeargument toGPUCommandEncoder.copyBufferToBufferis now optional.#4508
MSRV of CLI tools bumped to v1.82. This does not affect libraries like
wasm-bindgen,js-sysandweb-sys!#4608
Fixed
Detect more failure scenarios when retrieving the Wasm module.
#4556
Add a workaround for
TextDecoderfailing in older version of Safari when too many bytes are decoded through it over its lifetime.#4472
TypedArray::from(&[T])now works reliably across memory reallocations.#4555
Fix incorrect memory loading and storing assertions during post-processing.
#4554
Fix test
--exactoption not working as expected.#4549
Fix tables being removed even though they are used by stack closures.
#4119
Skip
__wasm_call_ctorswhich we don't want to interpret.#4562
Fix infinite recursion caused by the lack of proc-macro hygiene.
#4601
Fix running coverage with no_modules.
#4604
Fix proc-macro hygiene with
core.#4606
Removed
Crates intended purely for internal consumption by the wasm-bindgen CLI will no longer be published:
#4608
wasm-bindgen-externref-xformwasm-bindgen-multi-value-xformwasm-bindgen-threads-xformwasm-bindgen-wasm-conventionswasm-bindgen-wasm-interpreterVoidStarKat/widestring-rs (widestring)
v1.2.1Compare Source
Changed
Fixed
trim_endcharacter boundary panic when processing 4-byte characters. By [@syrflover].U16String::insert_charwhich always panicked. Fixes [#46].WideCStringtype alias.unused_importlint onwide*macros.Added
Utf32StringandUtf32Str. You can load them fromgdb/widestring.py.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.