mirror of
				https://github.com/element-hq/synapse.git
				synced 2025-11-04 00:01:22 -05:00 
			
		
		
		
	Fix typo
This commit is contained in:
		
							parent
							
								
									0455c40085
								
							
						
					
					
						commit
						930dc9e2d3
					
				@ -151,7 +151,7 @@ is suitable for local testing, but for any practical use, you will either need
 | 
			
		||||
to use a reverse proxy, or configure Synapse to expose an HTTPS port.
 | 
			
		||||
 | 
			
		||||
For documentation on using a reverse proxy, see
 | 
			
		||||
https://github.com/element.-hq/synapse/blob/master/docs/reverse_proxy.md.
 | 
			
		||||
https://github.com/element-hq/synapse/blob/master/docs/reverse_proxy.md.
 | 
			
		||||
 | 
			
		||||
For more information on enabling TLS support in synapse itself, see
 | 
			
		||||
https://element-hq.github.io/synapse/latest/setup/installation.html#tls-certificates. Of
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
# syntax=docker/dockerfile:1
 | 
			
		||||
# This dockerfile builds on top of 'docker/Dockerfile-workers' in element.-hq/synapse
 | 
			
		||||
# This dockerfile builds on top of 'docker/Dockerfile-workers' in element-hq/synapse
 | 
			
		||||
# by including a built-in postgres instance, as well as setting up the homeserver so
 | 
			
		||||
# that it is ready for testing via Complement.
 | 
			
		||||
#
 | 
			
		||||
# Instructions for building this image from those it depends on is detailed in this guide:
 | 
			
		||||
# https://github.com/element.-hq/synapse/blob/develop/docker/README-testing.md#testing-with-postgresql-and-single-or-multi-process-synapse
 | 
			
		||||
# https://github.com/element-hq/synapse/blob/develop/docker/README-testing.md#testing-with-postgresql-and-single-or-multi-process-synapse
 | 
			
		||||
 | 
			
		||||
ARG SYNAPSE_VERSION=latest
 | 
			
		||||
# This is an intermediate image, to be built locally (not pulled from a registry).
 | 
			
		||||
 | 
			
		||||
@ -24,7 +24,7 @@ To enable this, first create templates for the policy and success pages.
 | 
			
		||||
These should be stored on the local filesystem.
 | 
			
		||||
 | 
			
		||||
