Skip to content

Support Tables

The Fediverse allows for heterogeneous applications. This means that applications will interpret certain things in different ways. This can be used both to allow different use cases such as microblogging or sharing videos, and to design Fediverse applications that meet the need of different communities.

While doing stuff differently is fine, it leads to a lot of work for developers, as they now potentially need to test their application against each other application. We provide these support tables to simplify this task. Basically, we collect the behavior of various applications for certain tasks, and display them as a table. By then consulting one of these tables, the developer can form an opinion how their new feature will interact with the wider Fediverse.

Samples

The ActivityPub objects used to generate the support tables can be downloaded:

Download

These samples are CC0 licensed.

Generating support tables and samples

The data for the support tables is in the file fediverse-pasture/work/test_results.toml. By running

git clone https://codeberg.org/helge/funfedidev.git
cd fediverse-pasture/work
poetry install
poetry run python generate.py --load

you can generate the files in site/docs/support_tables/generated/ and thus the support tables. They can be viewed locally by running poetry run mkdocs serve in the site directory.

The --load option indicates that the file test_results.toml should be converted to the corresponding sqlite3 database test_results.sqlite.

This is what happens for the website job on Woodpecker: status-badge

Updating the test results

First, one needs to ensure that the results have been converted to sqlite using

git clone https://codeberg.org/helge/funfedidev.git
cd fediverse-pasture/work
poetry install
poetry run python store.py --load
cd ..

Next, we will start the Mastodon 4.2 containers via

docker compose --file mastodon42.yml up

Furthermore, we will start the pasture runner via

docker compose --file pasture.yml run pasture_runner

This will drop you into an interactive shell. Then by running

python support_table.py --all mastodon42

you can recreate the data in test_results.sqlite corresponding to Mastodon 4.2. By then exiting the runner, and running

cd work
poetry run python store.py --save
git diff

You should be able to view that what changed in test_results.toml are volatile arguments such as the id of objects, the published date, or the ordering of json-ld sets.