Version 0.2.0 (#1551)
* v0.2.0-rc2 * Update CHANGES.md (also with some markdown lint suggestions) * Update version number * Update CHANGES.md * Update CHANGES.md * Update CHANGES.md * Add known issue * Update CHANGES.mdmain
parent
39c7a8915c
commit
6a16d46fba
194
CHANGES.md
194
CHANGES.md
|
@ -1,89 +1,149 @@
|
|||
# Dendrite 0.1.0 (2020-10-08)
|
||||
# Changelog
|
||||
|
||||
## Dendrite 0.2.0 (2020-10-20)
|
||||
|
||||
### Important
|
||||
|
||||
* This release makes breaking changes for polylith deployments, since they now use the multi-personality binary rather than separate binary files
|
||||
* Users of polylith deployments should revise their setups to use the new binary - see the Features section below
|
||||
* This release also makes breaking changes for Docker deployments, as are now publishing images to Docker Hub in separate repositories for monolith and polylith
|
||||
* New repositories are as follows: [matrixdotorg/dendrite-monolith](https://hub.docker.com/repository/docker/matrixdotorg/dendrite-monolith) and [matrixdotorg/dendrite-polylith](https://hub.docker.com/repository/docker/matrixdotorg/dendrite-polylith)
|
||||
* The new `latest` tag will be updated with the latest release, and new versioned tags, e.g. `v0.2.0`, will preserve specific release versions
|
||||
* [Sample Compose configs](https://github.com/matrix-org/dendrite/tree/master/build/docker) have been updated - if you are running a Docker deployment, please review the changes
|
||||
* Images for the client API proxy and federation API proxy are no longer provided as they are unsupported - please use [nginx](docs/nginx/) (or another reverse proxy) instead
|
||||
|
||||
### Features
|
||||
|
||||
* Dendrite polylith deployments now use a special multi-personality binary, rather than separate binaries
|
||||
* This is cleaner, builds faster and simplifies deployment
|
||||
* The first command line argument states the component to run, e.g. `./dendrite-polylith-multi roomserver`
|
||||
* Database migrations are now run at startup
|
||||
* Invalid UTF-8 in requests is now rejected (contributed by [Pestdoktor](https://github.com/Pestdoktor))
|
||||
* Fully read markers are now implemented in the client API (contributed by [Lesterpig](https://github.com/Lesterpig))
|
||||
* Missing auth events are now retrieved from other servers in the room, rather than just the event origin
|
||||
* `m.room.create` events are now validated properly when processing a `/send_join` response
|
||||
* The roomserver now implements `KindOld` for handling historic events without them becoming forward extremity candidates, i.e. for backfilled or missing events
|
||||
|
||||
### Fixes
|
||||
|
||||
* State resolution v2 performance has been improved dramatically when dealing with large state sets
|
||||
* The roomserver no longer processes outlier events if they are already known
|
||||
* A SQLite locking issue in the previous events updater has been fixed
|
||||
* The client API `/state` endpoint now correctly returns state after the leave event, if the user has left the room
|
||||
* The client API `/createRoom` endpoint now sends cumulative state to the roomserver for the initial room events
|
||||
* The federation API `/send` endpoint now correctly requests the entire room state from the roomserver when needed
|
||||
* Some internal HTTP API paths have been fixed in the user API (contributed by [S7evinK](https://github.com/S7evinK))
|
||||
* A race condition in the rate limiting code resulting in concurrent map writes has been fixed
|
||||
* Each component now correctly starts a consumer/producer connection in monolith mode (when using Kafka)
|
||||
* State resolution is no longer run for single trusted state snapshots that have been verified before
|
||||
* A crash when rolling back the transaction in the latest events updater has been fixed
|
||||
* Typing events are now ignored when the sender domain does not match the origin server
|
||||
* Duplicate redaction entries no longer result in database errors
|
||||
* Recursion has been removed from the code path for retrieving missing events
|
||||
* `QueryMissingAuthPrevEvents` now returns events that have no associated state as if they are missing
|
||||
* Signing key fetchers no longer ignore keys for the local domain, if retrieving a key that is not known in the local config
|
||||
* Federation timeouts have been adjusted so we don't give up on remote requests so quickly
|
||||
* `create-account` no longer relies on the device database (contributed by [ThatNerdyPikachu](https://github.com/ThatNerdyPikachu))
|
||||
|
||||
### Known issues
|
||||
|
||||
* Old events can incorrectly appear in `/sync` as if they are new when retrieving missing events from federated servers, causing them to appear at the bottom of the timeline in clients
|
||||
|
||||
## Dendrite 0.1.0 (2020-10-08)
|
||||
|
||||
First versioned release of Dendrite.
|
||||
|
||||
## Client-Server API Features
|
||||
|
||||
### Account registration and management
|
||||
- Registration: By password only.
|
||||
- Login: By password only. No fallback.
|
||||
- Logout: Yes.
|
||||
- Change password: Yes.
|
||||
- Link email/msisdn to account: No.
|
||||
- Deactivate account: Yes.
|
||||
- Check if username is available: Yes.
|
||||
- Account data: Yes.
|
||||
- OpenID: No.
|
||||
|
||||
* Registration: By password only.
|
||||
* Login: By password only. No fallback.
|
||||
* Logout: Yes.
|
||||
* Change password: Yes.
|
||||
* Link email/msisdn to account: No.
|
||||
* Deactivate account: Yes.
|
||||
* Check if username is available: Yes.
|
||||
* Account data: Yes.
|
||||
* OpenID: No.
|
||||
|
||||
### Rooms
|
||||
- Room creation: Yes, including presets.
|
||||
- Joining rooms: Yes, including by alias or `?server_name=`.
|
||||
- Event sending: Yes, including transaction IDs.
|
||||
- Aliases: Yes.
|
||||
- Published room directory: Yes.
|
||||
- Kicking users: Yes.
|
||||
- Banning users: Yes.
|
||||
- Inviting users: Yes, but not third-party invites.
|
||||
- Forgetting rooms: No.
|
||||
- Room versions: All (v1 - v6)
|
||||
- Tagging: Yes.
|
||||
|
||||
* Room creation: Yes, including presets.
|
||||
* Joining rooms: Yes, including by alias or `?server_name=`.
|
||||
* Event sending: Yes, including transaction IDs.
|
||||
* Aliases: Yes.
|
||||
* Published room directory: Yes.
|
||||
* Kicking users: Yes.
|
||||
* Banning users: Yes.
|
||||
* Inviting users: Yes, but not third-party invites.
|
||||
* Forgetting rooms: No.
|
||||
* Room versions: All (v1 * v6)
|
||||
* Tagging: Yes.
|
||||
|
||||
### User management
|
||||
- User directory: Basic support.
|
||||
- Ignoring users: No.
|
||||
- Groups/Communities: No.
|
||||
|
||||
* User directory: Basic support.
|
||||
* Ignoring users: No.
|
||||
* Groups/Communities: No.
|
||||
|
||||
### Device management
|
||||
- Creating devices: Yes.
|
||||
- Deleting devices: Yes.
|
||||
- Send-to-device messaging: Yes.
|
||||
|
||||
* Creating devices: Yes.
|
||||
* Deleting devices: Yes.
|
||||
* Send-to-device messaging: Yes.
|
||||
|
||||
### Sync
|
||||
- Filters: Timeline limit only. Rest unimplemented.
|
||||
- Deprecated `/events` and `/initialSync`: No.
|
||||
|
||||
* Filters: Timeline limit only. Rest unimplemented.
|
||||
* Deprecated `/events` and `/initialSync`: No.
|
||||
|
||||
### Room events
|
||||
- Typing: Yes.
|
||||
- Receipts: No.
|
||||
- Read Markers: No.
|
||||
- Presence: No.
|
||||
- Content repository (attachments): Yes.
|
||||
- History visibility: No, defaults to `joined`.
|
||||
- Push notifications: No.
|
||||
- Event context: No.
|
||||
- Reporting content: No.
|
||||
|
||||
* Typing: Yes.
|
||||
* Receipts: No.
|
||||
* Read Markers: No.
|
||||
* Presence: No.
|
||||
* Content repository (attachments): Yes.
|
||||
* History visibility: No, defaults to `joined`.
|
||||
* Push notifications: No.
|
||||
* Event context: No.
|
||||
* Reporting content: No.
|
||||
|
||||
### End-to-End Encryption
|
||||
- Uploading device keys: Yes.
|
||||
- Downloading device keys: Yes.
|
||||
- Claiming one-time keys: Yes.
|
||||
- Querying key changes: Yes.
|
||||
- Cross-Signing: No.
|
||||
|
||||
* Uploading device keys: Yes.
|
||||
* Downloading device keys: Yes.
|
||||
* Claiming one-time keys: Yes.
|
||||
* Querying key changes: Yes.
|
||||
* Cross-Signing: No.
|
||||
|
||||
### Misc
|
||||
- Server-side search: No.
|
||||
- Guest access: Partial.
|
||||
- Room previews: No, partial support for Peeking via MSC2753.
|
||||
- Third-Party networks: No.
|
||||
- Server notices: No.
|
||||
- Policy lists: No.
|
||||
|
||||
* Server-side search: No.
|
||||
* Guest access: Partial.
|
||||
* Room previews: No, partial support for Peeking via MSC2753.
|
||||
* Third-Party networks: No.
|
||||
* Server notices: No.
|
||||
* Policy lists: No.
|
||||
|
||||
## Federation Features
|
||||
- Querying keys (incl. notary): Yes.
|
||||
- Server ACLs: Yes.
|
||||
- Sending transactions: Yes.
|
||||
- Joining rooms: Yes.
|
||||
- Inviting to rooms: Yes, but not third-party invites.
|
||||
- Leaving rooms: Yes.
|
||||
- Content repository: Yes.
|
||||
- Backfilling / get_missing_events: Yes.
|
||||
- Retrieving state of the room (`/state` and `/state_ids`): Yes.
|
||||
- Public rooms: Yes.
|
||||
- Querying profile data: Yes.
|
||||
- Device management: Yes.
|
||||
- Send-to-Device messaging: Yes.
|
||||
- Querying/Claiming E2E Keys: Yes.
|
||||
- Typing: Yes.
|
||||
- Presence: No.
|
||||
- Receipts: No.
|
||||
- OpenID: No.
|
||||
|
||||
* Querying keys (incl. notary): Yes.
|
||||
* Server ACLs: Yes.
|
||||
* Sending transactions: Yes.
|
||||
* Joining rooms: Yes.
|
||||
* Inviting to rooms: Yes, but not third-party invites.
|
||||
* Leaving rooms: Yes.
|
||||
* Content repository: Yes.
|
||||
* Backfilling / get_missing_events: Yes.
|
||||
* Retrieving state of the room (`/state` and `/state_ids`): Yes.
|
||||
* Public rooms: Yes.
|
||||
* Querying profile data: Yes.
|
||||
* Device management: Yes.
|
||||
* Send-to-Device messaging: Yes.
|
||||
* Querying/Claiming E2E Keys: Yes.
|
||||
* Typing: Yes.
|
||||
* Presence: No.
|
||||
* Receipts: No.
|
||||
* OpenID: No.
|
|
@ -16,7 +16,7 @@ var build string
|
|||
|
||||
const (
|
||||
VersionMajor = 0
|
||||
VersionMinor = 1
|
||||
VersionMinor = 2
|
||||
VersionPatch = 0
|
||||
VersionTag = "" // example: "rc1"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue