matrix-org / matrix-org/matrix-spec

Consider making push rules actually turing complete

Open
#1,221 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature
Dominant language
HTML
Stars
330
Forks
150
Avg merge
2h 21m
Merged PRs (30d)
3

Description

Aside from the joke, we might want to consider a DSL (Domain Specific Language( of some kind to represent push rules, making it easier to upgrade push rule conditions without servers having to guess at client support.

For example, both https://github.com/matrix-org/matrix-spec-proposals/pull/3758 and https://github.com/matrix-org/matrix-spec-proposals/pull/3862 would be much easier if we could just add a block of DSL code to the server and sync it to the client: we might not even need an MSC, and it'd Just Work™.

Downside obviously being that something as "simple" as notifications could do simple mathematics and possibly hold a conversation with enough effort. However, it might also be good(?) if some server out there wants to start running simple machine learning-based notifications: serialize your model down to the DSL and feed it through a client.

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 reading the push-rules specification and the two referenced Matrix Spec Proposal pull requests, MSC 3758 and MSC 3862. Define the DSL's scope, client-support and synchronization requirements, and safety limits for computation; the work is done when the proposal has a decided design and clear compatibility and security criteria.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.