Synapse module to change the actions of specific push rules when a new user registers.
From the virtual environment that you use for Synapse, install this module with:
pip install path/to/synapse-patch-push-rules
(If you run into issues, you may need to upgrade pip
first, e.g. by running
pip install --upgrade pip
)
Then alter your homeserver configuration, adding to your modules
configuration:
modules:
- module: synapse_patch_push_rules.PushRulesPatcher
config:
# Rules to change with new actions when new users register.
# Required.
rules:
# The rule ID. Must be one of the predefined rules defined in the Matrix
# specification. See https://spec.matrix.org/latest/client-server-api/#predefined-rules
# for a complete list.
".m.rule.message":
# The kind (override, underride or content) of the rule being modified.
# Required.
kind: "underride"
# The new actions for this rule.
# See https://spec.matrix.org/latest/client-server-api/#push-rules for a
# reference on the allowed values and format.
# Required.
actions:
- "dont_notify"
In a virtual environment with pip ≥ 21.1, run
pip install -e .[dev]
To run the unit tests, you can either use:
tox -e py
or
trial tests
To run the linters and mypy
type checker, use ./scripts-dev/lint.sh
.
The exact steps for releasing will vary; but this is an approach taken by the Synapse developers (assuming a Unix-like shell):
-
Set a shell variable to the version you are releasing (this just makes subsequent steps easier):
version=X.Y.Z
-
Update
setup.cfg
so that theversion
is correct. -
Stage the changed files and commit.
git add -u git commit -m v$version -n
-
Push your changes.
git push
-
When ready, create a signed tag for the release:
git tag -s v$version
Base the tag message on the changelog.
-
Push the tag.
git push origin tag v$version
-
Create a source distribution and upload it to PyPI:
python -m build twine upload dist/synapse_patch_push_rules-$version*