Versions
A version is one exact state of a motion: its motion.yaml, its rules.yaml, and the code of every step, bundled with the files it imports. Its id is a hash of all of that, shown short, like 4c427355d5. The same files always give the same version, so pushing an unchanged motion changes nothing.
Versions never change. Editing anything, even one value in rules.yaml, makes a new one.
Drafts and the live version
Section titled “Drafts and the live version”Each motion has at most one live version. It’s the one new batches open on unless someone chooses another. Every other version is a draft.
motions pushmakes drafts.motions push --livemakes the new version live straight away.- Make live, on a version’s page, makes a draft live. Only an approver named in the current live version can; for a motion’s first version, an approver named in that version.
- Try on a batch, on a draft’s page, opens a batch on that draft without making it live. Use it to run a change on a handful of real companies first.
Looking at a version
Section titled “Looking at a version”A motion’s page in the app has:
- Graph: the steps and how they connect. Choosing a step shows its configuration and its code.
- Code: every file of the version,
motion.yamlandrules.yamlincluded. - Versions: each version, newest first, with who pushed it, from which commit, and which batches opened on it.
- Compare: what changed between two versions, file by file; from a version, Compare with live or Compare with parent.
Changing a running batch
Section titled “Changing a running batch”A batch keeps the version it opened on. When there’s a newer one, an approver can Upgrade the batch to it. Steps that changed run again where they already ran, and anything sealed in a changeset stays as it was. See Batches and lanes.
Where versions come from
Section titled “Where versions come from”| From | How | Marked |
|---|---|---|
| Your terminal | npx motions push in the tenant repository |
the commit it was pushed from, if the folder is in git |
| GitHub | the workflow pushes main after a merge |
the merged commit |
| The app | a version’s Code tab, Edit, then Save draft | “not in git”, until it’s merged through a pull request |
With a connected repository, git stays the source of truth: an edit made in the app becomes a pull request, and the version is “in git” once it’s merged.
Motions is built by Pruma. These docs describe what the platform does today; Limitations lists what it doesn't do yet. Open the app