Skip to content

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:21
· 132 commits to main since this release
fa28eb9

MQB v5.0.02026-08-12 发布,是原生 C++ 主线的首个正式稳定版,也是与旧 PowerShell 实现完成切割后的第一个稳定版本。

本版本统一为三个入口:

  • 可执行文件:mqb.exe
  • 命令:mqb
  • 项目配置:mqb.json

主要变化

原生构建流水线

MQB 现在直接以原生 C++ 实现驱动 MSVC:

  • 支持 .c.cpp.cc.cxx
  • 自动发现 Visual Studio 或 portable MSVC toolchain;
  • 单入口可使用 smart source discovery,多入口可使用精确 source set;
  • compile、link、archive 使用独立增量缓存,状态统一写入项目 .mqb/
  • -j / --jobs 支持有界并行 scan/compile。

Target 与编译策略

v5.0.0 支持:

  • exedll 和普通 static target;
  • MD / MDd / MT / MTd runtime;
  • LTCG;
  • console / windows subsystem;
  • include path、define、library path、library,以及原样 compiler/linker argv。

这些策略可通过 CLI 或严格的 mqb.json 配置;标量选项遵循 CLI > mqb.json > default

C++ Modules / Header Units

首个稳定版支持 project-local named modulesproject-local header units。依赖拓扑由 MSVC /scanDependencies 的 P1689 数据决定,而不是通过源码文本猜测。

构建后运行

可执行目标可直接运行:

mqb main.cpp --run -- input.txt "hello world"

-- 之后的参数会作为结构化 argv 传给目标程序。

从旧 PowerShell 版本升级

v5.0.0 是明确的兼容性断点。以下旧入口不再发布或自动兼容:

  • build.ps1build compatibility command;
  • build-legacy.ps1 / legacy rollback;
  • PowerShell profile 注入;
  • 旧安装的自动迁移;
  • msvc_list.json
  • -config-std-type-run-env-flags-link_flags 等 PowerShell-era 单横线别名。

请以 mqb --helpmqb.json 为新的权威接口。旧拼写会直接报错,不会静默进入兼容路径。

安装

下载以下两个 release artifact:

msvc-quick-build-v5.0.0-windows-x64.zip
msvc-quick-build-v5.0.0-windows-x64.zip.sha256

校验 checksum 后解压并运行:

.\install.bat

默认安装目录为:

%USERPROFILE%\bin

重新打开终端后可验证:

mqb --help

首行应为:

MQB 5.0.0 - MSVC Quick Build (C++ refactor)

安装器不会修改 PowerShell profile,也不会创建旧 build 命令。mqb.exe 使用静态 MSVC runtime,因此运行 MQB 本身不要求额外安装 Visual C++ Redistributable。

卸载:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File "$HOME\bin\uninstall-mqb.ps1"

v5.0.0 的已知边界

以下能力 不属于最初发布的 v5.0.0

  • external / prebuilt named-module IFC provider;
  • MSVC toolchain-owned import std; / import std.compat;
  • 需要 Modules/Header Units pipeline 的 static-library target。

这些场景在该版本中显式 fail closed。后续 main 的能力扩展不应被倒推为 v5.0.0 已发布能力。

发布验证

v5.0.0 的正式 artifact 由 MQB 自举链生成和验证:

pinned v5.0.0-rc.2 seed
        ↓
Stage 0
        ↓  MQB-built Release test graph
Stage 1
        ↓  clean build state
Stage 2

发布门禁验证了:

  • pinned seed 的 checksum 与 executable identity;
  • 当时完整的 67/67 Release tests
  • Stage 0 → Stage 1 → clean Stage 2 self-host closure;
  • 发布包中的 mqb.exe 与已验证 Stage 1 byte-identical;
  • exact package manifest 与 checksum;
  • install / reinstall / uninstall lifecycle;
  • tag 与 release/VERSION 一致,publication 使用已验证 artifact,不重新构建。

正式 Windows x64 ZIP 的 SHA-256 为:

eec1d8ae80ff8ade23f438ad53ec253ad67b36a81481759dc6bba0d108cc3d12

历史预发布

v5.0.0-rc.1v5.0.0-rc.2 保留为历史 prerelease,不重写其发布内容。

许可证

MQB v5.0.0 使用 Apache License 2.0。完整条款见 LICENSE