From 2ab69e081674596352f3fd4a2af874fad9abfdcf Mon Sep 17 00:00:00 2001
From: erikjohnston This document aims to get you started with contributing to Synapse! Everyone is welcome to contribute code to matrix.org
-projects, provided that they are willing to
+ Everyone is welcome to contribute code to Synapse,
+provided that they are willing to
license their contributions under the same license as the project itself. We
follow a simple 'inbound=outbound' model for contributions: the act of
submitting an 'inbound' contribution means that the contributor agrees to
license the code under the same terms as the project's overall 'outbound'
license - in our case, this is almost always Apache Software License v2 (see
-LICENSE).Contributing
1. Who can contribute to Synapse?
-
TODO THIS NEEDS UPDATING
If you are running Windows, the Windows Subsystem for Linux (WSL) is strongly recommended for development. More information about WSL can be found at @@ -222,8 +223,8 @@ cp docs/sample_log_config.yaml log_config.yaml
server_name
log_config
to point to the log config you just copiedregistration_shared_secret
so you can use register_new_matrix_user
command.registration_shared_secret
so you can use register_new_matrix_user
command.And then run Synapse with the following command:
poetry run python -m synapse.app.homeserver -c homeserver.yaml
@@ -236,19 +237,19 @@ resolve any issues and re-run until successful.
5. Get in touch.
Join our developer community on Matrix: #synapse-dev:matrix.org!
6. Pick an issue.
-Fix your favorite problem or perhaps find a Good First Issue
+
Fix your favorite problem or perhaps find a Good First Issue
to work on.
7. Turn coffee into code and documentation!
There is a growing amount of documentation located in the
-docs
-directory, with a rendered version available online.
+docs
+directory, with a rendered version available online.
This documentation is intended primarily for sysadmins running their
own Synapse instance, as well as developers interacting externally with
Synapse.
-docs/development
+docs/development
exists primarily to house documentation for
Synapse developers.
-docs/admin_api
houses documentation
+docs/admin_api
houses documentation
regarding Synapse's Admin API, which is used mostly by sysadmins and external
service developers.
Synapse's code style is documented here. Please follow
@@ -256,12 +257,9 @@ it, including the conventions for build docs
to a book
+build docs
to a book
to check that your contributions render correctly. The docs are written in
GitHub-Flavoured Markdown.
-Some documentation also exists in Synapse's GitHub
-Wiki, although this is primarily
-contributed to by community authors.
When changes are made to any Rust code then you must call either poetry install
or maturin develop
(if installed) to rebuild the Rust code. Using maturin
is quicker than poetry install
, so is recommended when making frequent
@@ -376,7 +374,7 @@ configuration:
To run with Postgres, supply the -e POSTGRES=1 -e MULTI_POSTGRES=1
environment flags.
To run with Synapse in worker mode, supply the -e WORKERS=1 -e REDIS=1
environment flags (in addition to the Postgres flags).
-For more details about other configurations, see the Docker-specific documentation in the SyTest repo.
+For more details about other configurations, see the Docker-specific documentation in the SyTest repo.
Run the integration tests (Complement).
Complement is a suite of black box tests that can be run on any homeserver implementation. It can also be thought of as end-to-end (e2e) tests.
It's often nice to develop on Synapse and write Complement tests at the same time.
@@ -398,7 +396,7 @@ Here is how to run your local Synapse checkout against your local Complement che
If setting WORKERS=1
, optionally set WORKER_TYPES=
to declare which worker
types you wish to test. A simple comma-delimited string containing the worker types
defined from the WORKERS_CONFIG
template in
-here.
+here.
A safe example would be WORKER_TYPES="federation_inbound, federation_sender, synchrotron"
.
See the worker documentation for additional information on workers.
@@ -452,7 +450,7 @@ in the format of PRnumber.type
. The type can be one of the followin
removal
(also used for deprecations)
misc
(for internal-only changes)
-This file will become part of our changelog at the next
+
This file will become part of our changelog at the next
release, so the content of the file should be a short description of your
change in the same style as the rest of the changelog. The file can contain Markdown
formatting, and must end with a full stop (.) or an exclamation mark (!) for
@@ -480,7 +478,7 @@ chicken-and-egg problem.
add the changelog file to your branch, or:
-Look at the list of all
+Look at the list of all
issues/PRs, add one to the
highest number you see, and quickly open the PR before somebody else claims
your number.
--
cgit 1.5.1