601451f22b
Overlay ~150 upstream items onto our V8.12 base, preserving trade-pro
theme, registry tests, and design docs. Re-applied our patch set
(discovery/env_for/blocks.css/type-mapping/theme_color/frontend entries,
test_theme_pro_v3 mods) — all anchors survived upstream evolution.
New platform enhancement (fixes upgrade-introduced regression):
multilingual.site_locale now honors settings_json.locale, plus
PUT /api/i18n/sites/{id}/locale — standalone English sites get
<html lang='en'> under the V8.15 locale-rewrite pipeline.
compose: adopt V8.21.3 (image 8.21.3-dev.1, /api/ready probes, MySQL/S3
env) with project name pinned to siteforge-v8-10 (data volumes).
Tests: 356 passed / 11 failed — all 11 confirmed pre-existing in
pristine V8.21.3 on this host (10 upstream Windows env + our build test
now green after locale fix). Patch registry updated in plan doc.
Co-Authored-By: Claude Code <noreply@anthropic.com>
4.0 KiB
4.0 KiB
SiteForge Enterprise V8.16 — 企业部署基础验收记录
版本:8.16.0-dev.1;阶段:开发集成(非生产认证)。
本轮新增与测试门禁
| 验收项 | 验证路径 | 当前结果 |
|---|---|---|
| PostgreSQL 查询行数字/字段访问 | tests/test_production_v816.py |
本地模拟测试通过 |
| PostgreSQL SQL 占位符、注释及 DDL 分句 | 同上 | 本地单元测试通过 |
| PostgreSQL 初始化及 schema ledger | scripts/verify_pg_bootstrap.py |
脚本已扩展;需要 PostgreSQL 实例实测 |
PostgreSQL Worker FOR UPDATE SKIP LOCKED、事务与任务恢复 |
CI postgres-smoke |
自动检查代码已接入;本机没有 PG 服务,未实际通过 |
| Worker 按实例隔离心跳 | tests/test_production_v816.py |
本地通过 |
/api/ready 探针成功/失败及脱敏 |
tests/test_production_v816.py |
本地通过 |
| 全平台自动化回归 | scripts/check.sh |
按模块三组通过:95+82+78 = 255 项 |
| HTTP + Worker 实际建站链路 | python scripts/http_end_to_end.py |
本地通过:建站、保存、队列、静态 ZIP、预览 |
| Chromium 桌面/移动端真实交互 | scripts/browser_smoke.py |
环境阻断:ERR_BLOCKED_BY_ADMINISTRATOR,未通过 |
| Docker Engine Web + Worker | docker compose up -d --build |
本机无 Docker Engine,未运行 |
| Redis 通知故障降级 | 历史单元测试 | 通过;真实 Redis 容器未运行 |
| Art Design Pro 官方构建 | 用户提供官方完整源码后执行 pnpm/构建 | 未完成;交付包含安装脚本/适配页面,不含官方完整项目 |
| 公网 SFTP/S3/HTTPS 上线和回滚 | 独立预生产环境 | 未完成 |
说明:单进程连续执行所有 pytest 在约 84% 时超时;上述 255 项是三个独立 pytest 进程(95/82/78)分别完成并通过,不等同于单进程全量成功。新增真实 HTTP 集成构建了 10 个 HTML 页面,仍有缺少正式域名、未填充栏目内容的质量警告;只证明代码路径畅通。
生产环境验收操作建议(必须在预生产进行)
- 对 V8.15 的 SQLite 数据卷和所有媒体、归档、发布目录做完整备份,先演练恢复;保留生产回退窗口。
- 在独立 PG 16+ 测试数据库执行
scripts/verify_pg_bootstrap.py。验证 Web、Worker 启动与并发 claim;不把原 SQLite 文件当作 PostgreSQL 数据迁移。SQLite → PG 的正式数据迁移、外键校验、内容数量和媒体对账还未实现为可一键生产执行的迁移器。 docker compose -f compose.enterprise.yaml config、up -d --build,分别核对 Web/api/ready、Worker 本地健康以及 PostgreSQL/Redis 服务健康。- 将两个 Worker 实例分别配置唯一的
SITEFORGE_WORKER_INSTANCE,断开其中一个,确认另一个健康状态不会使坏实例误报正常;断电中断后要检查租约回收与远程发布状态对账。 - 用完整真实数据做创建网站、WordPress 迁移、5000 条产品导入、构建、主题预览和多语言 SEO 检验。在 Chromium 1440/1024/390/360 视口进行后台与前台访问性/响应式验证。
- 在预生产的实际 SFTP/S3/HTTPS Agent 发布,逐步演练上传失败、激活失败、CDN 缓存、健康检查失败及人工回滚;审批人与执行人分离。
- 获取合法的 Art Design Pro 官方工程后执行
scripts/install_into_art_design_pro.py,完成实际路由/会话/CSRF 联调及pnpm build。目前属于可选桥接,不要把它计为完成。
风险边界
- PostgreSQL 兼容桥目前在 PG + Psycopg 真机上仍需完整持续验证,不能因为 SQLite 测试通过就宣称 PG 生产稳定。
- Redis 当前主要用于任务唤醒,任务权威状态仍在数据库;并非完整的分布式消息可靠性交付。
- SFTP/S3 原生发布已支持本地仿真,但公网环境、强制 TLS、服务端权限和切换时缓存行为仍需验收。
- 新版未添加 SSO、MFA 或企业级集中监控系统,也未完成 Art Design Pro 官方源码集成。