Changelog¶
Notable changes by version. Every release is also published to PyPI and tagged on GitHub Releases, which carry the full commit-level history.
0.3.2 — 2026-08-05¶
Fixed¶
smart.use_language_code is now honored by file-based syncs.
datamodel --from-file, choices, and inspect-datamodel built their SMART
XML parsers from the --smart-language flag, whose default was en, and never
read the value loaded from --config. Setting use_language_code: es in the
config had no effect on those commands, so a data model carrying no English
labels resolved every display name to the literal string n/a — and the sync
pushed those to EarthRanger as if they were real names. --smart-language now
overrides the config only when you pass it explicitly.
(#13)
If a site was already populated with n/a labels, no manual cleanup is needed:
re-run with the correct language and the existing records are corrected in
place. Event types and choices are both compared on display and patched when
it differs.
--smart-version is no longer ignored when --config is used. The flag
carried a 7.0 default, so an explicitly passed value was indistinguishable
from an absent one, and the config loader never applied it on top of a config
read from file — smart.version from the YAML always won and the flag was
silently discarded. This is the mirror image of the use_language_code bug
above, where the flag won and the config value was dropped; both trace back to
the same root, a flag default that hid whether the user had passed anything.
The version one affected behavior rather than presentation: SMART versions
below 7.5.3 need smart_observation_uuid patched onto outgoing events, so a
silently discarded --smart-version could change what the sync actually sent.
Added¶
Data-model syncs warn when no display name resolves. SMART substitutes the
literal n/a whenever no <names> entry matches the requested language; it
does not raise or warn, so an unmatched language code produced a complete,
valid-looking data model with every label set to n/a. datamodel, choices,
and inspect-datamodel now detect that and name the codes the model actually
declares:
WARNING: All 645 SMART display names resolved to "n/a": the data model has no
labels in language 'en'. Available language code(s): es. Set
smart.use_language_code in your config (or pass --smart-language) to one of
these and re-run.
The warning requires a wholesale failure. A single untranslated label is normal SMART data and stays silent.
Documentation¶
- Configuration gained a
Display names and languages
section covering how to read the
<languages>block in a data-model XML before the first run. --smart-languageand--smart-versionhelp text now states the actual precedence: the flag overrides--config, and the built-in default applies only when neither is set.
Earlier releases¶
v0.3.1 and earlier predate this file. See
GitHub Releases
for their notes.