README.md for Interoperability Data¶
This repository represents interoperability data and the tools to generate it for the Fediverse.
Data¶
Data is contained in data
. The subsections describe how it is generated
Running tests¶
By executing
./run.sh $APPLICATION $VERSION
you can generate the support tables. The data file will be in
data/
. The available versions for the applications can be found
here.
Log files are stored in the logs directory with the name $APPLICATION
. If the directory fediverse-pasture
does not exist, the fediverse-pasture is downloaded automatically.
Manually running¶
By executing
./run_manual.sh $APPLICATION $VERSION
you can drop into a shell in the work container. Usually, one then executes
the run_for.sh
script. To manually run tests, one needs to
- install the appropriate version of the python package fediverse-pasture-inputs.
- Run the command
python -mrunner $APPLICATION
. - To leave the shell use
CTRL+D
(and notCTRL+C
) to ensure the docker compose containers are shut down.
Further options of runner
can be discovered by passing the --help
flag.
New applications¶
Adding a new application is a multistep process
- Add a new container to containers.funfedi.dev
- Update the pasture with this information; step will probably be dropped
- Integrate into data, for this the applications need to be updated runner.apps.
- Investigate the output format from the application's API
- If the application is not Mastodon API compatible, work needs to be done
New version of fediverse-pasture-inputs¶
On a new release of fediverse-pasture-inputs, update work/pyproject.toml to the latest version. This can usually be done by running
cd work
uv sync -U
cd ..
Following this, run
./run_update.sh --run_all > tmp
bash tmp
Without the --run_all
flag only the applications with updated containers
are run.
Testing new versions¶
Place the wheel file for the inputs into work, e.g.
work/fediverse_pasture_inputs-0.3.0a6-py3-none-any.whl
Then you can run a specific set of inputs via
./run_update.sh --run_all emoji > tmp
bash tmp
This has two effects, first the wheel mentioned above is used. Second
the runner is only running for the inputs specified by emoji
. This
reduces the runtime. Then you can investigate these inputs via
cd work
uv pip install ./fediverse_pasture_inputs*.whl
uv run --no-sync python -mwriter tables --local --input_name emoji
cd website
uv run --no-sync mkdocs serve
Checking integrity of the data¶
test_versions.py contains some tests that ensure the integrity of the data. In particular
- Are all expected applications present?
- Do all files contain the same number of total tests run?
- Did at least one test case pass?
Website¶
The website, https://data.funfedi.dev is generated from the data using tools found in work
.
Getting a development version running can be achieved via
cd work
uv sync -U
./build_docs.sh
uv run mkdocs serve
All commands will take some time.
funfedi.dev - support_tables¶
The support tables are generated via
cd work
uv run python -m writer website
The output is then contained in work/website
.