Kévin Commaille ae3897cad8 identifiers: Allow to validate KeyId with any key name type
Use new trait bounds for KeyId to only allow specific types.
Change the KeyId validation to be generic over the key name type.
Remove the KeyName type and replace it with the more specific
ServerSigningKeyVersion.
2024-11-08 12:49:53 -05:00

151 lines
2.9 KiB
Markdown

# [unreleased]
Breaking changes:
- `key_id::validate` takes a generic parameter that implements the new `KeyName`
trait to validate the key name part. This allows to validate key names that
are not only server signing key versions.
- The `compat-key-id` cargo feature was renamed to
`compat-server-signing-key-version`.
Improvements:
- Add `server_signing_key_version::validate`.
# 0.9.5
Bug fixes:
- Allow underscores (`_`) when validating MXC URIs.
- They have always been allowed in the spec in order to support URL-safe
base64-encoded media IDs.
Improvements:
- Point links to the Matrix 1.10 specification
# 0.9.4
Yanked because it was created from the wrong branch
# 0.9.3
Improvements:
- Don't require room IDs to contain a server name
- Room IDs being splittable into localpart and servername does not have
much inherent value and there are proposals like [MSC4051] that propose
changing the format. Relaxing the rules makes Ruma forwards-compatible
with those proposals. The server_name accessor is kept because it is
used by at least one downstream, but is updated to return an `Option`.
[MSC4051]: https://github.com/matrix-org/matrix-spec-proposals/pull/4051
# 0.9.2
Bug fixes:
- Don't consider empty localpart of a user ID as valid
- It is accepted under the `compat-user-id` feature, but not considered
fully-conforming
Improvements:
- Allow `+` in the localpart of user IDs according to MSC4009 / Matrix 1.8
- Add `compat-arbitrary-length-ids` Cargo feature for opting out of 255-byte
length check for all ID types
# 0.9.1
Improvements:
* Update links to the latest version of the Matrix spec
# 0.9.0
Breaking changes:
* Remove `room_name` module
* Room name size limits were never enforced, so they are now just regular
`String`s in Ruma ([Spec change removing the size limit][spec])
[spec]: https://github.com/matrix-org/matrix-spec-proposals/pull/3669
# 0.8.1
Improvements:
* Remove unused dependency on `url`
# 0.8.0
Breaking changes:
* Rework the `Error` type (merge / rename variants)
# 0.7.0
Improvements:
* Add more `Error` variants
# 0.6.0
Breaking changes:
* Most validation functions no longer return the colon position on success
Improvements:
* Add `mxc_uri` validation
# 0.5.0
Breaking changes:
* Make `Error` type non-exhaustive
# 0.4.0
Breaking changes:
* Fix a typo in a public function name: `user_id::localpart_is_fully_conforming`
# 0.3.0
Breaking changes:
* Remove the `serde` feature
# 0.2.4
Improvements:
* Restore the `serde` feature which was accidentally removed in a patch release
# 0.2.3
Improvements:
* Add a `compat` feature
* Under this feature, more user IDs are accepted that exist in the while but are not
spec-compliant
# 0.2.2
Improvements:
* Add verification of `mxc://` URIs
# 0.2.1
Improvements:
* Drop unused dependencies
# 0.2.0
Breaking changes:
* Remove `key_algorithms` module (moved to ruma-identifiers as `crypto_algorithms`)