SignalK Versions
Scope: All SignalK plugins (family = "signalk-plugin" in repos.toml)
Policy - SignalK Server
Section titled “Policy - SignalK Server”Support a rolling 6 months of signalk-server releases.
- Ideally this would be a year, but
signalk-serveris changing fast - The oldest supported release is the one that was current 6 months ago, i.e. the latest non-prerelease published on or before that date
- Plugins must work on every release from the oldest supported to the latest
- Don’t use server APIs added after the oldest supported release, unless the plugin checks for them at runtime and degrades gracefully
- Declare the floor in
package.jsonas"engines": { "signalk-server": ">=X.Y.Z" } - Raise the declared floor when a plugin needs a newer API, otherwise at most once a quarter. A declared floor a little below the window does no harm in between (decided in hq#53, 2026-10-29)
- The window applies to the CI test matrix as well as to the floor in
package.json: test the oldest supported release and the latest - Example
- On 2026-10-21 the window starts 2026-04-21
v2.25.0(2026-04-19) was current then, so supported range isv2.25.0tov2.34.0
Policy - Node
Section titled “Policy - Node”The minimum Node version is the engines.node of the oldest supported signalk-server release.
- Set
engines.nodein every plugin’spackage.jsonto exactly that range - When the window moves past a
signalk-serverrelease that raised its Node minimum, raise the plugins’engines.nodeto match. Never set it lower than the server’s. - CI
node-versionuses that minimum major - Always use the latest point release within a major version
- Example
signalk-serverv2.25.0declares"node": ">=22", so plugins declare"node": ">=22"
Responsibilities
Section titled “Responsibilities”- Vulnerabilities in Node, SignalK, other plugins or SignalK dependencies are not Rhizomatics responsibilites. An exception is if there is some specific vulnerable feature that is used by the plugins and which requires immediate remediation and/or advice to users to avoid.
Checking
Section titled “Checking”Find the oldest supported release with
gh api "repos/SignalK/signalk-server/releases?per_page=60" (skip prereleases), then read its Node
minimum from package.json at that tag:
gh api "repos/SignalK/signalk-server/contents/package.json?ref=<tag>".