venus/MODS.md

2.2 KiB

Mod file format

Mod files are the exception where they are a text-based format. They operate on a series of tags, similar to the format of email:

Short-Message: Added documentation
Author: Arthur Beck <averse.abfun@gmail.com>
SHA512-Hash: CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E
Type: Addition+Documentation
GPG-Sig: (insert base64 encoded GPG signature here)
Branch: main
Objects: cf83e1357eefb8bd182e06194db125d7
Timestamp: 2025-03-18 18:52:49-05:00
--BEGIN BODY--
This mod adds documentation for mods, branches, and objects.
--END BODY--

The format consists of any number of tags and a body, separated by --BEGIN BODY-- on it's own line. The file is terminated by --END BODY-- on it's own line. The body can contain any valid UTF-8 except for the end body string. The list of available tags are:

  • Objects: Mandatory. Lists the objects in the mod.
  • Author: Also mandatory. Must list at least the name and email of the author. These may be redacted. Additional fields may be specified as author tags:
    • <(email)>: Email tag.
    • <bsky:(domain)>: Bluesky tag.
    • <masto:@uname@domain>: Mastodon tag.
    • <alter:(tag without brackets)>: Alternate author tag.
    • <(website)>: Website tag.
  • Branch: Mandatory. The branch name that the mod is made on.
  • Timestamp: Mandatory. The creation time of the mod in RFC3339 format with a precision of seconds.
  • Type: Optional but recommended. Contains tags(any UTF-8 string containing characters that match the regex [0-9a-zA-Z-_]) for what the mod does separated by +s. A list of suggested tags is:
    • Addition: This mod adds something
    • Removal: This mod removes something
    • Bugfix: This mod fixes a bug
    • Documentation: This mod changes documentation
    • Features: This mod changes features
    • License: This mod changes something about licensing
  • Short-Message: Optional but recommended. Contains a short message containing any UTF-8 characters except for newline characters.
  • SHA512-Hash: Optional. Hash of the mod file itself.
  • GPG-Sig: Optional but highly recommended. Base-64 encoded GPG signature of the objects. Same order as the Objects tag.