synapse/pyproject.toml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

420 lines
15 KiB
TOML
Raw Normal View History

[tool.towncrier]
package = "synapse"
2018-07-19 11:25:47 +00:00
filename = "CHANGES.md"
directory = "changelog.d"
2023-11-20 19:18:58 +00:00
issue_format = "[\\#{issue}](https://github.com/element-hq/synapse/issues/{issue})"
2018-07-19 11:25:47 +00:00
[[tool.towncrier.type]]
directory = "feature"
name = "Features"
showcontent = true
[[tool.towncrier.type]]
directory = "bugfix"
name = "Bugfixes"
showcontent = true
[[tool.towncrier.type]]
directory = "docker"
name = "Updates to the Docker image"
showcontent = true
2018-07-19 11:25:47 +00:00
[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true
[[tool.towncrier.type]]
directory = "removal"
name = "Deprecations and Removals"
showcontent = true
[[tool.towncrier.type]]
directory = "misc"
name = "Internal Changes"
showcontent = true
2019-06-20 09:32:02 +00:00
[tool.black]
target-version = ['py38', 'py39', 'py310', 'py311']
# black ignores everything in .gitignore by default, see
# https://black.readthedocs.io/en/stable/usage_and_configuration/file_collection_and_discovery.html#gitignore
# Use `extend-exclude` if you want to exclude something in addition to this.
[tool.ruff]
line-length = 88
# See https://beta.ruff.rs/docs/rules/#error-e
# for error codes. The ones we ignore are:
# E501: Line too long (black enforces this for us)
# E731: do not assign a lambda expression, use a def
#
# flake8-bugbear compatible checks. Its error codes are described at
# https://beta.ruff.rs/docs/rules/#flake8-bugbear-b
# B023: Functions defined inside a loop must not use variables redefined in the loop
ignore = [
"B023",
"E501",
"E731",
]
select = [
# pycodestyle
"E",
"W",
# pyflakes
"F",
# flake8-bugbear
"B0",
# flake8-comprehensions
"C4",
# flake8-2020
"YTT",
# flake8-slots
"SLOT",
# flake8-debugger
"T10",
# flake8-pie
"PIE",
# flake8-executable
"EXE",
]
[tool.isort]
line_length = 88
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "TWISTED", "FIRSTPARTY", "TESTS", "LOCALFOLDER"]
default_section = "THIRDPARTY"
known_first_party = ["synapse"]
known_tests = ["tests"]
known_twisted = ["twisted", "OpenSSL"]
multi_line_output = 3
include_trailing_comma = true
combine_as_imports = true
skip_gitignore = true
2022-09-06 18:01:37 +00:00
[tool.maturin]
manifest-path = "rust/Cargo.toml"
module-name = "synapse.synapse_rust"
2022-09-06 18:01:37 +00:00
[tool.poetry]
name = "matrix-synapse"
2024-04-25 14:55:18 +00:00
version = "1.106.0rc1"
description = "Homeserver for the Matrix decentralised comms protocol"
authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
2023-11-21 20:29:55 +00:00
license = "AGPL-3.0-or-later"
readme = "README.rst"
2023-11-20 19:18:58 +00:00
repository = "https://github.com/element-hq/synapse"
packages = [
{ include = "synapse" },
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Topic :: Communications :: Chat",
]
include = [
{ path = "AUTHORS.rst", format = "sdist" },
{ path = "book.toml", format = "sdist" },
{ path = "changelog.d", format = "sdist" },
{ path = "CHANGES.md", format = "sdist" },
{ path = "CONTRIBUTING.md", format = "sdist" },
{ path = "demo", format = "sdist" },
{ path = "docs", format = "sdist" },
{ path = "INSTALL.md", format = "sdist" },
{ path = "mypy.ini", format = "sdist" },
{ path = "scripts-dev", format = "sdist" },
{ path = "synmark", format="sdist" },
{ path = "sytest-blacklist", format = "sdist" },
{ path = "tests", format = "sdist" },
{ path = "UPGRADE.rst", format = "sdist" },
2022-09-06 18:01:37 +00:00
{ path = "Cargo.toml", format = "sdist" },
{ path = "Cargo.lock", format = "sdist" },
2022-09-06 18:01:37 +00:00
{ path = "rust/Cargo.toml", format = "sdist" },
{ path = "rust/build.rs", format = "sdist" },
2022-09-06 18:01:37 +00:00
{ path = "rust/src/**", format = "sdist" },
]
exclude = [
{ path = "synapse/*.so", format = "sdist"}
]
2023-02-06 19:34:14 +00:00
[tool.poetry.build]
script = "build_rust.py"
generate-setup-file = true
2022-09-06 18:01:37 +00:00
[tool.poetry.scripts]
synapse_homeserver = "synapse.app.homeserver:main"
synapse_worker = "synapse.app.generic_worker:main"
synctl = "synapse._scripts.synctl:main"
export_signing_key = "synapse._scripts.export_signing_key:main"
generate_config = "synapse._scripts.generate_config:main"
generate_log_config = "synapse._scripts.generate_log_config:main"
generate_signing_key = "synapse._scripts.generate_signing_key:main"
hash_password = "synapse._scripts.hash_password:main"
register_new_matrix_user = "synapse._scripts.register_new_matrix_user:main"
synapse_port_db = "synapse._scripts.synapse_port_db:main"
synapse_review_recent_signups = "synapse._scripts.review_recent_signups:main"
update_synapse_database = "synapse._scripts.update_synapse_database:main"
[tool.poetry.dependencies]
python = "^3.8.0"
# Mandatory Dependencies
# ----------------------
# we use the TYPE_CHECKER.redefine method added in jsonschema 3.0.0
jsonschema = ">=3.0.0"
# We choose 2.0 as a lower bound: the most recent backwards incompatible release.
# It seems generally available, judging by https://pkgs.org/search/?q=immutabledict
immutabledict = ">=2.0"
# We require 2.1.0 or higher for type hints. Previous guard was >= 1.1.0
unpaddedbase64 = ">=2.1.0"
# We require 2.0.0 for immutabledict support.
canonicaljson = "^2.0.0"
# we use the type definitions added in signedjson 1.1.
signedjson = "^1.1.0"
# validating SSL certs for IP addresses requires service_identity 18.1.
service-identity = ">=18.1.0"
# Twisted 18.9 introduces some logger improvements that the structured
# logger utilises
Twisted = {extras = ["tls"], version = ">=18.9.0"}
treq = ">=15.1"
# Twisted has required pyopenssl 16.0 since about Twisted 16.6.
pyOpenSSL = ">=16.0.0"
PyYAML = ">=3.13"
pyasn1 = ">=0.1.9"
pyasn1-modules = ">=0.0.7"
2022-09-06 14:21:55 +00:00
bcrypt = ">=3.1.7"
# 10.0.1 minimum is mandatory here because of libwebp CVE-2023-4863.
# Packagers that already took care of libwebp can lower that down to 5.4.0.
Pillow = ">=10.0.1"
# We use SortedDict.peekitem(), which was added in sortedcontainers 1.5.2.
sortedcontainers = ">=1.5.2"
pymacaroons = ">=0.13.0"
msgpack = ">=0.5.2"
phonenumbers = ">=8.2.0"
# we use GaugeHistogramMetric, which was added in prom-client 0.4.0.
prometheus-client = ">=0.4.0"
# we use `order`, which arrived in attrs 19.2.0.
# Note: 21.1.0 broke `/sync`, see https://github.com/matrix-org/synapse/issues/9936
attrs = ">=19.2.0,!=21.1.0"
netaddr = ">=0.7.18"
# Jinja 2.x is incompatible with MarkupSafe>=2.1. To ensure that admins do not
# end up with a broken installation, with recent MarkupSafe but old Jinja, we
# add a lower bound to the Jinja2 dependency.
Jinja2 = ">=3.0"
bleach = ">=1.4.3"
# We use `ParamSpec` and `Concatenate`, which were added in `typing-extensions` 3.10.0.0.
# Additionally we need https://github.com/python/typing/pull/817 to allow types to be
# generic over ParamSpecs.
typing-extensions = ">=3.10.0.1"
# We enforce that we have a `cryptography` version that bundles an `openssl`
# with the latest security patches.
cryptography = ">=3.4.7"
# ijson 3.1.4 fixes a bug with "." in property names
ijson = ">=3.1.4"
matrix-common = "^1.3.0"
# We need packaging.verison.Version(...).major added in 20.0.
packaging = ">=20.0"
# We support pydantic v1 and pydantic v2 via the pydantic.v1 compat module.
# See https://github.com/matrix-org/synapse/issues/15858
pydantic = ">=1.7.4, <3"
2022-09-06 18:01:37 +00:00
# This is for building the rust components during "poetry install", which
# currently ignores the `build-system.requires` directive (c.f.
# https://github.com/python-poetry/poetry/issues/6154). Both `pip install` and
# `poetry build` do the right thing without this explicit dependency.
#
# This isn't really a dev-dependency, as `poetry install --no-dev` will fail,
# but the alternative is to add it to the main list of deps where it isn't
# needed.
setuptools_rust = ">=1.3"
# Optional Dependencies
# ---------------------
matrix-synapse-ldap3 = { version = ">=0.1", optional = true }
psycopg2 = { version = ">=2.8", markers = "platform_python_implementation != 'PyPy'", optional = true }
psycopg2cffi = { version = ">=2.8", markers = "platform_python_implementation == 'PyPy'", optional = true }
psycopg2cffi-compat = { version = "==1.1", markers = "platform_python_implementation == 'PyPy'", optional = true }
pysaml2 = { version = ">=4.5.0", optional = true }
authlib = { version = ">=0.15.1", optional = true }
# systemd-python is necessary for logging to the systemd journal via
# `systemd.journal.JournalHandler`, as is documented in
# `contrib/systemd/log_config.yaml`.
# Note: systemd-python 231 appears to have been yanked from pypi
systemd-python = { version = ">=231", optional = true }
lxml = { version = ">=4.2.0", optional = true }
sentry-sdk = { version = ">=0.7.2", optional = true }
opentracing = { version = ">=2.2.0", optional = true }
jaeger-client = { version = ">=4.0.0", optional = true }
txredisapi = { version = ">=1.4.7", optional = true }
hiredis = { version = "*", optional = true }
Pympler = { version = "*", optional = true }
parameterized = { version = ">=0.7.4", optional = true }
idna = { version = ">=2.5", optional = true }
pyicu = { version = ">=2.10.2", optional = true }
[tool.poetry.extras]
# NB: Packages that should be part of `pip install matrix-synapse[all]` need to be specified
# twice: once here, and once in the `all` extra.
matrix-synapse-ldap3 = ["matrix-synapse-ldap3"]
postgres = ["psycopg2", "psycopg2cffi", "psycopg2cffi-compat"]
saml2 = ["pysaml2"]
oidc = ["authlib"]
# systemd-python is necessary for logging to the systemd journal via
# `systemd.journal.JournalHandler`, as is documented in
# `contrib/systemd/log_config.yaml`.
systemd = ["systemd-python"]
url-preview = ["lxml"]
sentry = ["sentry-sdk"]
opentracing = ["jaeger-client", "opentracing"]
jwt = ["authlib"]
# hiredis is not a *strict* dependency, but it makes things much faster.
# (if it is not installed, we fall back to slow code.)
redis = ["txredisapi", "hiredis"]
# Required to use experimental `caches.track_memory_usage` config option.
cache-memory = ["pympler"]
test = ["parameterized", "idna"]
# Allows for better search for international characters in the user directory. This
# requires libicu's development headers installed on the system (e.g. libicu-dev on
# Debian-based distributions).
user-search = ["pyicu"]
# The duplication here is awful. I hate hate hate hate hate it. However, for now I want
# to ensure you can still `pip install matrix-synapse[all]` like today. Two motivations:
# 1) for new installations, I want instructions in existing documentation and tutorials
# out there to still work.
# 2) I don't want to hard-code a list of extras into CI if I can help it. The ideal
# solution here would be something like https://github.com/python-poetry/poetry/issues/3413
# Poetry 1.2's dependency groups might make this easier. But I'm not trying that out
# until there's a stable release of 1.2.
#
# NB: the strings in this list must be *package* names, not extra names.
# Some of our extra names _are_ package names, which can lead to great confusion.
all = [
# matrix-synapse-ldap3
"matrix-synapse-ldap3",
# postgres
"psycopg2", "psycopg2cffi", "psycopg2cffi-compat",
# saml2
"pysaml2",
# oidc and jwt
"authlib",
# url-preview
"lxml",
# sentry
"sentry-sdk",
# opentracing
"jaeger-client", "opentracing",
# redis
"txredisapi", "hiredis",
# cache-memory
"pympler",
# improved user search
"pyicu",
# omitted:
# - test: it's useful to have this separate from dev deps in the olddeps job
# - systemd: this is a system-based requirement
]
[tool.poetry.dev-dependencies]
# We pin development dependencies in poetry.lock so that our tests don't start
# failing on new releases. Keeping lower bounds loose here means that dependabot
# can bump versions without having to update the content-hash in the lockfile.
# This helps prevents merge conflicts when running a batch of dependabot updates.
isort = ">=5.10.1"
black = ">=22.7.0"
Bump ruff from 0.3.5 to 0.3.7 (#17094) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.5 to 0.3.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>v0.3.7</h2> <h2>Changes</h2> <h3>Preview features</h3> <ul> <li>[<code>flake8-bugbear</code>] Implement <code>loop-iterator-mutation</code> (<code>B909</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/9578">#9578</a>)</li> <li>[<code>pylint</code>] Implement rule to prefer augmented assignment (<code>PLR6104</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/9932">#9932</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Avoid TOCTOU errors in cache initialization (<a href="https://redirect.github.com/astral-sh/ruff/pull/10884">#10884</a>)</li> <li>[<code>pylint</code>] Recode <code>nan-comparison</code> rule to <code>W0177</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10894">#10894</a>)</li> <li>[<code>pylint</code>] Reverse min-max logic in <code>if-stmt-min-max</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10890">#10890</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/carljm"><code>@​carljm</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li> <li><a href="https://github.com/lshi18"><code>@​lshi18</code></a></li> <li><a href="https://github.com/mimre25"><code>@​mimre25</code></a></li> </ul> <h2>v0.3.6</h2> <h2>Changes</h2> <h3>Preview features</h3> <ul> <li>[<code>pylint</code>] Implement <code>bad-staticmethod-argument</code> (<code>PLW0211</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10781">#10781</a>)</li> <li>[<code>pylint</code>] Implement <code>if-stmt-min-max</code> (<code>PLR1730</code>, <code>PLR1731</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10002">#10002</a>)</li> <li>[<code>pyupgrade</code>] Replace <code>str,Enum</code> multiple inheritance with <code>StrEnum</code> <code>UP042</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10713">#10713</a>)</li> <li>[<code>refurb</code>] Implement <code>if-expr-instead-of-or-operator</code> (<code>FURB110</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10687">#10687</a>)</li> <li>[<code>refurb</code>] Implement <code>int-on-sliced-str</code> (<code>FURB166</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10650">#10650</a>)</li> <li>[<code>refurb</code>] Implement <code>write-whole-file</code> (<code>FURB103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10802">#10802</a>)</li> <li>[<code>refurb</code>] Support <code>itemgetter</code> in <code>reimplemented-operator</code> (<code>FURB118</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10526">#10526</a>)</li> <li>[<code>flake8_comprehensions</code>] Add <code>sum</code>/<code>min</code>/<code>max</code> to unnecessary comprehension check (<code>C419</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10759">#10759</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pydocstyle</code>] Require capitalizing docstrings where the first sentence is a single word (<code>D403</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10776">#10776</a>)</li> <li>[<code>pycodestyle</code>] Ignore annotated lambdas in class scopes (<code>E731</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10720">#10720</a>)</li> <li>[<code>flake8-pyi</code>] Various improvements to PYI034 (<a href="https://redirect.github.com/astral-sh/ruff/pull/10807">#10807</a>)</li> <li>[<code>flake8-slots</code>] Flag subclasses of call-based <code>typing.NamedTuple</code>s as well as subclasses of <code>collections.namedtuple()</code> (<code>SLOT002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10808">#10808</a>)</li> <li>[<code>pyflakes</code>] Allow forward references in class bases in stub files (<code>F821</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10779">#10779</a>)</li> <li>[<code>pygrep-hooks</code>] Improve <code>blanket-noqa</code> error message (<code>PGH004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10851">#10851</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Support <code>FORCE_COLOR</code> env var (<a href="https://redirect.github.com/astral-sh/ruff/pull/10839">#10839</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>Support negated patterns in <code>[extend-]per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10852">#10852</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.3.7</h2> <h3>Preview features</h3> <ul> <li>[<code>flake8-bugbear</code>] Implement <code>loop-iterator-mutation</code> (<code>B909</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/9578">#9578</a>)</li> <li>[<code>pylint</code>] Implement rule to prefer augmented assignment (<code>PLR6104</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/9932">#9932</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Avoid TOCTOU errors in cache initialization (<a href="https://redirect.github.com/astral-sh/ruff/pull/10884">#10884</a>)</li> <li>[<code>pylint</code>] Recode <code>nan-comparison</code> rule to <code>W0177</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10894">#10894</a>)</li> <li>[<code>pylint</code>] Reverse min-max logic in <code>if-stmt-min-max</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10890">#10890</a>)</li> </ul> <h2>0.3.6</h2> <h3>Preview features</h3> <ul> <li>[<code>pylint</code>] Implement <code>bad-staticmethod-argument</code> (<code>PLW0211</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10781">#10781</a>)</li> <li>[<code>pylint</code>] Implement <code>if-stmt-min-max</code> (<code>PLR1730</code>, <code>PLR1731</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10002">#10002</a>)</li> <li>[<code>pyupgrade</code>] Replace <code>str,Enum</code> multiple inheritance with <code>StrEnum</code> <code>UP042</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10713">#10713</a>)</li> <li>[<code>refurb</code>] Implement <code>if-expr-instead-of-or-operator</code> (<code>FURB110</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10687">#10687</a>)</li> <li>[<code>refurb</code>] Implement <code>int-on-sliced-str</code> (<code>FURB166</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10650">#10650</a>)</li> <li>[<code>refurb</code>] Implement <code>write-whole-file</code> (<code>FURB103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10802">#10802</a>)</li> <li>[<code>refurb</code>] Support <code>itemgetter</code> in <code>reimplemented-operator</code> (<code>FURB118</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10526">#10526</a>)</li> <li>[<code>flake8_comprehensions</code>] Add <code>sum</code>/<code>min</code>/<code>max</code> to unnecessary comprehension check (<code>C419</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10759">#10759</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>pydocstyle</code>] Require capitalizing docstrings where the first sentence is a single word (<code>D403</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10776">#10776</a>)</li> <li>[<code>pycodestyle</code>] Ignore annotated lambdas in class scopes (<code>E731</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10720">#10720</a>)</li> <li>[<code>flake8-pyi</code>] Various improvements to PYI034 (<a href="https://redirect.github.com/astral-sh/ruff/pull/10807">#10807</a>)</li> <li>[<code>flake8-slots</code>] Flag subclasses of call-based <code>typing.NamedTuple</code>s as well as subclasses of <code>collections.namedtuple()</code> (<code>SLOT002</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10808">#10808</a>)</li> <li>[<code>pyflakes</code>] Allow forward references in class bases in stub files (<code>F821</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10779">#10779</a>)</li> <li>[<code>pygrep-hooks</code>] Improve <code>blanket-noqa</code> error message (<code>PGH004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10851">#10851</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Support <code>FORCE_COLOR</code> env var (<a href="https://redirect.github.com/astral-sh/ruff/pull/10839">#10839</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>Support negated patterns in <code>[extend-]per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/10852">#10852</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>[<code>flake8-import-conventions</code>] Accept non-aliased (but correct) import in <code>unconventional-import-alias</code> (<code>ICN001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10729">#10729</a>)</li> <li>[<code>flake8-quotes</code>] Add semantic model flag when inside f-string replacement field (<a href="https://redirect.github.com/astral-sh/ruff/pull/10766">#10766</a>)</li> <li>[<code>pep8-naming</code>] Recursively resolve <code>TypeDicts</code> for N815 violations (<a href="https://redirect.github.com/astral-sh/ruff/pull/10719">#10719</a>)</li> <li>[<code>flake8-quotes</code>] Respect <code>Q00*</code> ignores in <code>flake8-quotes</code> rules (<a href="https://redirect.github.com/astral-sh/ruff/pull/10728">#10728</a>)</li> <li>[<code>flake8-simplify</code>] Show negated condition in <code>needless-bool</code> diagnostics (<code>SIM103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10854">#10854</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/2e37cf6b3b4b873ad9ffe9728bccdf134862b768"><code>2e37cf6</code></a> Bump version to v0.3.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/10895">#10895</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/a9e43930086af3ae3c974e4ecec2ed1b328fa8e6"><code>a9e4393</code></a> [<code>pylint</code>] Implement rule to prefer augmented assignment (<code>PLR6104</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/9932">#9932</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/312f43475f14cc723c8935e4c909b17510382bb8"><code>312f434</code></a> [<code>pylint</code>] Recode <code>nan-comparison</code> rule to <code>W0177</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/10894">#10894</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/563daa8a86e5fe38dcdcfba5cc7a93a84bc2d550"><code>563daa8</code></a> Fix docs and add overlap test for negated per-file-ignores (<a href="https://redirect.github.com/astral-sh/ruff/issues/10863">#10863</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7ae15c6e0a127ebc7c8fa899dbd821b546abeb41"><code>7ae15c6</code></a> Fix comment copy/paste typo in newtype_index (<a href="https://redirect.github.com/astral-sh/ruff/issues/10892">#10892</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/03899dcba37c7429084486600ed7f3b12bea20dc"><code>03899dc</code></a> [<code>flake8-bugbear</code>] Implement <code>loop-iterator-mutation</code> (<code>B909</code>) (<a href="https://redirect.github.com/astral-sh/ruff/issues/9578">#9578</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/25f5a8b2019260eba3889d9800a60950a810a43e"><code>25f5a8b</code></a> Struct not tuple for compiled per-file ignores (<a href="https://redirect.github.com/astral-sh/ruff/issues/10864">#10864</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e7d1d43f39ebb7258713edad9aae190c868d5ea2"><code>e7d1d43</code></a> [<code>pylint</code>] Reverse min-max logic in <code>if-stmt-min-max</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/10890">#10890</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/9b9098c3dca7475cbe10fd8d8f7152c392a25924"><code>9b9098c</code></a> Downgrade ESLint to v8 (<a href="https://redirect.github.com/astral-sh/ruff/issues/10888">#10888</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/0cc154c2a9ab08568a232f0c67b756c97976332d"><code>0cc154c</code></a> Avoid TOCTOU errors in cache initialization (<a href="https://redirect.github.com/astral-sh/ruff/issues/10884">#10884</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/v0.3.5...v0.3.7">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ruff&package-manager=pip&previous-version=0.3.5&new-version=0.3.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-19 08:41:03 +00:00
ruff = "0.3.7"
# Type checking only works with the pydantic.v1 compat module from pydantic v2
pydantic = "^2"
# Typechecking
lxml-stubs = ">=0.4.0"
mypy = "*"
mypy-zope = "*"
types-bleach = ">=4.1.0"
types-commonmark = ">=0.9.2"
types-jsonschema = ">=3.2.0"
types-netaddr = ">=0.8.0.6"
types-opentracing = ">=2.4.2"
types-Pillow = ">=8.3.4"
types-psycopg2 = ">=2.9.9"
types-pyOpenSSL = ">=20.0.7"
types-PyYAML = ">=5.4.10"
types-requests = ">=2.26.0"
types-setuptools = ">=57.4.0"
# Dependencies which are exclusively required by unit test code. This is
# NOT a list of all modules that are necessary to run the unit tests.
# Tests assume that all optional dependencies are installed.
# parameterized<0.7.4 can create classes with names that would normally be invalid
# identifiers. trial really does not like this when running with multiple workers.
parameterized = ">=0.7.4"
idna = ">=2.5"
# The following are used by the release script
click = ">=8.1.3"
# GitPython was == 3.1.14; bumped to 3.1.20, the first release with type hints.
GitPython = ">=3.1.20"
commonmark = ">=0.9.1"
pygithub = ">=1.55"
# The following are executed as commands by the release script.
twine = "*"
# Towncrier min version comes from https://github.com/matrix-org/synapse/pull/3425. Rationale unclear.
towncrier = ">=18.6.0rc1"
# Used for checking the Poetry lockfile
tomli = ">=1.2.3"
# Dependencies for building the development documentation
[tool.poetry.group.dev-docs]
optional = true
[tool.poetry.group.dev-docs.dependencies]
sphinx = {version = "^6.1", python = "^3.8"}
sphinx-autodoc2 = {version = ">=0.4.2,<0.6.0", python = "^3.8"}
myst-parser = {version = "^1.0.0", python = "^3.8"}
furo = ">=2022.12.7,<2025.0.0"
[build-system]
# The upper bounds here are defensive, intended to prevent situations like
# https://github.com/matrix-org/synapse/issues/13849 and
# https://github.com/matrix-org/synapse/issues/14079 where we see buildtime or
# runtime errors caused by build system changes.
# We are happy to raise these upper bounds upon request,
# provided we check that it's safe to do so (i.e. that CI passes).
requires = ["poetry-core>=1.1.0,<=1.9.0", "setuptools_rust>=1.3,<=1.8.1"]
build-backend = "poetry.core.masonry.api"
2022-09-06 18:01:37 +00:00
[tool.cibuildwheel]
# Skip unsupported platforms (by us or by Rust).
# See https://cibuildwheel.readthedocs.io/en/stable/options/#build-skip for the list of build targets.
# We skip:
# - CPython 3.6 and 3.7: EOLed
# - PyPy 3.7: we only support Python 3.8+
# - musllinux i686: excluded to reduce number of wheels we build.
# c.f. https://github.com/matrix-org/synapse/pull/12595#discussion_r963107677
# - PyPy on Aarch64 and musllinux on aarch64: too slow to build.
# c.f. https://github.com/matrix-org/synapse/pull/14259
skip = "cp36* cp37* pp37* *-musllinux_i686 pp*aarch64 *-musllinux_aarch64"
2022-09-06 18:01:37 +00:00
# We need a rust compiler
before-all = "curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain stable -y --profile minimal"
2022-09-06 18:01:37 +00:00
environment= { PATH = "$PATH:$HOME/.cargo/bin" }
# For some reason if we don't manually clean the build directory we
# can end up polluting the next build with a .so that is for the wrong
# Python version.
before-build = "rm -rf {project}/build"
build-frontend = "build"
test-command = "python -c 'from synapse.synapse_rust import sum_as_string; print(sum_as_string(1, 2))'"
[tool.cibuildwheel.linux]
# Wrap the repair command to correctly rename the built cpython wheels as ABI3.
repair-wheel-command = "./.ci/scripts/auditwheel_wrapper.py -w {dest_dir} {wheel}"
[tool.cibuildwheel.macos]
# Wrap the repair command to correctly rename the built cpython wheels as ABI3.
repair-wheel-command = "./.ci/scripts/auditwheel_wrapper.py --require-archs {delocate_archs} -w {dest_dir} {wheel}"