matrix-org / matrix-org/complement

Container feature detection

Open
#656 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
99
Forks
72
Avg merge
4d 1h
Merged PRs (30d)
8

Description

There are an increasing set of features which are:

  • not in the spec
  • required in practice for all production homeservers.

A few examples:

  • ability to delete media.
  • ability to delete rooms/history entirely.
  • change rate limits for the CS API.

It would be nice if a homeserver could "declare" that it supports this, which then runs some magic command on the container to enable/disable this in the container prior to startup (to avoid needing to SIGHUP a running container or other nonsense). If this declaration API is standardised, it would allow the same rate limit tests to work across different HSes for example, and if not, it can be easily skipped.

This has overlap with https://github.com/matrix-org/complement/issues/654 which suggests a configuration format for saying which tests should be run. One can imagine that the "rate limit tests" were an MSC and hence could be opted-in to. The difference is that this needs configuration on a per-test basis, as we usually want very high rate limits in tests.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing this proposal with Complement issue 654, especially the suggested configuration format. Define how a homeserver declares support for features and how that declaration enables or skips individual tests before container startup. Done means the approach covers examples such as media deletion, room/history deletion, and per-test rate limits without requiring a running container restart.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.