Skip to main content

Mountain/ProcessManagement/NodeResolver/
CheckMinMajor.rs

1#![allow(non_snake_case)]
2
3//! Warn when the resolved Node's major version is below `Require`. Does NOT
4//! fail the spawn - Cocoon's bundled code mostly degrades gracefully on older
5//! engines and operators should be free to experiment on unreleased Node
6//! without a hard gate.
7
8use crate::dev_log;
9
10pub fn Fn(VersionString:&str) {
11	let Trimmed = VersionString.trim_start_matches('v');
12
13	let MajorToken = Trimmed.split('.').next().unwrap_or("");
14
15	let Major:u32 = match MajorToken.parse() {
16		Ok(Value) => Value,
17
18		Err(_) => return,
19	};
20
21	let Required:u32 = std::env::var("Require").ok().and_then(|Raw| Raw.parse().ok()).unwrap_or(20);
22
23	if Major < Required {
24		dev_log!(
25			"cocoon",
26			"warn: [NodeResolver] Node {} is below Require={}; extension host may fail to boot. Override via Pick or \
27			 upgrade Node.",
28			VersionString,
29			Required
30		);
31	}
32}