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}