Features
--------

- Adding the ability to change MAX_UPLOAD_SIZE for the docker container
variables. ([\#3883](https://github.com/matrix-org/synapse/issues/3883))
- Report "python_version" in the phone home stats
([\#3894](https://github.com/matrix-org/synapse/issues/3894))
- Always LL ourselves if we're in a room
([\#3916](https://github.com/matrix-org/synapse/issues/3916))
- Include eventid in log lines when processing incoming federation
transactions
([\#3959](https://github.com/matrix-org/synapse/issues/3959))
- Remove spurious check which made 'localhost' servers not work
([\#3964](https://github.com/matrix-org/synapse/issues/3964))

Bugfixes
--------

- Fix problem when playing media from Chrome using direct URL (thanks
@remjey!) ([\#3578](https://github.com/matrix-org/synapse/issues/3578))
- support registering regular users non-interactively with
register_new_matrix_user script
([\#3836](https://github.com/matrix-org/synapse/issues/3836))
- Fix broken invite email links for self hosted riots
([\#3868](https://github.com/matrix-org/synapse/issues/3868))
- Don't ratelimit autojoins
([\#3879](https://github.com/matrix-org/synapse/issues/3879))
- Fix 500 error when deleting unknown room alias
([\#3889](https://github.com/matrix-org/synapse/issues/3889))
- Fix some b'abcd' noise in logs and metrics
([\#3892](https://github.com/matrix-org/synapse/issues/3892),
[\#3895](https://github.com/matrix-org/synapse/issues/3895))
- When we join a room, always try the server we used for the alias
lookup first, to avoid unresponsive and out-of-date servers.
([\#3899](https://github.com/matrix-org/synapse/issues/3899))
- Fix incorrect server-name indication for outgoing federation requests
([\#3907](https://github.com/matrix-org/synapse/issues/3907))
- Fix adding client IPs to the database failing on Python 3.
([\#3908](https://github.com/matrix-org/synapse/issues/3908))
- Fix bug where things occaisonally were not being timed out correctly.
([\#3910](https://github.com/matrix-org/synapse/issues/3910))
- Fix bug where outbound federation would stop talking to some servers
when using workers
([\#3914](https://github.com/matrix-org/synapse/issues/3914))
- Fix some instances of ExpiringCache not expiring cache items
([\#3932](https://github.com/matrix-org/synapse/issues/3932),
[\#3980](https://github.com/matrix-org/synapse/issues/3980))
- Fix out-of-bounds error when LLing yourself
([\#3936](https://github.com/matrix-org/synapse/issues/3936))
- Sending server notices regarding user consent now works on Python 3.
([\#3938](https://github.com/matrix-org/synapse/issues/3938))
- Fix exceptions from metrics handler
([\#3956](https://github.com/matrix-org/synapse/issues/3956))
- Fix error message for events with m.room.create missing from
auth_events
([\#3960](https://github.com/matrix-org/synapse/issues/3960))
- Fix errors due to concurrent monthly_active_user upserts
([\#3961](https://github.com/matrix-org/synapse/issues/3961))
- Fix exceptions when processing incoming events over federation
([\#3968](https://github.com/matrix-org/synapse/issues/3968))
- Replaced all occurences of e.message with str(e). Contributed by
Schnuffle ([\#3970](https://github.com/matrix-org/synapse/issues/3970))
- Fix lazy loaded sync in the presence of rejected state events
([\#3986](https://github.com/matrix-org/synapse/issues/3986))
- Fix error when logging incomplete HTTP requests
([\#3990](https://github.com/matrix-org/synapse/issues/3990))

Internal Changes
----------------

- Unit tests can now be run under PostgreSQL in Docker using
``test_postgresql.sh``.
([\#3699](https://github.com/matrix-org/synapse/issues/3699))
- Speed up calculation of typing updates for replication
([\#3794](https://github.com/matrix-org/synapse/issues/3794))
- Remove documentation regarding installation on Cygwin, the use of WSL
is recommended instead.
([\#3873](https://github.com/matrix-org/synapse/issues/3873))
- Fix typo in README, synaspse -> synapse
([\#3897](https://github.com/matrix-org/synapse/issues/3897))
- Increase the timeout when filling missing events in federation
requests ([\#3903](https://github.com/matrix-org/synapse/issues/3903))
- Improve the logging when handling a federation transaction
([\#3904](https://github.com/matrix-org/synapse/issues/3904),
[\#3966](https://github.com/matrix-org/synapse/issues/3966))
- Improve logging of outbound federation requests
([\#3906](https://github.com/matrix-org/synapse/issues/3906),
[\#3909](https://github.com/matrix-org/synapse/issues/3909))
- Fix the docker image building on python 3
([\#3911](https://github.com/matrix-org/synapse/issues/3911))
- Add a regression test for logging failed HTTP requests on Python 3.
([\#3912](https://github.com/matrix-org/synapse/issues/3912))
- Comments and interface cleanup for on_receive_pdu
([\#3924](https://github.com/matrix-org/synapse/issues/3924))
- Fix spurious exceptions when remote http client closes conncetion
([\#3925](https://github.com/matrix-org/synapse/issues/3925))
- Log exceptions thrown by background tasks
([\#3927](https://github.com/matrix-org/synapse/issues/3927))
- Add a cache to get_destination_retry_timings
([\#3933](https://github.com/matrix-org/synapse/issues/3933),
[\#3991](https://github.com/matrix-org/synapse/issues/3991))
- Automate pushes to docker hub
([\#3946](https://github.com/matrix-org/synapse/issues/3946))
- Require attrs 16.0.0 or later
([\#3947](https://github.com/matrix-org/synapse/issues/3947))
- Fix incompatibility with python3 on alpine
([\#3948](https://github.com/matrix-org/synapse/issues/3948))
- Run the test suite on the oldest supported versions of our
dependencies in CI.
([\#3952](https://github.com/matrix-org/synapse/issues/3952))
- CircleCI now only runs merged jobs on PRs, and commit jobs on develop,
master, and release branches.
([\#3957](https://github.com/matrix-org/synapse/issues/3957))
- Fix docstrings and add tests for state store methods
([\#3958](https://github.com/matrix-org/synapse/issues/3958))
- fix docstring for FederationClient.get_state_for_room
([\#3963](https://github.com/matrix-org/synapse/issues/3963))
- Run notify_app_services as a bg process
([\#3965](https://github.com/matrix-org/synapse/issues/3965))
- Clarifications in FederationHandler
([\#3967](https://github.com/matrix-org/synapse/issues/3967))
- Further reduce the docker image size
([\#3972](https://github.com/matrix-org/synapse/issues/3972))
- Build py3 docker images for docker hub too
([\#3976](https://github.com/matrix-org/synapse/issues/3976))
- Updated the installation instructions to point to the matrix-synapse
package on PyPI.
([\#3985](https://github.com/matrix-org/synapse/issues/3985))
- Disable USE_FROZEN_DICTS for unittests by default.
([\#3987](https://github.com/matrix-org/synapse/issues/3987))
- Remove unused Jenkins and development related files from the repo.
([\#3988](https://github.com/matrix-org/synapse/issues/3988))
- Improve stacktraces in certain exceptions in the logs
([\#3989](https://github.com/matrix-org/synapse/issues/3989))
- Pin to prometheus_client<0.4 to avoid renaming all of our metrics
([\#4002](https://github.com/matrix-org/synapse/issues/4002))
This tag has no release notes.