Skip to main content

Mountain/ProcessManagement/NodeResolver/
CheckMinMajor.rs

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