Misc
Miscellaneous parts of festivald that can or cannot be relied on.
festival-cli
festivald and festival-cli's versions are tied together to represent their compatibility.
festivald will be able to respond to any 🟢 Stable festival-cli request as long as festivald's:
- Major version is the same
- Minor version is the same or greater
For example, festivald v1.2.x is compatible with:
festival-cli v1.2.xfestival-cli v1.1.xfestival-cli v1.0.x
but not necessarily with festival-cli v1.3.x and beyond.
Note that festivald will still be able to communicate with newer/older festival-cli's, however:
- If a new
festival-cliis requesting a method unknown to an oldfestivald, or - If a new
festivaldhas additional output unknown to an oldfestival-cli(use ofnon-stableAPI)
there will be communication issues.
Config
confignames are🟢 Stable(max_connectionswill always be namedmax_connections)- Their expected inputs are
🟢 Stable(max_connectionswill always want an unsigned integer) - Their expected behavior is
🟡 Incomplete(direct_downloadmay include song files someday) - Default config values may be changed (default
portvalue may not always be18425) - Additional fields may be added in the future
Referencing any JSON-RPC methods and/or REST resources that are 🔴 Unstable in options like no_auth_rpc & no_auth_rest will also make your configuration 🔴 Unstable.
In general, behavior for existing config options may be extended if it does not break current behavior too much.
For example, direct_download will most likely support showing inline audio files eventually.
Command Line
--flagsand sub-command names are🟢 Stable(festivald --pathwill always befestivald --path)- Their expected inputs/outputs are
🟢 Stable - Additional flags and/or sub-commands may be added in the future
Disk
All locations and filenames of all files written to disk by festivald are 🟢 Stable.
| Type | Example |
|---|---|
Cache | Artist ZIP cache is always at ~/.cache/festival/daemon/zip/artist |
Config | Config file is always at ~/.config/festival/daemon/festivald.toml |
Data | Collection file is always at ~/.local/share/festival/daemon/state/collection.bin |
Documentation
Do not rely on the exact name or position of something within this documentation.
For example, this section API Stability may be renamed to API Reliability and/or moved to a different chapter.
Documentation may change at any given moment to provide the most accurate information.
Errors
Do not rely on the details of the JSON-RPC & REST API errors.
You can rely that an input that leads to OK/ERROR will always be the same.
Logs
Do not rely on the log output of festivald.
HTTP Headers
Do not rely on the specific HTTP headers festivald returns, or their values.
Protocol
- Transports other than HTTP(s) may be supported in the future
- Version
2.0ofJSON-RPCwill always be used JSON-RPCwill always requireHTTP POSTrequestsRESTand documentation will always requireHTTP GETrequests