These templates use the [Jinja2](http://jinja.pocoo.org) templating language,
 | 
			
		||||
and [docs/privacy_policy_templates](https://github.com/element.-hq/synapse/tree/develop/docs/privacy_policy_templates/)
 | 
			
		||||
and [docs/privacy_policy_templates](https://github.com/element-hq/synapse/tree/develop/docs/privacy_policy_templates/)
 | 
			
		||||
gives examples of the sort of thing that can be done.
 | 
			
		||||
 | 
			
		||||
Note that the templates must be stored under a name giving the language of the
 | 
			
		||||
 | 
			
		||||
@ -14,11 +14,11 @@ b2dba0607`:
 | 
			
		||||
Note how the commit comment explains clearly what is changing and why. Also
 | 
			
		||||
note the *absence* of merge commits, as well as the absence of commits called
 | 
			
		||||
things like (to pick a few culprits):
 | 
			
		||||
[“pep8”](https://github.com/element.-hq/synapse/commit/84691da6c), [“fix broken
 | 
			
		||||
test”](https://github.com/element.-hq/synapse/commit/474810d9d),
 | 
			
		||||
[“oops”](https://github.com/element.-hq/synapse/commit/c9d72e457),
 | 
			
		||||
[“typo”](https://github.com/element.-hq/synapse/commit/836358823), or [“Who's
 | 
			
		||||
the president?”](https://github.com/element.-hq/synapse/commit/707374d5d).
 | 
			
		||||
[“pep8”](https://github.com/element-hq/synapse/commit/84691da6c), [“fix broken
 | 
			
		||||
test”](https://github.com/element-hq/synapse/commit/474810d9d),
 | 
			
		||||
[“oops”](https://github.com/element-hq/synapse/commit/c9d72e457),
 | 
			
		||||
[“typo”](https://github.com/element-hq/synapse/commit/836358823), or [“Who's
 | 
			
		||||
the president?”](https://github.com/element-hq/synapse/commit/707374d5d).
 | 
			
		||||
 | 
			
		||||
There are a number of reasons why keeping a clean commit history is a good
 | 
			
		||||
thing:
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
## Streams
 | 
			
		||||
 | 
			
		||||
Synapse has a concept of "streams", which are roughly described in [`id_generators.py`](
 | 
			
		||||
    https://github.com/element.-hq/synapse/blob/develop/synapse/storage/util/id_generators.py
 | 
			
		||||
    https://github.com/element-hq/synapse/blob/develop/synapse/storage/util/id_generators.py
 | 
			
		||||
).
 | 
			
		||||
Generally speaking, streams are a series of notifications that something in Synapse's database has changed that the application might need to respond to.
 | 
			
		||||
For example:
 | 
			
		||||
@ -11,12 +11,12 @@ For example:
 | 
			
		||||
- The to-device stream reports when a device has a new [to-device message](https://spec.matrix.org/v1.7/client-server-api/#send-to-device-messaging).
 | 
			
		||||
 | 
			
		||||
See [`synapse.replication.tcp.streams`](
 | 
			
		||||
    https://github.com/element.-hq/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py
 | 
			
		||||
    https://github.com/element-hq/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py
 | 
			
		||||
) for the full list of streams.
 | 
			
		||||
 | 
			
		||||
It is very helpful to understand the streams mechanism when working on any part of Synapse that needs to respond to changes—especially if those changes are made by different workers.
 | 
			
		||||
To that end, let's describe streams formally, paraphrasing from the docstring of [`AbstractStreamIdGenerator`](
 | 
			
		||||
    https://github.com/element.-hq/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96
 | 
			
		||||
    https://github.com/element-hq/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96
 | 
			
		||||
).
 | 
			
		||||
 | 
			
		||||
### Definition
 | 
			
		||||
 | 
			
		||||
@ -87,8 +87,8 @@
 | 
			
		||||
 | 
			
		||||
1.  Restart Prometheus.
 | 
			
		||||
 | 
			
		||||
1.  Consider using the [grafana dashboard](https://github.com/element.-hq/synapse/tree/master/contrib/grafana/)
 | 
			
		||||
    and required [recording rules](https://github.com/element.-hq/synapse/tree/master/contrib/prometheus/)
 | 
			
		||||
1.  Consider using the [grafana dashboard](https://github.com/element-hq/synapse/tree/master/contrib/grafana/)
 | 
			
		||||
    and required [recording rules](https://github.com/element-hq/synapse/tree/master/contrib/prometheus/)
 | 
			
		||||
 | 
			
		||||
## Monitoring workers
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -10,7 +10,7 @@ either the output of the module's `parse_config` static method (see below), or t
 | 
			
		||||
configuration associated with the module in Synapse's configuration file.
 | 
			
		||||
 | 
			
		||||
See the documentation for the `ModuleApi` class
 | 
			
		||||
[here](https://github.com/element.-hq/synapse/blob/master/synapse/module_api/__init__.py).
 | 
			
		||||
[here](https://github.com/element-hq/synapse/blob/master/synapse/module_api/__init__.py).
 | 
			
		||||
 | 
			
		||||
## When Synapse runs with several modules configured
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -115,7 +115,7 @@ A custom mapping provider must specify the following methods:
 | 
			
		||||
 | 
			
		||||
Synapse has a built-in OpenID mapping provider if a custom provider isn't
 | 
			
		||||
specified in the config. It is located at
 | 
			
		||||
[`synapse.handlers.oidc.JinjaOidcMappingProvider`](https://github.com/element.-hq/synapse/blob/develop/synapse/handlers/oidc.py).
 | 
			
		||||
[`synapse.handlers.oidc.JinjaOidcMappingProvider`](https://github.com/element-hq/synapse/blob/develop/synapse/handlers/oidc.py).
 | 
			
		||||
 | 
			
		||||
## SAML Mapping Providers
 | 
			
		||||
 | 
			
		||||
@ -202,4 +202,4 @@ A custom mapping provider must specify the following methods:
 | 
			
		||||
 | 
			
		||||
Synapse has a built-in SAML mapping provider if a custom provider isn't
 | 
			
		||||
specified in the config. It is located at
 | 
			
		||||
[`synapse.handlers.saml.DefaultSamlMappingProvider`](https://github.com/element.-hq/synapse/blob/develop/synapse/handlers/saml.py).
 | 
			
		||||
[`synapse.handlers.saml.DefaultSamlMappingProvider`](https://github.com/element-hq/synapse/blob/develop/synapse/handlers/saml.py).
 | 
			
		||||
 | 
			
		||||
@ -6,10 +6,10 @@ well as a `matrix-synapse-worker@` service template for any workers you
 | 
			
		||||
require. Additionally, to group the required services, it sets up a
 | 
			
		||||
`matrix-synapse.target`.
 | 
			
		||||
 | 
			
		||||
See the folder [system](https://github.com/element.-hq/synapse/tree/develop/docs/systemd-with-workers/system/)
 | 
			
		||||
See the folder [system](https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/)
 | 
			
		||||
for the systemd unit files.
 | 
			
		||||
 | 
			
		||||
The folder [workers](https://github.com/element.-hq/synapse/tree/develop/docs/systemd-with-workers/workers/)
 | 
			
		||||
The folder [workers](https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/workers/)
 | 
			
		||||
contains an example configuration for the `generic_worker` worker.
 | 
			
		||||
 | 
			
		||||
## Synapse configuration files
 | 
			
		||||
@ -33,7 +33,7 @@ There is no need for a separate configuration file for the master process.
 | 
			
		||||
## Set up
 | 
			
		||||
 | 
			
		||||
1. Adjust synapse configuration files as above.
 | 
			
		||||
1. Copy the `*.service` and `*.target` files in [system](https://github.com/element.-hq/synapse/tree/develop/docs/systemd-with-workers/system/)
 | 
			
		||||
1. Copy the `*.service` and `*.target` files in [system](https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/)
 | 
			
		||||
to `/etc/systemd/system`.
 | 
			
		||||
1. Run `systemctl daemon-reload` to tell systemd to load the new unit files.
 | 
			
		||||
1. Run `systemctl enable matrix-synapse.service`. This will configure the
 | 
			
		||||
@ -74,7 +74,7 @@ systemctl restart matrix-synapse.target
 | 
			
		||||
 | 
			
		||||
**Optional:** If further hardening is desired, the file
 | 
			
		||||
`override-hardened.conf` may be copied from
 | 
			
		||||
[contrib/systemd/override-hardened.conf](https://github.com/element.-hq/synapse/tree/develop/contrib/systemd/)
 | 
			
		||||
[contrib/systemd/override-hardened.conf](https://github.com/element-hq/synapse/tree/develop/contrib/systemd/)
 | 
			
		||||
in this repository to the location
 | 
			
		||||
`/etc/systemd/system/matrix-synapse.service.d/override-hardened.conf` (the
 | 
			
		||||
directory may have to be created). It enables certain sandboxing features in
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@
 | 
			
		||||
Synapse uses parametrised templates to generate the content of emails it sends and
 | 
			
		||||
webpages it shows to users.
 | 
			
		||||
 | 
			
		||||
By default, Synapse will use the templates listed [here](https://github.com/element.-hq/synapse/tree/master/synapse/res/templates).
 | 
			
		||||
By default, Synapse will use the templates listed [here](https://github.com/element-hq/synapse/tree/master/synapse/res/templates).
 | 
			
		||||
Server admins can configure an additional directory for Synapse to look for templates
 | 
			
		||||
in, allowing them to specify custom templates:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1068,7 +1068,7 @@ As announced with the release of [Synapse 1.47.0](#deprecation-of-the-user_may_c
 | 
			
		||||
the deprecated `user_may_create_room_with_invites` module callback has been removed.
 | 
			
		||||
 | 
			
		||||
Modules relying on it can instead implement [`user_may_invite`](https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite)
 | 
			
		||||
and use the [`get_room_state`](https://github.com/element.-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876)
 | 
			
		||||
and use the [`get_room_state`](https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876)
 | 
			
		||||
module API to infer whether the invite is happening while creating a room (see [this function](https://github.com/matrix-org/synapse-domain-rule-checker/blob/e7d092dd9f2a7f844928771dbfd9fd24c2332e48/synapse_domain_rule_checker/__init__.py#L56-L89)
 | 
			
		||||
as an example). Alternately, modules can also implement [`on_create_room`](https://element-hq.github.io/synapse/latest/modules/third_party_rules_callbacks.html#on_create_room).
 | 
			
		||||
 | 
			
		||||
@ -1124,7 +1124,7 @@ Any scripts still using the above APIs should be converted to use the
 | 
			
		||||
The `user_may_create_room_with_invites` is deprecated and will be removed in a future
 | 
			
		||||
version of Synapse. Modules implementing this callback can instead implement
 | 
			
		||||
[`user_may_invite`](https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite)
 | 
			
		||||
and use the [`get_room_state`](https://github.com/element.-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876)
 | 
			
		||||
and use the [`get_room_state`](https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876)
 | 
			
		||||
module API method to infer whether the invite is happening in the context of creating a
 | 
			
		||||
room.
 | 
			
		||||
 | 
			
		||||
@ -1171,8 +1171,8 @@ Any scripts still using the above APIs should be converted to use the
 | 
			
		||||
## User-interactive authentication fallback templates can now display errors
 | 
			
		||||
 | 
			
		||||
This may affect you if you make use of custom HTML templates for the
 | 
			
		||||
[reCAPTCHA (`synapse/res/templates/recaptcha.html`)](https://github.com/element.-hq/synapse/tree/develop/synapse/res/templates/recaptcha.html) or
 | 
			
		||||
[terms (`synapse/res/templates/terms.html`)](https://github.com/element.-hq/synapse/tree/develop/synapse/res/templates/terms.html) fallback pages.
 | 
			
		||||
[reCAPTCHA (`synapse/res/templates/recaptcha.html`)](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/recaptcha.html) or
 | 
			
		||||
[terms (`synapse/res/templates/terms.html`)](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/terms.html) fallback pages.
 | 
			
		||||
 | 
			
		||||
The template is now provided an `error` variable if the authentication
 | 
			
		||||
process failed. See the default templates linked above for an example.
 | 
			
		||||
@ -1671,7 +1671,7 @@ update your reverse proxy configuration to reflect this change.
 | 
			
		||||
## New HTML templates
 | 
			
		||||
 | 
			
		||||
A new HTML template,
 | 
			
		||||
[password_reset_confirmation.html](https://github.com/element.-hq/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html),
 | 
			
		||||
[password_reset_confirmation.html](https://github.com/element-hq/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html),
 | 
			
		||||
has been added to the `synapse/res/templates` directory. If you are
 | 
			
		||||
using a custom template directory, you may want to copy the template
 | 
			
		||||
over and modify it.
 | 
			
		||||
@ -1770,7 +1770,7 @@ New templates (`sso_auth_confirm.html`, `sso_auth_success.html`, and
 | 
			
		||||
is configured to use SSO and a custom
 | 
			
		||||
`sso_redirect_confirm_template_dir` configuration then these templates
 | 
			
		||||
will need to be copied from
 | 
			
		||||
[`synapse/res/templates`](https://github.com/element.-hq/synapse/tree/develop/synapse/res/templates) into that directory.
 | 
			
		||||
[`synapse/res/templates`](https://github.com/element-hq/synapse/tree/develop/synapse/res/templates) into that directory.
 | 
			
		||||
 | 
			
		||||
## Synapse SSO Plugins Method Deprecation
 | 
			
		||||
 | 
			
		||||
@ -1923,7 +1923,7 @@ included.
 | 
			
		||||
Synapse will expect these files to exist inside the configured template
 | 
			
		||||
directory, and **will fail to start** if they are absent. To view the
 | 
			
		||||
default templates, see
 | 
			
		||||
[synapse/res/templates](https://github.com/element.-hq/synapse/tree/master/synapse/res/templates).
 | 
			
		||||
[synapse/res/templates](https://github.com/element-hq/synapse/tree/master/synapse/res/templates).
 | 
			
		||||
 | 
			
		||||
## 3pid verification changes
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,6 @@
 | 
			
		||||
# Request log format
 | 
			
		||||
 | 
			
		||||
HTTP request logs are written by synapse (see [`synapse/http/site.py`](https://github.com/element.-hq/synapse/tree/develop/synapse/http/site.py) for details).
 | 
			
		||||
HTTP request logs are written by synapse (see [`synapse/http/site.py`](https://github.com/element-hq/synapse/tree/develop/synapse/http/site.py) for details).
 | 
			
		||||
 | 
			
		||||
See the following for how to decode the dense data available from the default logging configuration.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -3,12 +3,12 @@
 | 
			
		||||
It is possible to monitor much of the internal state of Synapse using [Prometheus](https://prometheus.io)
 | 
			
		||||
metrics and [Grafana](https://grafana.com/).
 | 
			
		||||
A guide for configuring Synapse to provide metrics is available [here](../../metrics-howto.md)
 | 
			
		||||
and information on setting up Grafana is [here](https://github.com/element.-hq/synapse/tree/master/contrib/grafana).
 | 
			
		||||
and information on setting up Grafana is [here](https://github.com/element-hq/synapse/tree/master/contrib/grafana).
 | 
			
		||||
In this setup, Prometheus will periodically scrape the information Synapse provides and
 | 
			
		||||
store a record of it over time. Grafana is then used as an interface to query and
 | 
			
		||||
present this information through a series of pretty graphs.
 | 
			
		||||
 | 
			
		||||
Once you have grafana set up, and assuming you're using [our grafana dashboard template](https://github.com/element.-hq/synapse/blob/master/contrib/grafana/synapse.json), look for the following graphs when debugging a slow/overloaded Synapse:
 | 
			
		||||
Once you have grafana set up, and assuming you're using [our grafana dashboard template](https://github.com/element-hq/synapse/blob/master/contrib/grafana/synapse.json), look for the following graphs when debugging a slow/overloaded Synapse:
 | 
			
		||||
 | 
			
		||||
## Message Event Send Time
 | 
			
		||||
 | 
			
		||||
@ -57,7 +57,7 @@ Cross-referencing this with the Eviction Rate graph, which shows that entries ar
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available [here](https://github.com/element.-hq/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642) (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.
 | 
			
		||||
we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available [here](https://github.com/element-hq/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642) (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.
 | 
			
		||||
 | 
			
		||||
## Forward Extremities
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1416,7 +1416,7 @@ kill -HUP [PID_OF_SYNAPSE_PROCESS]
 | 
			
		||||
If you are running multiple workers, you must individually update the worker
 | 
			
		||||
config file and send this signal to each worker process.
 | 
			
		||||
 | 
			
		||||
If you're using the [example systemd service](https://github.com/element.-hq/synapse/blob/develop/contrib/systemd/matrix-synapse.service)
 | 
			
		||||
If you're using the [example systemd service](https://github.com/element-hq/synapse/blob/develop/contrib/systemd/matrix-synapse.service)
 | 
			
		||||
file in Synapse's `contrib` directory, you can send a `SIGHUP` signal by using
 | 
			
		||||
`systemctl reload matrix-synapse`.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -36,17 +36,17 @@ following documentation:
 | 
			
		||||
* Read the [Contributing Guide](development/contributing_guide.md). It is meant
 | 
			
		||||
  to walk new contributors through the process of developing and submitting a
 | 
			
		||||
  change to the Synapse codebase (which is [hosted on
 | 
			
		||||
  GitHub](https://github.com/element.-hq/synapse)).
 | 
			
		||||
  GitHub](https://github.com/element-hq/synapse)).
 | 
			
		||||
 | 
			
		||||
* Set up your [development
 | 
			
		||||
  environment](development/contributing_guide.md#2-what-do-i-need), then learn
 | 
			
		||||
  how to [lint](development/contributing_guide.md#run-the-linters) and
 | 
			
		||||
  [test](development/contributing_guide.md#8-test-test-test) your code.
 | 
			
		||||
 | 
			
		||||
* Look at [the issue tracker](https://github.com/element.-hq/synapse/issues) for
 | 
			
		||||
* Look at [the issue tracker](https://github.com/element-hq/synapse/issues) for
 | 
			
		||||
  bugs to fix or features to add. If you're new, it may be best to start with
 | 
			
		||||
  those labeled [good first
 | 
			
		||||
  issue](https://github.com/element.-hq/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
 | 
			
		||||
  issue](https://github.com/element-hq/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
 | 
			
		||||
 | 
			
		||||
* Understand [how Synapse is
 | 
			
		||||
  built](development/internal_documentation/index.html), how to [migrate
 | 
			
		||||
@ -58,7 +58,7 @@ following documentation:
 | 
			
		||||
  do so!
 | 
			
		||||
 | 
			
		||||
* And finally, contribute to this documentation! The source for which is
 | 
			
		||||
  [located here](https://github.com/element.-hq/synapse/tree/develop/docs).
 | 
			
		||||
  [located here](https://github.com/element-hq/synapse/tree/develop/docs).
 | 
			
		||||
 | 
			
		||||
## Reporting a security vulnerability
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,6 @@ set -e
 | 
			
		||||
 | 
			
		||||
# Fetch the current GitHub issue number, add one to it -- presto! The likely
 | 
			
		||||
# next PR number.
 | 
			
		||||
CURRENT_NUMBER=$(curl -s "https://api.github.com/repos/element.-hq/synapse/issues?state=all&per_page=1" | jq -r ".[0].number")
 | 
			
		||||
CURRENT_NUMBER=$(curl -s "https://api.github.com/repos/element-hq/synapse/issues?state=all&per_page=1" | jq -r ".[0].number")
 | 
			
		||||
CURRENT_NUMBER=$((CURRENT_NUMBER+1))
 | 
			
		||||
echo $CURRENT_NUMBER
 | 
			
		||||
 | 
			
		||||
@ -293,7 +293,7 @@ def _prepare() -> None:
 | 
			
		||||
    print("Opening the changelog in your browser...")
 | 
			
		||||
    print("Please ask #synapse-dev to give it a check.")
 | 
			
		||||
    click.launch(
 | 
			
		||||
        f"https://github.com/element.-hq/synapse/blob/{synapse_repo.active_branch.name}/CHANGES.md"
 | 
			
		||||
        f"https://github.com/element-hq/synapse/blob/{synapse_repo.active_branch.name}/CHANGES.md"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -361,18 +361,18 @@ def _tag(gh_token: Optional[str]) -> None:
 | 
			
		||||
            print("As this is an RC, remember to mark it as a pre-release!")
 | 
			
		||||
        print("(by the way, this step can be automated by passing --gh-token,")
 | 
			
		||||
        print("or one of the GH_TOKEN or GITHUB_TOKEN env vars.)")
 | 
			
		||||
        click.launch(f"https://github.com/element.-hq/synapse/releases/edit/{tag_name}")
 | 
			
		||||
        click.launch(f"https://github.com/element-hq/synapse/releases/edit/{tag_name}")
 | 
			
		||||
 | 
			
		||||
        print("Once done, you need to wait for the release assets to build.")
 | 
			
		||||
        if click.confirm("Launch the release assets actions page?", default=True):
 | 
			
		||||
            click.launch(
 | 
			
		||||
                f"https://github.com/element.-hq/synapse/actions?query=branch%3A{tag_name}"
 | 
			
		||||
                f"https://github.com/element-hq/synapse/actions?query=branch%3A{tag_name}"
 | 
			
		||||
            )
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    # Create a new draft release
 | 
			
		||||
    gh = Github(gh_token)
 | 
			
		||||
    gh_repo = gh.get_repo("element.-hq/synapse")
 | 
			
		||||
    gh_repo = gh.get_repo("element-hq/synapse")
 | 
			
		||||
    release = gh_repo.create_git_release(
 | 
			
		||||
        tag=tag_name,
 | 
			
		||||
        name=tag_name,
 | 
			
		||||
@ -385,7 +385,7 @@ def _tag(gh_token: Optional[str]) -> None:
 | 
			
		||||
    print("Launching the release page and the actions page.")
 | 
			
		||||
    click.launch(release.html_url)
 | 
			
		||||
    click.launch(
 | 
			
		||||
        f"https://github.com/element.-hq/synapse/actions?query=branch%3A{tag_name}"
 | 
			
		||||
        f"https://github.com/element-hq/synapse/actions?query=branch%3A{tag_name}"
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    click.echo("Wait for release assets to be built")
 | 
			
		||||
@ -411,7 +411,7 @@ def _publish(gh_token: str) -> None:
 | 
			
		||||
 | 
			
		||||
    # Publish the draft release
 | 
			
		||||
    gh = Github(gh_token)
 | 
			
		||||
    gh_repo = gh.get_repo("element.-hq/synapse")
 | 
			
		||||
    gh_repo = gh.get_repo("element-hq/synapse")
 | 
			
		||||
    for release in gh_repo.get_releases():
 | 
			
		||||
        if release.title == tag_name:
 | 
			
		||||
            break
 | 
			
		||||
@ -454,7 +454,7 @@ def _upload(gh_token: Optional[str]) -> None:
 | 
			
		||||
 | 
			
		||||
    # Query all the assets corresponding to this release.
 | 
			
		||||
    gh = Github(gh_token)
 | 
			
		||||
    gh_repo = gh.get_repo("element.-hq/synapse")
 | 
			
		||||
    gh_repo = gh.get_repo("element-hq/synapse")
 | 
			
		||||
    gh_release = gh_repo.get_release(tag_name)
 | 
			
		||||
 | 
			
		||||
    all_assets = set(gh_release.get_assets())
 | 
			
		||||
@ -543,9 +543,7 @@ def _wait_for_actions(gh_token: Optional[str]) -> None:
 | 
			
		||||
 | 
			
		||||
    # Authentication is optional on this endpoint,
 | 
			
		||||
    # but use a token if we have one to reduce the chance of being rate-limited.
 | 
			
		||||
    url = (
 | 
			
		||||
        f"https://api.github.com/repos/element.-hq/synapse/actions/runs?branch={tag_name}"
 | 
			
		||||
    )
 | 
			
		||||
    url = f"https://api.github.com/repos/element-hq/synapse/actions/runs?branch={tag_name}"
 | 
			
		||||
    headers = {"Accept": "application/vnd.github+json"}
 | 
			
		||||
    if gh_token is not None:
 | 
			
		||||
        headers["authorization"] = f"token {gh_token}"
 | 
			
		||||
@ -660,7 +658,7 @@ def _announce() -> None:
 | 
			
		||||
        f"""
 | 
			
		||||
Hi everyone. Synapse {current_version} has just been released.
 | 
			
		||||
 | 
			
		||||
[notes](https://github.com/element.-hq/synapse/releases/tag/{tag_name}) | \
 | 
			
		||||
[notes](https://github.com/element-hq/synapse/releases/tag/{tag_name}) | \
 | 
			
		||||
[docker](https://hub.docker.com/r/vectorim/synapse/tags?name={tag_name}) | \
 | 
			
		||||
[debs](https://packages.matrix.org/debian/) | \
 | 
			
		||||
[pypi](https://pypi.org/project/matrix-synapse/{current_version}/)"""
 | 
			
		||||
@ -691,7 +689,7 @@ Ask the designated people to do the blog and tweets."""
 | 
			
		||||
def full(gh_token: str) -> None:
 | 
			
		||||
    click.echo("1. If this is a security release, read the security wiki page.")
 | 
			
		||||
    click.echo("2. Check for any release blockers before proceeding.")
 | 
			
		||||
    click.echo("    https://github.com/element.-hq/synapse/labels/X-Release-Blocker")
 | 
			
		||||
    click.echo("    https://github.com/element-hq/synapse/labels/X-Release-Blocker")
 | 
			
		||||
    click.echo(
 | 
			
		||||
        "3. Check for any other special release notes, including announcements to add to the changelog or special deployment instructions."
 | 
			
		||||
    )
 | 
			
		||||
@ -895,7 +893,7 @@ def build_dependabot_changelog(repo: Repo, current_version: version.Version) ->
 | 
			
		||||
    def replacer(match: Match[str]) -> str:
 | 
			
		||||
        desc = match.group(1)
 | 
			
		||||
        number = match.group(2)
 | 
			
		||||
        return f"* {desc}. ([\\#{number}](https://github.com/element.-hq/synapse/issues/{number}))"
 | 
			
		||||
        return f"* {desc}. ([\\#{number}](https://github.com/element-hq/synapse/issues/{number}))"
 | 
			
		||||
 | 
			
		||||
    for i, message in enumerate(messages):
 | 
			
		||||
        messages[i] = re.sub(r"(.*) \(#(\d+)\)$", replacer, message)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user