Skip to content
bitzorcas
中EN

Reference

更新日志

记录影响开发者、适配器作者和商业交付方的主要能力与文档变化。

Last updated

本页记录可由源码、测试或发布门禁验证的高层变化,不逐条复制 Commit。正式版本的精确内容仍以对应 Tag、包清单、SBOM 和 provenance 为准。页面级「最近改过哪一篇」见最近更新。

2026-08 — 锁安全 Schema 发版与 Host-Admin 漂移通知

Changed — --init-schema 不再对已有表卸索引或改列长

Affected: 发版窗口、DBA、Host-Admin
Behavior: --init-schema 只建缺失表,并给已有表补可空、无默认值列;SQL Server 会话 LOCK_TIMEOUT 5000。列变宽、缺索引、必填加列只记残留,不自动 ALTER。
Migration: 已有库先盘点并执行 scripts/database/migrations/,再跑 schema-only。残留经 /host/schema 审阅,或由 DBA 执行受保护脚本。
Evidence: SqlSugarLockSafeSchemaClassifierTests、产品仓库 0103-database-initialization.md、数据库初始化

Changed — Schema 漂移通知改由 API Host 全量嗅探

Affected: API Host、JobHost、host-admin
Behavior: API Host SchemaDriftNotifyHostedService 按 Catalog 名 operations-schema-drift-notify 只读嗅探,聚合站内信发给 TenantId=0 的 host-admin。JobHost 仍登记同名 Quartz 适配器,但缺全量实体目录或收件端口时 fail-soft,避免半套模型报假干净。
Migration: Operations:SchemaDriftNotify:Enabled=false 或 BackgroundJobs:operations-schema-drift-notify:Enabled=false 可关闭。不要为了这份通知扩大 JobHost CompositionInclude。
Evidence: SchemaDriftHostNotifierTests、SchemaDriftNotifyHostedServiceTests、BackgroundJobIntakeTests

Added — AppHost 显式 BITZORCAS_ASPIRE_RESET_SCHEMA 开关

Affected: 本地 Aspire persist / fast 库
Behavior: BITZORCAS_ASPIRE_RESET_SCHEMA=true 让一次性 schema-initializer 执行 --reset-schema --force。默认叠加 --no-seed;同时开 BITZORCAS_ASPIRE_SEED_DEMO=true 则叠加 --seed-demo。对 AppHost 传 -- --reset-schema 无效。不能与 BITZORCAS_ASPIRE_RESET_DEMO_PASSWORDS 同时使用。Production / Staging 拒绝。Quartz 表不会被删除。launch profile 默认关闭。
Migration: 先停 AppHost,开开关启动一次,成功后关掉再日常启动。列长变更仍走 /host/schema 或 scripts/database/migrations/。
Evidence: 产品仓库 AppHost.Program、AppHostTopologyTests、Aspire 编排、数据库初始化

2026-07 — Commercial GA 与开发说明书收口

  • 建立独立 Framework.ConsumerContract.Tests,从隔离 Feed 验证模板与 PackageReference 消费闭环。
  • 增加 Commercial GA 门禁:包来源、签名、SBOM、provenance、外部 Consumer 与版本同源验证。
  • 明确 PlatformBilling、套餐/运行时 License 和业务计费三条边界。
  • 全站按当前 Framework、Platform、Modules、Hosts 与 Tooling 布局重写。
  • 校准 CAP 语义:消费者按至少一次处理;自动领域事件桥接是事务后 best-effort,关键消息显式进入 CAP 事务。
  • 校准持久化策略:新模块默认统一聚合根与编译期 ORM Fluent Configuration Generator。
  • 补齐 Identity、Authorization、Workflow、Search、Reporting、Operations、RiskControl、Website、I18n、Documents 等运行手册。
  • 重写教程、测试、部署、安全和架构图;补齐三篇缺失的英文教程。

2026-06 — 框架、平台与工具链成形

  • .NET 10 模块化单体基线、Mediator 管线、统一授权和多租户上下文落地。
  • SqlSugar 主适配器、EF Core parity 路径、Dapper 查询适配与真实基础设施测试成形。
  • CAP/RabbitMQ、FusionCache/Redis、OpenTelemetry、S3 兼容存储和 Aspire 本地编排接入。
  • 自研工作流引擎、平台 Workflow 模块、通知适配、迁移器与分析查询落地。
  • Mapperly、DI/Endpoint/Modularity/Persistence Source Generator 和 Scriban 工具链接入。
  • Files、Notifications、Webhooks、Catalog、PlatformBilling、Tickets、Chat 等平台能力形成稳定边界。

