Skip to content

Releases: mcb77/movebank-mirror

v0.0.2

23 May 17:16

Choose a tag to compare

movebank-mirror 0.0.2.

A CLI + Java library that pulls Movebank studies to a local
file/folder structure and keeps them in sync. Per-study JSON
metadata, per-(tag, sensor type) CSVs.

What changed since 0.0.1

Two fixes to the event-data downloader, both already on master since
May 6 but never released:

  • event_id is now requested explicitly on every event-data
    download
    (540f9bc
    followed by b73d353).
    Without event_id, you can't reconcile retroactive updates against
    earlier chunks — the same row can appear in both an "initial
    catch-up" CSV and an "update" CSV with no way to dedupe.

  • The other join columns (tag_id, individual_id,
    deployment_id) are NOT downloaded
    — those are reconstructable
    on read from sensor_id + the deployment-window metadata. Saves
    bandwidth and disk on large studies; the initial draft over-eagerly
    pulled them, the corrective commit walked it back.

Net effect: large multi-million-row studies download ~25% less data
and the mirror is forward-compatible with the deletion-detection /
update-reconciliation work tracked in TODO.md §2 and §4.

Install

Library (Maven Central)

<dependency>
    <groupId>de.firetail.compat.movebank</groupId>
    <artifactId>movebank-mirror</artifactId>
    <version>0.0.2</version>
</dependency>

Or Gradle:

implementation 'de.firetail.compat.movebank:movebank-mirror:0.0.2'

CLI (download from this release)

Requires JDK 21.

tar -xf movebank-mirror-0.0.2.tar
./movebank-mirror-0.0.2/bin/movebank-mirror sync -d /var/lib/movebank-mirror

(.zip available too if you prefer.)

Pairs with the rest of the family

Known gaps

Tracked transparently in TODO.md. Headlines for users
choosing whether to mirror today vs. waiting:

  • Metadata refresh on demand — currently each study's metadata is
    fetched once and never re-fetched. Upstream curation changes
    (added/edited deployments, new sensor types) silently miss.
  • Retroactive event-row editsevent_id is downloaded as of
    this release; the per-tag reconciliation pass that uses it to
    dedupe updates is planned for a future version.
  • Event-row deletion detection — Movebank deletes silently
    (no tombstone signal). Detection + on-deletion policy is the
    hardest gap; design tracked in TODO.md §4.

License

LGPL-2.1.