Versioning and releases
Versioning exists so that a package downloaded in future is scientifically identical to the version originally published, and so that a citation can name what was used. It happens at two independent grains; there is no third, because a station's transfer function has no version of its own.
| Grain | Identifier | What it names |
|---|---|---|
| Survey package | MAJOR.MINOR.PATCH in survey.yaml |
the state of one survey's metadata and transfer functions |
| Corpus release | a release tag, for example 2026-Q3 |
the state of the whole served corpus at one moment |
Survey package versions
| Level | Meaning | Example |
|---|---|---|
| PATCH | metadata-only corrections | 1.0.1 |
| MINOR | additions, such as new stations | 1.1.0 |
| MAJOR | reprocessed transfer functions | 2.0.0 |
The validator warns when version is missing or not shaped MAJOR.MINOR.PATCH, and when
release_notes entries are not {version, date, note} records. The curator metadata editor enforces a
monotonic bump with release notes on every published edit, so a change to a published survey cannot
land without its version moving and its note being written. The portal renders release_notes in the
survey drawer and uses the latest entry's date in the recently-added feed
(survey.yaml reference). A published version is never
edited in place to mean something different; the history of a package is the git history of the survey
repository. Cite the version you used.
Corpus releases
A release freezes one build's catalogue surface (mtcat.json, surveys.json, manifest.json) plus
every per-survey bundle into /data/releases/<tag>/, with a provenance document and a DataCite record
beside them and a newest-first index at /data/releases/releases.json. Build directories are pruned
and the current-build pointer is swapped on every rebuild, so neither is a citable target; a release
directory is immutable. The tooling mints no DOIs; it prepares a DataCite record, and a minted DOI is
stamped back into the release. The documents are in the Releases tier reference.
Reprocessed transfer functions
A station's transfer function can be re-made. AusMT versions that at the survey grain as a MAJOR bump, and the build serves the result one of two ways.
Replacement in place. The file under transfer_functions/edi/ is replaced: one station id, one
served transfer function, and the previous bytes stay in the survey repository's git history.
A distinct variant station record. When a package hands the build two transfer functions for one
station id, the build keeps both. It appends a processing-variant tag, so the records are served as
<station>.<variant> with ausmt_id au.<slug>.<station>.<variant>, each with its own product path
and portal route. The tag is the part of the filename beyond the station id, lowercased and sanitised
(MBV20_LemiGraph beside MBV20_Ohmega gives MBV20.lemigraph and MBV20.ohmega), or a positional
v1, v2 where the filename leaves nothing to use. The build records the physical site behind a
tagged record for the curator workbench, so a per-station coordinate override keys on the site. A variant tag is an identity, not a version: nothing marks one
current and the other superseded. Reprocessings in the corpus today arrive under their own station id
(the marker rides in the source file's DATAID, the ...r and ..._BxReplaced files), so no station
currently carries a variant tag.
No per-station version number exists anywhere: survey.yaml has no station-level version key, the
station product and the MTCAT station record carry no version field, and no manifest row carries a
version or supersession flag (the manifest and build-report row definitions are closed,
additionalProperties: false). What distinguishes one processing run from another is recorded in
processing in survey.yaml (survey-wide) and in each
station product's processing block, read from the
source file's header.