Repository navigation
Releases: PADAS/earthranger-cli
Releases · PADAS/earthranger-cli
Release list
v0.6.0
Highlights
Importing and previewing events (requests from @arky in #20, #21, #19)
events post --dry-run. Validates every event against its type's schema exactly as a real post does, prints onewould postline per event, and sends nothing. With--no-validateit never connects, so a file can be previewed offline. (#42)events post --file history.csv. A CSV is read directly, one event per row, with no YAML conversion step.event_type,time,titleandlat/lon(or alocationcolumn holdinglat,lon) are recognised case-insensitively; every other column is a detail field. Cell values are coerced conservatively: integers, decimals andtrue/falsebecome numbers and booleans, everything else stays text, so dates, times, ids with leading zeros and codes likeNOsurvive.--event-typeis the default for rows without one;--map KEY=COLUMNpoints a field (or a reserved slot) at a differently named column. The delimiter is detected from the header (comma, semicolon, tab, pipe); errors name the file's line number; a row with surplus cells, a duplicate header, a column mapped twice, or both alocationandlat/lonis refused before anything is sent. Rows get the same validation and--dry-runas a YAML batch. (#46)events pull CATEGORY --event-type VALUE. A spec for just the requested types (repeatable) that keeps the category block and only the choice sets those types reference, so it applies directly; an unknown value lists the category's types. (#43)
Project
- Every pull request and push to main now runs the suite and the linters on Python 3.11, 3.12 and 3.13; the release workflow builds on the 3.11 floor instead of whatever Python the runner had. (#45)
CONTRIBUTING.mdrecords the process adopted after the 0.5.0 review rounds and what CI runs. (#37, #45)- The PyPI summary, keywords and links describe the whole tool. (#41, shipped in 0.5.1)
What's Changed
- events post --dry-run: validate and list what would be posted (#42)
- events post --file history.csv: import events from CSV rows (#46, replaces #44)
- events pull --event-type: a spec for one type that still applies (#43)
- CI: test on every supported Python; release builds on the 3.11 floor (#45)
- Bump version to 0.6.0
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Metadata-only release: no code or behaviour changes since 0.5.0.
- PyPI summary now describes the whole tool: authoring event categories, choices and event types from a YAML spec, posting events, and reading subjects, tracks, events, patrols and more as agent-friendly JSON, CSV or TSV, with site-time windows, counts and exports. The 0.5.0 summary still described the authoring half only.
- Keywords gain
wildlife,agents,json. - Project links gain a
Changelogentry pointing at these releases.
For what 0.5.0 added to the CLI, see the v0.5.0 release notes.
What's Changed
- Package metadata: summary covers the read surface; bump version to 0.5.1 (#41)
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
- Bump version to 0.4.0; doc fixes for the release by @chrisdoehring in #34
- Read surface: site-time windows, counts, columns, exports, --where (P3 otus parity) by @chrisdoehring in #36
- Spec: compare against the otus er-cli and propose P3 by @chrisdoehring in #35
- CONTRIBUTING: the process we adopted after PR 36 by @chrisdoehring in #37
- Bump version to 0.5.0 by @chrisdoehring in #40
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
- README: how agent skills use the CLI; spec: close out P2 by @chrisdoehring in #32
- profile use persists a default profile; retire the zsh wrapper by @chrisdoehring in #33
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Highlights
Two behaviour changes agents and scripts should know about
observations searchnow requires exactly one of--subject-id,--source-id,--subjectsource-id,--sourceprovider-id, and defaults--sinceto 24 hours before--until(or before now). Without a selector, ER returned every observation on the site and the CLI paged through all of it. (#23)events postvalidates each event's details against the type's schema as ER renders it before anything is sent: unknown fields, values outside a select's choices, wrong types, out-of-range numbers and missing required fields are reported one line each and nothing is posted. ER's API does not make these checks itself.--no-validateskips it. (#26, #27, #28)
New
events search --event-typetakes event-type values and display names as well as ids, comma-mixed; names are resolved for you and an unknown name lists the server's values. (#29)- Every paginated read command answers to both
listandsearch.featuresets list,spatial-features list|getandspatial-feature-groups getare new. (#23) - Reads retry transient failures (429, 5xx, connection and body-read errors) with 0/2/4 s backoff, announced on stderr;
Retry-Afteris honoured up to 30 s. Writes are never replayed. (#30) er --version. (#30)
Renamed
fencesis nowspatial-feature-groups. A spatial feature group holds roads, water points and boundaries as well as geofences, and nothing in ER is called a fence. No alias is kept. (#23)
What's Changed
- Read surface: list/search aliases, featuresets list, fences -> spatial-feature-groups + spatial-features (#23)
- Spec: record PR 23 decisions, close spec-derived flags as no, add Hardening section (#25)
- events post: validate event details against the type's schema before sending (#26)
- events post: reject explicit null event_details before posting (#27)
- events post: refuse non-object event_details at load, independent of --no-validate (#28)
- events search: --event-type accepts values and display names, resolved to ids (#29)
- Reads retry transient failures with backoff; add --version (#30)
- Bump version to 0.3.0 (#31)
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- README: document PyPI install as the default by @chrisdoehring in #17
- Read surface: agent-facing read-only commands with {records, meta} JSON by @chrisdoehring in #18
Full Changelog: v0.1.0...v0.2.0
v0.1.0
What's Changed
- earthranger-cli: er, the EarthRanger site management CLI by @chrisdoehring in #1
- Feature/er events cli by @chrisdoehring in #2
- Feature/er events cli by @chrisdoehring in #3
- Conditional/inactive sections, inactive fields, collections (sub-forms) by @chrisdoehring in #4
- Profile UX: add auto-switches, profile set by @chrisdoehring in #5
- Per-profile auth sessions (gcloud-style) by @chrisdoehring in #7
- Bearer-token auth: --token / ER_TOKEN and auth login --token by @chrisdoehring in #8
- Accept hostnames for --server (sandbox.pamdas.org no longer becomes sandbox.pamdas.org.pamdas.org) by @chrisdoehring in #9
- Token-auth follow-ups: clean errors on every /user/me/ outcome, 401s on writes, junk stored servers by @chrisdoehring in #10
- Add CODEOWNERS so PRs to main require a code-owner review by @chrisdoehring in #14
- Update project attrs. by @chrisdoehring in #15
- Add PyPI release workflow; single-source version from init.py by @chrisdoehring in #16
New Contributors
- @chrisdoehring made their first contribution in #1
Full Changelog: https://github.com/PADAS/earthranger-cli/commits/v0.1.0