node_versions
node_versions
¶
Read the shipped record of which Houdini versions have been sampled.
data/sampled_versions.json is generated by tools/gen_node_versions.py
from the Houdini builds contributors have sampled. Only the version list ships;
the full per-node evidence stays in tools/node_versions.json, which is a
megabyte nothing at runtime needs. The instructions in
prompts/markdown/server_instructions.md carry version markers derived from
it, e.g. colorcorrect (21.0+).
Those markers cannot know about a Houdini nobody has sampled yet. Read literally
(21.0+) includes a future 23.0, so if SideFX drops a node there the way they
dropped the LOP layout in 22.0, the instructions would keep advertising it.
This module exists so the server can notice that case and say so, rather than
letting a stale marker pass silently. It is a staleness signal, not a
correctness mechanism: build_network(dry_run=True) validates node types
against the running Houdini and cannot go out of date.
Functions:
| Name | Description |
|---|---|
load_table |
Return the shipped table, or empty structures when it is unreadable. |
sampled_series |
Minor series the table has evidence for, oldest first. |
series_of |
Reduce "22.0.368" to its minor series "22.0". |
staleness_warning |
Return a warning when version is outside what has been sampled. |
Functions:¶
load_table
cached
¶
load_table() -> dict
Return the shipped table, or empty structures when it is unreadable.
Never raises: a missing or corrupt table degrades this to "no opinion", which is the right outcome for a diagnostic that must not break a session.
sampled_series
¶
Minor series the table has evidence for, oldest first.
series_of
¶
Reduce "22.0.368" to its minor series "22.0".
Returns None for anything that does not start with two integer components, which is what the health endpoint reports when it cannot determine a version.