Dev builds
Xema is released on two channels. Stable is what a live call centre runs. Dev is the canary: every change reaches it as soon as it is merged, and stable only after it has run there. Use dev on a test server, to try a fix or a feature before it is released, or to help find what breaks before your agents do.
A dev build has been through the same automated checks as a stable one, and nothing more. It has not been run on a live site yet; that is what dev is for.
What a dev build is
Each part of Xema is released on its own, as soon as a change to it is merged, so a dev server can take one part
without the others. Every release has a version number — 2.0.3228 — that only ever grows, and says which version of
Xema it belongs to. The dev channel keeps the ten newest of each part.
A version number means the same code on both channels. When a dev build reaches stable it keeps its number: dev's
2.0.3228 is stable's 2.0.3228. So a server can move between the channels and always knows where it stands.
Everything is checked the same way on both channels: every file is checked against the size and checksum the channel
lists before it replaces anything, and a release is applied by its own xema.
A new server on dev
Run the installer with -d:
curl -fsSL https://www.xema.in/install-xema.sh | sudo bash -s -- -d
It puts the xema command in place and records that this server takes dev builds; nothing else on the server is
touched. From there, set it up as in your first server, or convert a V1 server as in
moving a V1 server to V2.
Moving a server to dev
xema channel # which channel this server takes releases from
sudo xema channel set dev
sudo xema update # the newest xema from dev
sudo xema upgrade --dry-run # what would change, from which version to which
sudo xema upgrade
Going back to stable
sudo xema channel set stable
An upgrade never goes backwards. A dev server usually runs newer versions than stable has, so until stable reaches
them sudo xema upgrade keeps those parts as they are and says so; once stable has caught up there is nothing to
change, and from then on the server moves forward with stable. sudo xema upgrade --dry-run shows the versions either
side.
What to tell us
When something on a dev build is not right, the version tells us which build it is:
xema --version
xema status
xema status shows the version each part of Xema is on. Send both with what you saw.