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:
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:
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
Furthermore, we will start the pasture runner via
This will drop you into an interactive shell. Then by running
you can recreate the data in test_results.sqlite
corresponding to Mastodon 4.2.
By then exiting the runner, and running
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.