Platform-independent m-ld specification
m-ld is a decentralised live information sharing component with a JSON-based
API.
This repository defines the platform-independent specification for m-ld.
The documentation is built using typedoc, and delivered to the
specification documentation website at https://spec.m-ld.org/.
The engine API is partially specified as types using
Typescript as an abstract specification language. Note that these types are not
used directly by engine implementations, because they are intentionally
high-level and agnostic to platform details, such as threading model. Instead,
engines use types in their native language.
The compliance folder defines a set of Jasmine integration tests
to check the compliance of a clone engine to specification. These tests require
orchestration components to be provided by the engine project.
Scripts are run with npm
.
test
script is not intended to be run from this project. See thebuild
script is used to generate the website.doc-dev
script can be used after build
to create a local web serverThis project uses semantic versioning. There are two main branches.
edge
branch is for pre-releases. It is delivered to edge.spec.m-ld.org.edge
should be immediately followed by a pre-release if itmaster
branch is for releases. It is delivered to spec.m-ld.org. A mergemaster
should be immediately followed by a release if it affectsnpx publish.sh ≪newversion≫
(from
m-ld-io-js-build) builds the
project, increments the version as specified (e.g. patch
), pushes the code and
publishes the package. Ensure the repo is up-to-date and on master (release)
or edge (pre-release).