更早的架构阶段

项目在 2026 年上半年完成技术选型、原型验证和架构约束固化。早期文档中的固定“阶段数”“模块数”和 BuildingBlocks 路径不再作为当前事实;需要追溯历史时,请读取对应 Git 提交和 ADR,而不要据此配置新项目。

维护规则

新增条目要说明“对谁有什么影响”,并能指向代码、测试、迁移或交付证据。尚未合并的方案写入路线图,不要提前放进更新日志。

与发布制品的关系

更新日志是面向人的影响摘要,不是唯一版本事实。正式发布绑定不可变 Tag、源提交、包清单、模板版本、迁移说明、SBOM、provenance 和签名结果。

证据证明什么不能单独证明什么
Git Tag选定源码提交包来自该提交
Package manifest包名与版本签名和外部消费成功
SBOM制品依赖构成依赖没有漏洞
Provenance构建来源与过程运行环境配置正确
Consumer Contract隔离项目能消费所有客户拓扑已演练
GA evidence候选满足当前门禁未来版本自动兼容

变更分类

  • 新增:公开能力、模板、命令或 Provider;
  • 变更:默认值、运行顺序、配置或行为;
  • 修复:错误行为及受影响版本;
  • 弃用:仍可用但进入迁移窗口;
  • 移除:弃用窗口后的破坏性删除;
  • 安全:需要升级、轮换或运维动作;
  • 文档:改变采用方式但不改变运行时。

没有读者可感知结果的“重构”“优化”不进入高层日志。性能变化给出基准环境与指标;安全条目在修复广泛可用前不披露可利用细节。

单条记录模板

### Changed — Files finalize semantics
Affected: Files consumers and storage adapters
Behavior: repeated finalize currently returns Conflict
Migration: preserve the original upload session identifier
Evidence: handler test + S3 provider parity suite
### Security — delegated-session validation
Affected: API hosts enabling delegation
Action: rotate signing keys and redeploy all replicas
Compatibility: existing grants require re-authentication
Evidence: security integration suite + release advisory

记录写明影响对象、行为或风险、迁移/运维动作和证据。错误码、配置键、端点或包名变化时使用精确名称,不写空洞的“完善”“增强”。

破坏性变化与弃用

破坏性变化包括公共 API 删除或改签名、错误码语义改变、配置键重命名、不可逆数据库迁移、模板输出不兼容和默认安全策略收紧。必须提供:

  1. 首次影响版本与目标移除版本;
  2. 旧新调用方式对照;
  3. 自动或人工迁移步骤;
  4. 回滚条件和数据兼容范围;
  5. Consumer Contract 覆盖方式。

只加 [Obsolete] 不构成完整弃用。移除时还要链接最后一个支持旧契约的版本。

发布条目核查

Terminal window
# 比较不可变版本,建立候选影响面。
git log --oneline --no-merges vPREVIOUS..vCURRENT
git diff --name-status vPREVIOUS..vCURRENT
git diff -- Directory.Packages.props global.json
Terminal window
# 从制品确认包、模板和 Consumer 证据。
find artifacts -maxdepth 3 -type f | sort
rg -n "PackageVersion|TemplateVersion|SourceRevision" artifacts
rg -n "PASS|FAIL|SKIP" artifacts/consumer artifacts/ga

命中只是候选。还要阅读公共契约、迁移、默认配置和测试差异,避免把内部重构写成外部变化,也避免漏掉只有运维影响的调整。

发布后修正

记录写错时明确修正日期,不能悄悄改写历史。制品错误则发布修订版本或公告,不覆盖不可变包。

发布后验证 Feed、签名、SBOM/provenance 下载、外部 Consumer 重建和迁移/回滚链接。严重遗漏进入复盘并反向补强 GA 门禁。

审查清单

  • 是否来自已合并且准备发布的事实?
  • 是否写明读者、版本和迁移动作?
  • 是否区分 PlatformBilling、Licensing 与业务 Billing?
  • 是否避免夸大 best-effort、at-least-once 或 Null 降级?
  • 是否有 Tag、测试、包或发布证据?
  • 中英文是否表达同一变化和风险?

完整证据链见Commercial GA 门禁。

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%