Determines which FishBase / SeaLifeBase data release the taxa functions
read. Resolution order is: the explicit version argument, then the
metadata.fishbase.db_version configuration key, then "latest".
Arguments
- conf
A configuration list as returned by
read_config().- version
Optional release string, e.g.
"25.04". IfNULL(default) the value is taken from configuration.
Value
A length-one character vector: either "latest" or a release
string that exists on both servers.
Details
rfishbase::fb_tbl() defaults to "latest", which is not a fixed dataset:
it follows whatever release the installed rfishbase points at, so a
container rebuild silently moves the reference data underneath a pipeline.
That is not hypothetical. Releases 26.06 / 26.07 still carry Caesionidae
and Scaridae as family names but with no species attached, so any taxon
whose reference name is one of those expands to nothing, receives no
coefficients, and weighs NA — which sums to zero without raising an
error. That is what removed CJX and PWT from Timor-Leste's portal.
The release is validated against rfishbase::available_releases() for each
server separately, because the two do not publish in lockstep: FishBase has
21.06 and SeaLifeBase does not. A single release is passed to both
servers, so a release only one of them publishes is rejected here rather
than failing halfway through a run.
The default is "latest" so that nothing changes for a country that has
not opted in. Pin the release in configuration — "latest" is the drift.
