Prerequisites
Before installing, confirm you have the following:| Requirement | Minimum version | Check command |
|---|---|---|
| Python | 3.9 | python3 --version |
| pip | Included with Python 3.9+ | pip --version |
| Git | Any recent version | git --version |
Install DMS
Install the package
Install in editable (development) mode so that the schema files bundled inside the repository resolve correctly at runtime:This installs the
dms entry point and the following dependencies declared in pyproject.toml:click>=8.0— CLI frameworkjsonschema>=4.0— Schema validation enginepyyaml>=6.0— YAML schema supportrich>=13.0— Terminal output formatting
Troubleshooting
dms: command not found
dms: command not found
This means the Python scripts directory is not in your Then find where pip places scripts on your system:This prints a base path such as Then reload your shell:On some systems (particularly macOS with Homebrew Python), the scripts directory may be under a versioned path. Use
PATH.First, confirm the package installed without errors:/home/yourname/.local. The dms executable lives in the bin/ subdirectory of that path (e.g., /home/yourname/.local/bin). Add that directory to your PATH:pip install -e . from within a virtual environment to avoid PATH complications entirely:FileNotFoundError: DMS schema not found
FileNotFoundError: DMS schema not found
DMS locates its bundled schema files relative to the installed package directory. This error occurs when the package is installed in a way that breaks that relative path.The most reliable fix is to install in editable mode from inside the cloned repository:If you have already done this and still see the error, confirm that the If the directory is missing, re-clone the repository — a shallow clone or partial download may have omitted it.
schema/ directory exists inside the repository root:Always run
dms commands from within the cloned repository directory, or from a path where the installed package can resolve ../schema/*.json correctly.jsonschema validation errors you don't understand
jsonschema validation errors you don't understand
Run Common causes of validation errors:
dms info to see the full list of valid field values, heritage types, creator roles, and access levels:- Invalid
typevalue — Thetypefield must be one of the ten allowed values:story,photo,document,audio,video,event,map,artwork,site,poem. Any other string will fail validation. - Empty required fields — The fields
id,title,type,description, andlanguageare required and cannot be empty strings ornull. - Malformed UUID — The
idfield must be a valid UUID v4 string (e.g.,b3e7c8a1-4d5f-6e7a-8b9c-0d1e2f3a4b5c). You can generate one withpython3 -c "import uuid; print(uuid.uuid4())". - Wrong language format — The
languagefield must be a BCP 47 language tag (e.g.,en,sw,fr,rw), not a full language name.