Releases: openantares/ant
Release list
v0.3.0 — .ant format
The .ant interchange format at version 0.3. The normative document is
SPEC.md; this release is the reference point it describes,
together with the JSON Schema, both reference bindings, and the
conformance goldens they are verified against.
Reading a file: the same-major policy
version in the manifest is MAJOR.MINOR, and a conformant reader
implements one rule (SPEC.md §3):
- Same MAJOR reads, at any MINOR. Minor bumps are additive by
definition, so everything a reader already understood keeps its
meaning. - A MINOR ahead of the reader must still be readable, and the reader
must say it is ahead — it saw the file, but only a subset of what
the file means. A caller needing completeness can then refuse. - A different MAJOR is refused, naming both versions, because a
major bump means field meanings or the container framing changed and
reading on would silently misinterpret records.
A version gate written as version == "0.3" passes every positive test
while being wrong, and locks out every future file. v0.1 shipped with
exactly that bug; the policy exists to prevent it.
What 0.3 contains
- 0.2 introduced the
MAJOR.MINORpolicy above, and vertex and edge
tombstones so a deletion propagates on re-import instead of leaving
the record alive at the destination forever. - 0.3 adds tagged property envelopes for the SQL types JSON cannot
distinguish from strings — decimal, date, time, timestamp, uuid,
bytes, int16/int32, and arrays — so a DATE and a TEXT survive a
round-trip as different things. Legacy bare scalars are unchanged.
Verifying an implementation
The conformance suite is the contract. Both runners work against the
goldens as checked in:
python3 conformance/run_conformance.py # needs zstandard
node conformance/run_conformance.mjs # Node >= 22.15
Each reads and fully verifies every golden, rejects the negative
fixtures, and checks that a newer MINOR stays readable. CI runs both on
every push. Pass them and your reader is conformant.
Apache-2.0.