mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-16 15:53:52 +01:00
Merge branch 'master' into develop
This commit is contained in:
commit
c632bc8654
24 changed files with 101 additions and 18 deletions
59
CHANGES.md
59
CHANGES.md
|
@ -1,3 +1,62 @@
|
||||||
|
Synapse 0.33.7 (2018-10-18)
|
||||||
|
===========================
|
||||||
|
|
||||||
|
**Warning**: This release removes the example email notification templates from
|
||||||
|
`res/templates` (they are now internal to the python package). This should only
|
||||||
|
affect you if you (a) deploy your Synapse instance from a git checkout or a
|
||||||
|
github snapshot URL, and (b) have email notifications enabled.
|
||||||
|
|
||||||
|
If you have email notifications enabled, you should ensure that
|
||||||
|
`email.template_dir` is either configured to point at a directory where you
|
||||||
|
have installed customised templates, or leave it unset to use the default
|
||||||
|
templates.
|
||||||
|
|
||||||
|
The configuration parser will try to detect the situation where
|
||||||
|
`email.template_dir` is incorrectly set to `res/templates` and do the right
|
||||||
|
thing, but will warn about this.
|
||||||
|
|
||||||
|
Synapse 0.33.7rc2 (2018-10-17)
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Ship the example email templates as part of the package ([\#4052](https://github.com/matrix-org/synapse/issues/4052))
|
||||||
|
|
||||||
|
Bugfixes
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Fix bug which made get_missing_events return too few events ([\#4045](https://github.com/matrix-org/synapse/issues/4045))
|
||||||
|
|
||||||
|
|
||||||
|
Synapse 0.33.7rc1 (2018-10-15)
|
||||||
|
==============================
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Add support for end-to-end key backup (MSC1687) ([\#4019](https://github.com/matrix-org/synapse/issues/4019))
|
||||||
|
|
||||||
|
|
||||||
|
Bugfixes
|
||||||
|
--------
|
||||||
|
|
||||||
|
- Fix bug in event persistence logic which caused 'NoneType is not iterable' ([\#3995](https://github.com/matrix-org/synapse/issues/3995))
|
||||||
|
- Fix exception in background metrics collection ([\#3996](https://github.com/matrix-org/synapse/issues/3996))
|
||||||
|
- Fix exception handling in fetching remote profiles ([\#3997](https://github.com/matrix-org/synapse/issues/3997))
|
||||||
|
- Fix handling of rejected threepid invites ([\#3999](https://github.com/matrix-org/synapse/issues/3999))
|
||||||
|
- Workers now start on Python 3. ([\#4027](https://github.com/matrix-org/synapse/issues/4027))
|
||||||
|
- Synapse now starts on Python 3.7. ([\#4033](https://github.com/matrix-org/synapse/issues/4033))
|
||||||
|
|
||||||
|
|
||||||
|
Internal Changes
|
||||||
|
----------------
|
||||||
|
|
||||||
|
- Log exceptions in looping calls ([\#4008](https://github.com/matrix-org/synapse/issues/4008))
|
||||||
|
- Optimisation for serving federation requests ([\#4017](https://github.com/matrix-org/synapse/issues/4017))
|
||||||
|
- Add metric to count number of non-empty sync responses ([\#4022](https://github.com/matrix-org/synapse/issues/4022))
|
||||||
|
|
||||||
|
|
||||||
Synapse 0.33.6 (2018-10-04)
|
Synapse 0.33.6 (2018-10-04)
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
|
|
@ -12,12 +12,12 @@ recursive-include synapse/storage/schema *.sql
|
||||||
recursive-include synapse/storage/schema *.py
|
recursive-include synapse/storage/schema *.py
|
||||||
|
|
||||||
recursive-include docs *
|
recursive-include docs *
|
||||||
recursive-include res *
|
|
||||||
recursive-include scripts *
|
recursive-include scripts *
|
||||||
recursive-include scripts-dev *
|
recursive-include scripts-dev *
|
||||||
recursive-include synapse *.pyi
|
recursive-include synapse *.pyi
|
||||||
recursive-include tests *.py
|
recursive-include tests *.py
|
||||||
|
|
||||||
|
recursive-include synapse/res *
|
||||||
recursive-include synapse/static *.css
|
recursive-include synapse/static *.css
|
||||||
recursive-include synapse/static *.gif
|
recursive-include synapse/static *.gif
|
||||||
recursive-include synapse/static *.html
|
recursive-include synapse/static *.html
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Fix bug in event persistence logic which caused 'NoneType is not iterable'
|
|
|
@ -1 +0,0 @@
|
||||||
Fix exception in background metrics collection
|
|
|
@ -1 +0,0 @@
|
||||||
Fix exception handling in fetching remote profiles
|
|
|
@ -1 +0,0 @@
|
||||||
Fix handling of rejected threepid invites
|
|
|
@ -1 +0,0 @@
|
||||||
Log exceptions in looping calls
|
|
|
@ -1 +0,0 @@
|
||||||
Optimisation for serving federation requests
|
|
|
@ -1 +0,0 @@
|
||||||
Add support for end-to-end key backup (MSC1687)
|
|
|
@ -1 +0,0 @@
|
||||||
Add metric to count number of non-empty sync responses
|
|
|
@ -1 +0,0 @@
|
||||||
Workers now start on Python 3.
|
|
|
@ -1,2 +0,0 @@
|
||||||
Synapse now starts on Python 3.7.
|
|
||||||
_All_ workers now start on Python 3.
|
|
|
@ -211,7 +211,9 @@ email:
|
||||||
require_transport_security: False
|
require_transport_security: False
|
||||||
notif_from: "{{ SYNAPSE_SMTP_FROM or "hostmaster@" + SYNAPSE_SERVER_NAME }}"
|
notif_from: "{{ SYNAPSE_SMTP_FROM or "hostmaster@" + SYNAPSE_SERVER_NAME }}"
|
||||||
app_name: Matrix
|
app_name: Matrix
|
||||||
template_dir: res/templates
|
# if template_dir is unset, uses the example templates that are part of
|
||||||
|
# the Synapse distribution.
|
||||||
|
#template_dir: res/templates
|
||||||
notif_template_html: notif_mail.html
|
notif_template_html: notif_mail.html
|
||||||
notif_template_text: notif_mail.txt
|
notif_template_text: notif_mail.txt
|
||||||
notif_for_new_users: True
|
notif_for_new_users: True
|
||||||
|
|
|
@ -27,4 +27,4 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
__version__ = "0.33.6"
|
__version__ = "0.33.7"
|
||||||
|
|
|
@ -13,11 +13,25 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
# This file can't be called email.py because if it is, we cannot:
|
# This file can't be called email.py because if it is, we cannot:
|
||||||
import email.utils
|
import email.utils
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import textwrap
|
||||||
|
|
||||||
from ._base import Config
|
from ._base import Config
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
TEMPLATE_DIR_WARNING = """\
|
||||||
|
WARNING: The email notifier is configured to look for templates in '%(template_dir)s',
|
||||||
|
but no templates could be found there. We will fall back to using the example templates;
|
||||||
|
to get rid of this warning, leave 'email.template_dir' unset.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
class EmailConfig(Config):
|
class EmailConfig(Config):
|
||||||
def read_config(self, config):
|
def read_config(self, config):
|
||||||
|
@ -38,7 +52,6 @@ class EmailConfig(Config):
|
||||||
"smtp_host",
|
"smtp_host",
|
||||||
"smtp_port",
|
"smtp_port",
|
||||||
"notif_from",
|
"notif_from",
|
||||||
"template_dir",
|
|
||||||
"notif_template_html",
|
"notif_template_html",
|
||||||
"notif_template_text",
|
"notif_template_text",
|
||||||
]
|
]
|
||||||
|
@ -62,9 +75,24 @@ class EmailConfig(Config):
|
||||||
self.email_smtp_host = email_config["smtp_host"]
|
self.email_smtp_host = email_config["smtp_host"]
|
||||||
self.email_smtp_port = email_config["smtp_port"]
|
self.email_smtp_port = email_config["smtp_port"]
|
||||||
self.email_notif_from = email_config["notif_from"]
|
self.email_notif_from = email_config["notif_from"]
|
||||||
self.email_template_dir = email_config["template_dir"]
|
|
||||||
self.email_notif_template_html = email_config["notif_template_html"]
|
self.email_notif_template_html = email_config["notif_template_html"]
|
||||||
self.email_notif_template_text = email_config["notif_template_text"]
|
self.email_notif_template_text = email_config["notif_template_text"]
|
||||||
|
|
||||||
|
self.email_template_dir = email_config.get("template_dir")
|
||||||
|
|
||||||
|
# backwards-compatibility hack
|
||||||
|
if (
|
||||||
|
self.email_template_dir == "res/templates"
|
||||||
|
and not os.path.isfile(
|
||||||
|
os.path.join(self.email_template_dir, self.email_notif_template_text)
|
||||||
|
)
|
||||||
|
):
|
||||||
|
t = TEMPLATE_DIR_WARNING % {
|
||||||
|
"template_dir": self.email_template_dir,
|
||||||
|
}
|
||||||
|
print(textwrap.fill(t, width=80) + "\n", file=sys.stderr)
|
||||||
|
self.email_template_dir = None
|
||||||
|
|
||||||
self.email_notif_for_new_users = email_config.get(
|
self.email_notif_for_new_users = email_config.get(
|
||||||
"notif_for_new_users", True
|
"notif_for_new_users", True
|
||||||
)
|
)
|
||||||
|
@ -113,7 +141,9 @@ class EmailConfig(Config):
|
||||||
# require_transport_security: False
|
# require_transport_security: False
|
||||||
# notif_from: "Your Friendly %(app)s Home Server <noreply@example.com>"
|
# notif_from: "Your Friendly %(app)s Home Server <noreply@example.com>"
|
||||||
# app_name: Matrix
|
# app_name: Matrix
|
||||||
# template_dir: res/templates
|
# # if template_dir is unset, uses the example templates that are part of
|
||||||
|
# # the Synapse distribution.
|
||||||
|
# #template_dir: res/templates
|
||||||
# notif_template_html: notif_mail.html
|
# notif_template_html: notif_mail.html
|
||||||
# notif_template_text: notif_mail.txt
|
# notif_template_text: notif_mail.txt
|
||||||
# notif_for_new_users: True
|
# notif_for_new_users: True
|
||||||
|
|
|
@ -528,7 +528,10 @@ def load_jinja2_templates(config):
|
||||||
"""
|
"""
|
||||||
logger.info("loading jinja2")
|
logger.info("loading jinja2")
|
||||||
|
|
||||||
loader = jinja2.FileSystemLoader(config.email_template_dir)
|
if config.email_template_dir:
|
||||||
|
loader = jinja2.FileSystemLoader(config.email_template_dir)
|
||||||
|
else:
|
||||||
|
loader = jinja2.PackageLoader('synapse', 'res/templates')
|
||||||
env = jinja2.Environment(loader=loader)
|
env = jinja2.Environment(loader=loader)
|
||||||
env.filters["format_ts"] = format_ts_filter
|
env.filters["format_ts"] = format_ts_filter
|
||||||
env.filters["mxc_to_http"] = _create_mxc_to_http_filter(config)
|
env.filters["mxc_to_http"] = _create_mxc_to_http_filter(config)
|
||||||
|
|
Loading…
Reference in a new issue