This is useful so we can test Synapse specific behaviors like our admin API. (see docs in PR, `complement/README.md`) ``` COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh --in-repo ``` Complement calls these ["out-of-repo"](78c255edce/OUT-OF-REPO-TESTS.md) tests but it's a bit of a misnomer once they're in your project. (just depends on the perspective) There has been [previous desire](https://github.com/element-hq/synapse/pull/19021#discussion_r2453442191) for this kind of thing but this is spawning from wanting to have some tests for our purge history admin API (https://github.com/element-hq/synapse-rust-apps/issues/430). There are some Sytest tests ([`matrix-org/sytest` -> `tests/48admin.pl#L91-L618`](1be04cce46/tests/48admin.pl (L91-L618))) for this already but I'd much rather work in Complement instead of Sytest. I'm wanting these tests to ensure that our new `event-cache` rust app for Synapse Pro doesn't break these kind of erasure features (https://github.com/element-hq/synapse-rust-apps/issues/366 and https://github.com/element-hq/synapse-rust-apps/issues/153). Interestingly, there is already [`matrix-org/complement` -> `tests/csapi/admin_test.go`](78c255edce/tests/csapi/admin_test.go) (added in https://github.com/matrix-org/complement/pull/322) in the Complement repo iteslf that tests the `/_synapse/admin/v1/send_server_notice` endpoint but it's a bit of an interesting case as [Dendrite also supports this endpoint](https://github.com/matrix-org/dendrite/pull/2180). I don't think it's good practice to continually shove in more and more Synapse-specific behavior into the Complement repo itself. We already have success with other out-of-repo tests for projects like the [SBG](b76b05b53e/complement_tests), [TI-Messenger Proxy](c8fa87fecc/complement), and our [Synapse Pro for small hosts](c2ea7eabf3/complement).
39 lines
1.2 KiB
YAML
39 lines
1.2 KiB
YAML
# Docs: https://golangci-lint.run/docs/configuration/file/
|
|
#
|
|
# Go formatting/linting rules
|
|
#
|
|
# This is run as part of the normal linting utility script,
|
|
# `poetry run ./scripts-dev/lint.sh`
|
|
|
|
version: "2"
|
|
|
|
linters:
|
|
# Default set of linters.
|
|
# The value can be:
|
|
# - `standard`: https://golangci-lint.run/docs/linters/#enabled-by-default
|
|
# - `all`: enables all linters by default.
|
|
# - `none`: disables all linters by default.
|
|
# - `fast`: enables only linters considered as "fast" (`golangci-lint help linters --json | jq '[ .[] | select(.fast==true) ] | map(.name)'`).
|
|
# Default: standard
|
|
default: standard
|
|
|
|
# Enable specific linter.
|
|
# enable:
|
|
# - example
|
|
|
|
# Disable specific linters.
|
|
disable:
|
|
# FIXME: Ideally, we'd enable the `bodyclose` lint but there are many
|
|
# false-positives (like https://github.com/timakin/bodyclose/issues/39) and just is
|
|
# not well-suited for our use case (https://github.com/timakin/bodyclose/issues/11 and
|
|
# https://github.com/timakin/bodyclose/issues/76).
|
|
- bodyclose
|
|
|
|
formatters:
|
|
# Enable specific formatter.
|
|
# Default: [] (uses standard Go formatting)
|
|
enable:
|
|
- gofmt
|
|
- goimports
|
|
- golines
|