Skip to main content
A module is an ordinary npm package, so sharing one means preparing the package: identity, version and exports.

Identity properties

Versions

version is a semantic version, like 1.2.0. Bump it when the manifest changes, so people can tell which version they have. Devias notices a changed manifest and shows the plan to apply it. You can also state which Devias versions you work with, with engines: { devias: '>=0.1' }. It is shown to people, but nothing enforces it yet.

What the package exports

A package tells Devias which parts it has through its exports:
Exports a module does not have are left out. The studio and server packages are optional peer dependencies, so a manifest-only module stays light and the CLI can read it without loading React.

Policies (experimental)

A policy is a module’s default for what should wait for a person’s review, such as “expenses over 500”. It is declared with definePolicy and has a decision of auto, review or deny. Policies are experimental: they are stored and shown to the person installing the module, and nothing enforces them yet.

Pre-release checklist

  • Every declared item has a uuid, and none is reused from another module.
  • devias plan against a fresh workspace shows only creates.
  • The module installs cleanly after the modules it depends on, and uninstalls cleanly.