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.