Changes since v0.1.19 (0.1.20 was never tagged, so this carries both).
The coverage audit reads the backbone set instead of carrying a copy
-
check_manifest_coverage.Rwalked aBACKENDSvector kept by hand, so a backbone wired into the build but not added there was audited by nothing and reported as clean. COL XR had been in that position since it was wired. The vector is gone: the set is parsed out of.register_extractorsinR/register.R, and the script stops with an explanation rather than auditing a guessed set when it cannot read that file. -
The audit also checks what the published register was built from. Both register artifacts already record the backbones they unioned in their
.metasidecar and nothing compared it, so a register going stale as backbones were added had no signal at all: no version moves, and no bytes change in anything that is checked.register_incompleteandregister_unreadablejoin the drift states the weekly workflow opens an issue for. -
Reading a release asset over the API works with a token present.
curl::handle_setheaders()replaces the header set rather than adding to it, so settingAuthorizationin a second call dropped theAccept: application/octet-streamthat asks for the bytes, and the API answered with the asset's JSON description instead. The same defect had been droppingUser-Agentfrom every authenticated request.
Reference geometry builds through the same door as a backbone
-
build_backend("wgsrpd")andbuild_backend("meow")work, and both build inbuild-light.ymlalongside the backbones. The boundary geometry behind taxify'sregion =and coordinate lookup had no entry in any builder registry, so it could only be rebuilt by calling the internal function directly. -
They are registered in
.geometry_builders, not.backend_builders, andlist_geometry()names them.list_backends()is whatbuild_all_name_lookups()andresolve_name_map()iterate to build the per-backbone accepted-name lookups every enrichment is resolved through; a vertex table carries no taxonomic names, so a geometry asset listed there would yield an empty lookup and quietly cost those enrichments their matches.
A rebuild that changed nothing no longer cuts a release
- Builds stamp
date +%Y.%m, which records when a build ran rather than what it read. Several backbones read a pinned source and rebuild to identical bytes every time, so releasing them again minted a version whose only difference was its name, and taxify's runtime treats a fresh version as reason to refetch. Newvtr_changed()compares the built.vtragainst the hash the manifest records, and both workflows gate the release, manifest commit and runtime sync behind it. It fails open, so an undecidable case still publishes.
Six backbones moved off a runner that does not exist
build-heavy.ymltargetsself-hostedand no runner is registered, so no job of its has ever been picked up. WFO, WCVP, LCVP, Fungorum, AlgaeBase and Euro+Med move tobuild-light.yml, leaving COL, COL XR and GBIF. Both heavy crons are held while it has no runner.
Also
-
A release published without sidecars no longer clears the
extrasblock recorded from an earlier one. -
WoRMS was reading short and now does not (#43).
utils::read.delim()cannot read the taxon core: lone carriage returns inside quoted fields end a line for R, text mode loses bytes doing it, the quoting stops balancing andscan()returned 1,363,240 of 1,562,065 rows as a warning. 198,825 marine taxa were missing. The reader isdata.table::fread()now, the build streams the gigabyte core rather than holding it, and a missing or repeatedtaxonIDfails the build. -
BETSI-derived earthworm and Collembola trait matrices are recovered (#42).
-
Enrichment name resolution spans all fifteen backbones, and build-only enrichments are never published.
Full notes in NEWS.md.