Skip to content

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.

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 push makes drafts. motions push --live makes 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.

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.yaml and rules.yaml included.
  • 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.

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.

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