本文件由
scripts/version_log.py生成,勿手改:事实(版本号、级别、变更)写在src/version.py的HISTORY里,改完跑python scripts/version_log.py --write。guanlan.py check与打包器都会校验本文件与代码里的版本号是否一致。
编号 v<大版本号>.<中版本号>.<小版本号>,例如 v2.8.0。
| 级别 | 含义 |
|---|---|
| 大版本号 | 系统解决方案、架构或核心功能改变 |
| 中版本号 | 非核心功能新增、减少、修改 |
| 小版本号 | 消缺完善 |
怎么改:改动落在"解决方案/架构/核心功能" → 大 +1(中/小归 0);落在"非核心功能的新增/减少/修改" → 中 +1(小归 0);只是"消缺完善" → 小 +1;一次发布混了几类,取最高那一级
打包文件名 = app_guanlang_v2.8.0.zip(规则:app_guanlang_v<版本号>.zip)。
版本号只写在 src/version.py 一行(VERSION = '2.8.0');打包器、安装脚本、安装记录 install-info.json、自检都读它,不另设真源。
| 版本 | 日期 | 级别 | 主要变更 | 说明 |
|---|---|---|---|---|
v2.8.0 |
2026-09-20 | 中 | 输入数据自动扫描识别:<安装目录>/data/raw 逐族指纹 → 发现新增/变化 → 指明该跑哪几步;重算链加 ①b 步 + rebuild_all.py --auto(新数据不被 --skip-* 漏掉)+ 服务侧可选看门狗 |
非核心功能新增 ⇒ 中版本 +1(无架构改动)。要点: ① 新增 scripts/raw_scan.py(用户令 2026-09-19「对 <安装目录>/data/raw 目录下的接入数据处理,增加自动扫描识别机制,以能发现新增数据,并纳入重算」):逐族指纹 = 件数/体积/最新落盘时间/清单摘要(--deep 再叠内容哈希),与快照 outputs/<场>/_raw_scan.json 比;rc: 0 无变化 · 4 有新增/变化 · 5 还没有基线; --write 记基线, --json 给机器读, --selftest 对账"族表覆盖反查族表里所有 raw 输入 + 步骤名都能在链上找到"(防两处漂移); ② 族表把每个 raw 子目录映射到链上步骤(故障报警/工单/油样→②;scada_10min→③④④c⑤b;scada_1min→④c;scada_mdb→③④④c;windcms→④b④d④e;m5_cms_tcm→④b;西门子4.0技术资料→⑦),data/raw/<场>/ 下出现族表没有的目录则如实报"未归类、没有已知消费者"(不猜); ③ 进重算链作 ①b 步(--check --write,容忍 rc=4/5,并在步说明里写清"4 = 有新数据不是失败"); ④ rebuild_all.py --auto:先扫一遍,新数据落在被 --skip-scada/--skip-vib 跳过的族里就自动取消跳过(实测: scada_10min 新增 1 件 → 计划从 22 步变 24 步并打印取消原因); ⑤ 服务侧看门狗(scripts/service_worker.py::raw_watch,配置 configs/serve.json 的 raw_watch,默认关):每 N 分钟扫一次,有新数据写 logs/service.log 并列出该跑的步;auto_rebuild=true 时顺手发起一次重算(走 ops 同一条路;run/ops_job.json 显示在跑则不重复发起)。交付包 app_guanlang_v2.8.0.zip |
v2.7.0 |
2026-09-19 | 中 | 远程部署消缺:振动窗发布被杀软/索引占用不再打断整条重算链(+ --publish-only 恢复通道);门户可对外监听(public_host,组件仍只本机);GBK 控制台打印不炸 | 一次消缺 + 一项非核心功能新增(对外监听)⇒ 按规则取最高一级(minor)。要点: ① ★远端实逮(服务器 D:\产品\app):索引 719 s + 谱 894 s 落进 windows_staging_ingest 后,staging.rename(final) 回 PermissionError: [WinError 5] 拒绝访问(360 实时扫描/索引器持着刚写的 1710 件小文件的句柄,Windows 的目录改名要求树里无打开句柄)⇒ ④b 失败 ⇒ 链停在第 4 步,页面表现为「需要关注 0 台 + 融合面缺件」。修法:发布改 _move_tree()(整目录 rename 退避重试 → 逐件搬,rename 不行就 copy+删 → 仍锁住的逐条如实报出);并加 --publish-only:已算完的暂存窗可直接发布,不必白等 25 分钟重跑索引/谱; ② 用户令「观澜改为监听所有 IP」:configs/serve.json 增 public_host(空=跟 host=只本机;设 0.0.0.0=所有网卡),只有门户网关用它,detail/cms/viewer/sim 仍绑 127.0.0.1 ⇒ 对外只有 28084 一个入口;启动时打印对外地址并提示"页面无鉴权,请在防火墙侧限来源"; ③ 消缺: 新生成端在 GBK 控制台打印 m/s² / ⇒ 时抛 UnicodeEncodeError(远端 baseline_38 整件没出)⇒ 四个生成端加 stdout 守卫;trend_ingest 的"台账止 2024-11"过期断言改实话;CMS 三层基线卡的"健康期窗 N"重复措辞; ④ 部署口径: 用 SSH 起的服务在会话断开时会被一起收掉 ⇒ 现场改注册 Windows 服务(guanlan)(scripts/service_ctl.py install),开机自启、SCM 崩溃重启。交付包 app_guanlang_v2.7.0.zip |
v2.6.0 |
2026-09-19 | 中 | 「所有的计算均要形成观澜的源代码」:融合面/总览页/事实契约/发布层/掩码阈值/六层链两步/变桨面/振动在升与三层基线 全部落成观澜自算;SCADA 接入兼容 CSV+MDB;交付包带输入数据目录结构(不含文件) | 功能新增为主、夹带多项消缺 ⇒ 按规则取最高一级(minor)。要点: ① 六层链 model_run/fusion 两步按口径重建(报告的"融合级"列从此有值)+ energy_share 步补上 + 峰值拾取口径定案(观澜口径,四件 *_freq_scan 形式不再复刻); ② 融合面 handoff 与总览页 windscada/index.html 由观澜自算生成(原为"包内无生成端",新机器上 /detail/v2 的"需要关注/全场状态"必空白); ③ 事实契约改为从重算台账生成 claim(门户结论段/问答/报告随重算刷新,/api/facts 不再 503); ④ 本体发布层 r1/r2、TCM 掩码阈值(观澜自算口径,非厂商)分别落成生成端; ⑤ SCADA 接入统一取数层兼容 CSV 与 MDB(含老库列位错位如实拒绝;37 个月库按修好的建库脚本重建并逐分片对拍); ⑥ 变桨面 pitch/** 落成生成端(10min 开关量/压力锯齿 + 1min 桨距角;零位口径按用户令停机段/满发段分列,并据实测反推补上运行段同工况分档这一真正的判据轴 —— 它能把现场确诊的 19# 单独拎出来); ⑦ 振动 component_history.json(在升/换件闭环)与 baseline_38.json(自/机群/绝对三层基线)落成生成端(窗数不足时如实空表并写明数据边界); ⑧ 打包:带输入数据目录结构(30 个空目录, 含 data/raw/西门子4.0技术资料)+ 放置说明文件随包, 仍不含数据文件; ⑨ 消缺: report 步踩可选包 tabulate 致整链中断、语言包闸拦下的 /v2 500、振动页看不出数据区间与"3 月数据消失"(趋势按日聚合)、账目单位错(kWh/MW)、Access 锁文件误报、日志保留策略等。交付包 app_guanlang_v2.6.0.zip |
v2.5.0 |
2026-09-17 | 中 | 卸载闭环(uninstall.bat / uninstall.sh)+ 版本管理与打包命名规则 + 版本记录 | 二代架构(大版本 2,与 NAME 里的 v2 对齐)的第 5 次功能性发布,无消缺项;交付包 app_guanlang_v2.5.0.zip |
v0.4.0 |
2026-09-17 | 旧编号 | 打包默认不含 输入数据/产物/日志/临时文件;无窗口启动(去掉 VBScript);统一配置与日志;页面归口审计;输入数据放置检查;安装时版本检查与服务化 | 旧编号体系;交付包 app_guanlan_v2_0.4.0.zip(= guanlan-v0.4.0_dist_20260917.zip) |
v0.2.0 |
2026-09-01 | 旧编号 | 含产物的旧交付基线(历史上用作"包内无生成端"那批产物的补救源;该用途 2026-09-19 起已失效) | 旧编号体系;交付包 guanlan-rudong-v2_0.2.0_test_win64.zip —— ★2026-09-19 用户令从工作树清理(943 MB):① 「所有的计算均要形成观澜的源代码」落地后无生成端件 = 0(反向呼应审计 1,800 件全部 raw-derived)⇒ 它作为"补救源"的用途消失;② 该包仍留在 git 历史里(blob 可随时 git 取回),需要时用 git show 恢复即可 |
v2.8.0(观澜·如东样板 v2)app_guanlang_v2.8.0.zipguanlan(Windows 服务 / systemd 单元)install.bat、install.sh / uninstall.bat、uninstall.sh