Version Format
Worker versions follow theMAJOR.MINOR.PATCH format, set in geoengine.yaml:
1.0.0, 0.3.1, 2.10.4. A version like 1.0 or 1 is invalid and will cause geoengine apply to fail.
As a general guide:
- PATCH (
1.0.0→1.0.1) — bug fixes, small script tweaks, no change to inputs or outputs - MINOR (
1.0.0→1.1.0) — new optional inputs, improved output, backwards-compatible changes - MAJOR (
1.0.0→2.0.0) — removed or renamed inputs, changed output format, breaking changes
Dev vs Production Applies
GeoEngine has two apply modes. Which one you use determines whether versioning is enforced and whether a snapshot is saved.Dev (--dev) | Production (no flag) | |
|---|---|---|
| Version check | Skipped | Enforced |
| Image tagged as | latest only | <version> + latest |
| Config snapshot saved | No | Yes |
| Reproducible later | No | Yes — via --ver |
| Appears in GIS by version | No — latest only | Yes |
During Development
Use--dev to iterate freely without worrying about version numbers:
latest and no snapshot is saved. Running geoengine apply --dev again will overwrite latest, even if a prior production version exists.
For Production Releases
When the worker is ready to share or use in GIS tools, apply without--dev:
- The
versionfield is present ingeoengine.yaml - The version is a valid semver string (
MAJOR.MINOR.PATCH) - The version is greater than or equal to the highest version currently recorded
Running a Specific Version
To run a previously-built version instead oflatest:
geoengine.yaml says — the snapshot is self-contained.
If --ver is omitted, geoengine run always uses latest, which tracks the most recent apply (dev or production).
The latest Tag
latest always points to the most recent apply, regardless of mode:
- Running
geoengine apply --devafter a production apply will overwritelatestwith the dev state - Running
geoengine apply(production) also updateslatestto that version
geoengine run my-worker (without --ver) and GIS plugin latest entries always reflect the last apply. If you need a stable, pinned version in GIS, always use a production apply and run via version number.
Deleting a Version
To remove a specific version (its Docker image, mapping entry, and snapshot):geoengine apply always reads the live map.json, so deleting an older version does not affect the minimum allowed version for the next apply.
To remove a worker entirely:

