Version 0.6.5 (#2254)
* Version and changelog * Update changelog * Update changelog * Update readme * Update readme some more * Fix date in changelog
This commit is contained in:
parent
0297929b76
commit
86d4eef9f1
32
CHANGES.md
32
CHANGES.md
|
@ -1,5 +1,31 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## Dendrite 0.6.5 (2022-03-04)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* Early support for push notifications has been added, with support for push rules, pushers, HTTP push gateways and the `/notifications` endpoint (contributions by [danpe](https://github.com/danpe), [PiotrKozimor](https://github.com/PiotrKozimor) and [tommie](https://github.com/tommie))
|
||||||
|
* Spaces Summary (MSC2946) is now correctly supported (when `msc2946` is enabled in the config)
|
||||||
|
* All media API endpoints are now available under the `/v3` namespace
|
||||||
|
* Profile updates (display name and avatar) are now sent asynchronously so they shouldn't block the client for a very long time
|
||||||
|
* State resolution v2 has been optimised further to considerably reduce the number of memory allocations
|
||||||
|
* State resolution v2 will no longer duplicate events unnecessarily when calculating the auth difference
|
||||||
|
* The `create-account` tool now has a `-reset-password` option for resetting the passwords of existing accounts
|
||||||
|
* The `/sync` endpoint now calculates device list changes much more quickly with less RAM used
|
||||||
|
* The `/messages` endpoint now lazy-loads members correctly
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
* Read receipts now work correctly by correcting bugs in the stream positions and receipt coalescing
|
||||||
|
* Topological sorting of state and join responses has been corrected, which should help to reduce the number of auth problems when joining new federated rooms
|
||||||
|
* Media thumbnails should now work properly after having unnecessarily strict rate limiting removed
|
||||||
|
* The roomserver no longer holds transactions for as long when processing input events
|
||||||
|
* Uploading device keys and cross-signing keys will now correctly no-op if there were no changes
|
||||||
|
* Parameters are now remembered correctly during registration
|
||||||
|
* Devices can now only be deleted within the appropriate UIA flow
|
||||||
|
* The `/context` endpoint now returns 404 instead of 500 if the event was not found
|
||||||
|
* SQLite mode will no longer leak memory as a result of not closing prepared statements
|
||||||
|
|
||||||
## Dendrite 0.6.4 (2022-02-21)
|
## Dendrite 0.6.4 (2022-02-21)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
@ -210,9 +236,9 @@
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
- **SECURITY:** A bug in SQLite mode which could cause the registration flow to complete unexpectedly for existing accounts has been fixed (PostgreSQL deployments are not affected)
|
* **SECURITY:** A bug in SQLite mode which could cause the registration flow to complete unexpectedly for existing accounts has been fixed (PostgreSQL deployments are not affected)
|
||||||
- A panic in the federation sender has been fixed when shutting down destination queues
|
* A panic in the federation sender has been fixed when shutting down destination queues
|
||||||
- The `/keys/upload` endpoint now correctly returns the number of one-time keys in response to an empty upload request
|
* The `/keys/upload` endpoint now correctly returns the number of one-time keys in response to an empty upload request
|
||||||
|
|
||||||
## Dendrite 0.3.10 (2021-02-17)
|
## Dendrite 0.3.10 (2021-02-17)
|
||||||
|
|
||||||
|
|
21
README.md
21
README.md
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
Dendrite is a second-generation Matrix homeserver written in Go.
|
Dendrite is a second-generation Matrix homeserver written in Go.
|
||||||
It intends to provide an **efficient**, **reliable** and **scalable** alternative to [Synapse](https://github.com/matrix-org/synapse):
|
It intends to provide an **efficient**, **reliable** and **scalable** alternative to [Synapse](https://github.com/matrix-org/synapse):
|
||||||
|
|
||||||
- Efficient: A small memory footprint with better baseline performance than an out-of-the-box Synapse.
|
- Efficient: A small memory footprint with better baseline performance than an out-of-the-box Synapse.
|
||||||
- Reliable: Implements the Matrix specification as written, using the
|
- Reliable: Implements the Matrix specification as written, using the
|
||||||
[same test suite](https://github.com/matrix-org/sytest) as Synapse as well as
|
[same test suite](https://github.com/matrix-org/sytest) as Synapse as well as
|
||||||
|
@ -9,12 +10,14 @@ It intends to provide an **efficient**, **reliable** and **scalable** alternativ
|
||||||
- Scalable: can run on multiple machines and eventually scale to massive homeserver deployments.
|
- Scalable: can run on multiple machines and eventually scale to massive homeserver deployments.
|
||||||
|
|
||||||
As of October 2020, Dendrite has now entered **beta** which means:
|
As of October 2020, Dendrite has now entered **beta** which means:
|
||||||
|
|
||||||
- Dendrite is ready for early adopters. We recommend running in Monolith mode with a PostgreSQL database.
|
- Dendrite is ready for early adopters. We recommend running in Monolith mode with a PostgreSQL database.
|
||||||
- Dendrite has periodic semver releases. We intend to release new versions as we land significant features.
|
- Dendrite has periodic semver releases. We intend to release new versions as we land significant features.
|
||||||
- Dendrite supports database schema upgrades between releases. This means you should never lose your messages when upgrading Dendrite.
|
- Dendrite supports database schema upgrades between releases. This means you should never lose your messages when upgrading Dendrite.
|
||||||
- Breaking changes will not occur on minor releases. This means you can safely upgrade Dendrite without modifying your database or config file.
|
- Breaking changes will not occur on minor releases. This means you can safely upgrade Dendrite without modifying your database or config file.
|
||||||
|
|
||||||
This does not mean:
|
This does not mean:
|
||||||
|
|
||||||
- Dendrite is bug-free. It has not yet been battle-tested in the real world and so will be error prone initially.
|
- Dendrite is bug-free. It has not yet been battle-tested in the real world and so will be error prone initially.
|
||||||
- All of the CS/Federation APIs are implemented. We are tracking progress via a script called 'Are We Synapse Yet?'. In particular,
|
- All of the CS/Federation APIs are implemented. We are tracking progress via a script called 'Are We Synapse Yet?'. In particular,
|
||||||
presence and push notifications are entirely missing from Dendrite. See [CHANGES.md](CHANGES.md) for updates.
|
presence and push notifications are entirely missing from Dendrite. See [CHANGES.md](CHANGES.md) for updates.
|
||||||
|
@ -34,11 +37,13 @@ If you have further questions, please take a look at [our FAQ](docs/FAQ.md) or j
|
||||||
To build Dendrite, you will need Go 1.16 or later.
|
To build Dendrite, you will need Go 1.16 or later.
|
||||||
|
|
||||||
For a usable federating Dendrite deployment, you will also need:
|
For a usable federating Dendrite deployment, you will also need:
|
||||||
|
|
||||||
- A domain name (or subdomain)
|
- A domain name (or subdomain)
|
||||||
- A valid TLS certificate issued by a trusted authority for that domain
|
- A valid TLS certificate issued by a trusted authority for that domain
|
||||||
- SRV records or a well-known file pointing to your deployment
|
- SRV records or a well-known file pointing to your deployment
|
||||||
|
|
||||||
Also recommended are:
|
Also recommended are:
|
||||||
|
|
||||||
- A PostgreSQL database engine, which will perform better than SQLite with many users and/or larger rooms
|
- A PostgreSQL database engine, which will perform better than SQLite with many users and/or larger rooms
|
||||||
- A reverse proxy server, such as nginx, configured [like this sample](https://github.com/matrix-org/dendrite/blob/master/docs/nginx/monolith-sample.conf)
|
- A reverse proxy server, such as nginx, configured [like this sample](https://github.com/matrix-org/dendrite/blob/master/docs/nginx/monolith-sample.conf)
|
||||||
|
|
||||||
|
@ -76,18 +81,18 @@ Then point your favourite Matrix client at `http://localhost:8008` or `https://l
|
||||||
|
|
||||||
We use a script called Are We Synapse Yet which checks Sytest compliance rates. Sytest is a black-box homeserver
|
We use a script called Are We Synapse Yet which checks Sytest compliance rates. Sytest is a black-box homeserver
|
||||||
test rig with around 900 tests. The script works out how many of these tests are passing on Dendrite and it
|
test rig with around 900 tests. The script works out how many of these tests are passing on Dendrite and it
|
||||||
updates with CI. As of January 2022 we're at around 65% CS API coverage and 92% Federation coverage, though check
|
updates with CI. As of March 2022 we're at around 76% CS API coverage and 95% Federation coverage, though check
|
||||||
CI for the latest numbers. In practice, this means you can communicate locally and via federation with Synapse
|
CI for the latest numbers. In practice, this means you can communicate locally and via federation with Synapse
|
||||||
servers such as matrix.org reasonably well. There's a long list of features that are not implemented, notably:
|
servers such as matrix.org reasonably well. There's a long list of features that are not implemented, notably:
|
||||||
- Push
|
|
||||||
- Search and Context
|
- Search
|
||||||
- User Directory
|
- User Directory
|
||||||
- Presence
|
- Presence
|
||||||
- Guests
|
|
||||||
|
|
||||||
We are prioritising features that will benefit single-user homeservers first (e.g Receipts, E2E) rather
|
We are prioritising features that will benefit single-user homeservers first (e.g Receipts, E2E) rather
|
||||||
than features that massive deployments may be interested in (User Directory, OpenID, Guests, Admin APIs, AS API).
|
than features that massive deployments may be interested in (User Directory, OpenID, Guests, Admin APIs, AS API).
|
||||||
This means Dendrite supports amongst others:
|
This means Dendrite supports amongst others:
|
||||||
|
|
||||||
- Core room functionality (creating rooms, invites, auth rules)
|
- Core room functionality (creating rooms, invites, auth rules)
|
||||||
- Federation in rooms v1-v7
|
- Federation in rooms v1-v7
|
||||||
- Backfilling locally and via federation
|
- Backfilling locally and via federation
|
||||||
|
@ -97,9 +102,11 @@ This means Dendrite supports amongst others:
|
||||||
- Media APIs
|
- Media APIs
|
||||||
- Redaction
|
- Redaction
|
||||||
- Tagging
|
- Tagging
|
||||||
|
- Context
|
||||||
- E2E keys and device lists
|
- E2E keys and device lists
|
||||||
- Receipts
|
- Receipts
|
||||||
|
- Push
|
||||||
|
- Guests
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
@ -112,6 +119,7 @@ For example, if the test `Local device key changes get to remote servers` was ma
|
||||||
test file (e.g via `grep` or via the
|
test file (e.g via `grep` or via the
|
||||||
[CI log output](https://buildkite.com/matrix-dot-org/dendrite/builds/2826#39cff5de-e032-4ad0-ad26-f819e6919c42)
|
[CI log output](https://buildkite.com/matrix-dot-org/dendrite/builds/2826#39cff5de-e032-4ad0-ad26-f819e6919c42)
|
||||||
it's `tests/50federation/40devicelists.pl` ) then to run Sytest:
|
it's `tests/50federation/40devicelists.pl` ) then to run Sytest:
|
||||||
|
|
||||||
```
|
```
|
||||||
docker run --rm --name sytest
|
docker run --rm --name sytest
|
||||||
-v "/Users/kegan/github/sytest:/sytest"
|
-v "/Users/kegan/github/sytest:/sytest"
|
||||||
|
@ -121,10 +129,12 @@ docker run --rm --name sytest
|
||||||
-e "POSTGRES=1" -e "DENDRITE_TRACE_HTTP=1"
|
-e "POSTGRES=1" -e "DENDRITE_TRACE_HTTP=1"
|
||||||
matrixdotorg/sytest-dendrite:latest tests/50federation/40devicelists.pl
|
matrixdotorg/sytest-dendrite:latest tests/50federation/40devicelists.pl
|
||||||
```
|
```
|
||||||
|
|
||||||
See [sytest.md](docs/sytest.md) for the full description of these flags.
|
See [sytest.md](docs/sytest.md) for the full description of these flags.
|
||||||
|
|
||||||
You can try running sytest outside of docker for faster runs, but the dependencies can be temperamental
|
You can try running sytest outside of docker for faster runs, but the dependencies can be temperamental
|
||||||
and we recommend using docker where possible.
|
and we recommend using docker where possible.
|
||||||
|
|
||||||
```
|
```
|
||||||
cd sytest
|
cd sytest
|
||||||
export PERL5LIB=$HOME/lib/perl5
|
export PERL5LIB=$HOME/lib/perl5
|
||||||
|
@ -149,6 +159,7 @@ Dendrite in Monolith + SQLite works in a range of environments including iOS and
|
||||||
|
|
||||||
For small homeserver installations joined on ~10s rooms on matrix.org with ~100s of users in those rooms, including some
|
For small homeserver installations joined on ~10s rooms on matrix.org with ~100s of users in those rooms, including some
|
||||||
encrypted rooms:
|
encrypted rooms:
|
||||||
|
|
||||||
- Memory: uses around 100MB of RAM, with peaks at around 200MB.
|
- Memory: uses around 100MB of RAM, with peaks at around 200MB.
|
||||||
- Disk space: After a few months of usage, the database grew to around 2GB (in Monolith mode).
|
- Disk space: After a few months of usage, the database grew to around 2GB (in Monolith mode).
|
||||||
- CPU: Brief spikes when processing events, typically idles at 1% CPU.
|
- CPU: Brief spikes when processing events, typically idles at 1% CPU.
|
||||||
|
|
|
@ -17,7 +17,7 @@ var build string
|
||||||
const (
|
const (
|
||||||
VersionMajor = 0
|
VersionMajor = 0
|
||||||
VersionMinor = 6
|
VersionMinor = 6
|
||||||
VersionPatch = 4
|
VersionPatch = 5
|
||||||
VersionTag = "" // example: "rc1"
|
VersionTag = "" // example: "rc1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue