A tiny specification for defining mirrors, made for both humans and programs to consume.
As I started migrating to a one canonical to many read-only mirrors model for my repositories, it got really hard to communicate to people (and now AIs) where and how to find these mirrors and in what order to try them. So it sparked this, a tiny specification for me and hopefully others to specify how and where to access their code.
A simple OMDF.yml file looks something like this...
# Open Mirror Definition File
# ---------------------------
# Higher equals better
#
# View the specification and its Python type definitions here:
# https://forge.kemonomimi.moe/otakuemily/omdf
mirrors:
github.com:
source: https://github.com/amy/a-super-cool-project
weight: 30
writable: false
gitlab.com:
source: https://gitlab.com/amy/a-super-cool-project
weight: 20
writable: false
codeberg.org:
source: https://codeberg.org/amy/a-super-cool-project
weight: 10
canonical: true
writable: true- A OMDF file MUST be represented in YAML (with either
.ymlor.yamlextention). - The file MUST be called
OMDF.{yml,yaml}.
The specification type definitions SDK can be found on PyPI and the Kemonoforge Package Registry.