Versions and workspaces
Every task has a public workspace, with the numbered versions that schedules and runs use, and a local workspace per user, where you change a task without affecting anyone. You pull a task to change it, save as often as you like, and push it to publish the next version.
Public and local
| Public | Local | |
|---|---|---|
| What it holds | The pushed versions, numbered 1, 2, 3… Versions never change once pushed. | Your copies: tasks you pulled or cloned, and new tasks you have not pushed yet |
| Who sees it | Everyone with Edit tasks | Only you; a task that was never pushed is invisible to others |
| Used by | Schedules, runs from the task list, the API | Runs you start from the editor while you work on your copy |
| In the editor | Read-only | Editable when pulled, read-only when cloned |
Switch between them with Local and Public at the top of the Tasks page. In the editor, the tags next to the task name tell you what you are looking at, for example Public · v4, Local · pulled from v4 or Local clone of v4.
Note: Only one person can change a task at a time. Pulling locks it, so nobody has to merge changes.
The usual cycle
- Pull the task (on the Public list or in the editor). The current public version is copied into your local workspace and the task is locked for others.
- Edit it and Save (Ctrl+S) as often as you like. Saving writes your local copy only; no version is created. The task list shows Modified when your copy differs from the version you pulled.
- Run or Debug your local copy from the editor to test it.
- Push it. Your copy becomes the next public version, and the lock is released.
New tasks start in your local workspace (New · never pushed) and become public with their first push.
Pull
Pull copies the current public version into your local workspace as an editable copy and locks the task: nobody else can pull, push or delete it until you push or cancel. While a task is pulled, the public list shows who has it in the Pulled by column, and others see Pull disabled with the name of the person who has it.
Pull with dependencies
Pull with dependencies… (in a task's menu) lists the tasks this task calls with runtask, directly or through each other. For each one choose:
| Action | Effect |
|---|---|
| Pull | Copy it to change it too (it is locked for others) |
| Clone | Copy it read-only, to run your local copy against it as it is |
| Skip | Leave it; local runs use its public version |
A task pulled by someone else can only be cloned or skipped. The pull is all or nothing: if one of the tasks cannot be pulled, nothing is.
Save
Save (Ctrl+S) writes your local copy. It is disabled while the task has errors or empty required fields; see The task editor. The editor warns you before you leave with unsaved changes.
Push
Push opens a dialog:
- What changed? — an optional note shown in the version history.
- Keep it pulled to continue working on it — keeps your local copy and the lock after the push. Without it, the local copy is removed and the task is unlocked.
The button says which version you create (Push as version 5). Push is disabled when there is nothing to push: your copy is the same as the public version. Save your changes before you push; the saved local copy is what gets published.
Warning: The pushed version is what schedules and other users run from then on. Test your local copy before you push.
Cancel pull
Cancel pull discards your local copy and unlocks the task. The public version stays as it was. For a task that was never pushed, the menu says Delete (never pushed): the task exists only in your workspace and is deleted.
Clone
Clone (read-only copy) puts a read-only copy of the current public version into your local workspace. You can clone a task while someone else has it pulled, for example to run it locally or to let your own pulled tasks call it as it is.
- When a newer version is pushed, the task list marks the clone Outdated and the menu offers Update clone to v5.
- Remove clone deletes the copy.
- Pulling a task you cloned turns the clone into your editable copy.
Release lock
Users with Release task locks (Admin by default) can take a lock away from someone: Release lock of … in the task's menu on the Public list. The person loses the changes they have not pushed, and anyone can then pull the task. Pull, cancel pull, clone and released locks are recorded in the audit log.
Version history
History in the editor toolbar lists the pushed versions, newest first, with the note, the author and the time. Latest marks the newest version; Base marks the version your local copy was pulled from (Shown when you are looking at a read-only version).
In a pulled copy, Load puts an older version into the editor, for example to roll back a change. Save it, then push it to publish it as a new version; the older version itself stays unchanged.
Compare versions
Compare in the history, or the compare button next to History, opens Compare versions: the task text of two versions side by side, with the differences highlighted.
- Choose the two sides at the top; the swap button exchanges them.
- In your local copy, Your local copy (editor) is offered as a side, so you can compare your current changes with the version you pulled (this includes changes you have not saved).
- No differences means the two sides are identical.
Running a local copy
The editor runs what it shows. Run in a local copy (a pulled copy or a never-pushed task) runs your saved local copy; in the public view it runs the public version. Local runs need the Debug tasks permission (Developer by default).
When a local run calls other tasks through runtask, it uses your local copies of them (pulled or cloned) where you have one, and their public versions otherwise. This lets you test a change across several tasks before you push any of them.
Executions record whether they ran a local copy and which version it was based on.
Who can do what
| Action | Roles |
|---|---|
| Create, pull, save, push, clone, cancel pull | Edit tasks |
| Run a local copy | Debug tasks |
| Release someone else's lock | Release task locks |
See Users and roles.