跳转至

开源发布手册

本文档是 VelaSim 对外开源的发布 runbook:三道关口 → 工程动作 → 展示项。已完成项标注 ✅。

发布清单总览

# 事项 状态 责任人
A1 IP 审查(与交付客户代码无代码级重合、合同无排他条款) ⬜ 待确认 项目负责人
A2 git 历史凭据清理(filter-repo) ⬜ 发布前执行 项目负责人
A3 许可证定案(Apache-2.0) ✅ —
A4 演示账号开源化(生产随机密码 / dev 档固定演示凭据) ✅ —
B1 GitHub 建主仓 + Gitee 公开/镜像 ⬜ 待执行 项目负责人
B2 CI 接入(GitHub Actions) ✅ 已就位 —
B3 CONTRIBUTING / Issue / PR 模板 ✅ 已就位 —
B4 打 v0.1.0 tag ⬜ 发布日 项目负责人
B5 文档站首页 + Pages 上线 ✅ 已就位,待托管 —
C1 README 截图 / 演示录屏 部分 ✅(截图已加) 项目负责人
C2 公开演示环境 ⬜ 可选 见 演示环境手册

A. 关口项

A1 IP 审查(⚠️ 唯一无法由工具代劳的关口)

本项目由多套行业定制交付项目沉淀共性需求后全新重写。开源前请书面确认:

  • 与任一客户交付物无代码级重合(重写不等于无风险,逐模块抽查一遍)
  • 交付合同无排他条款 / 著作权转让条款涉及本代码
  • 数据库种子数据、截图、文档中无客户名称 / 项目信息

A2 git 历史凭据清理

扫描结论(2026-10 已执行,git grep 全历史):

  • ✅ 三台层 2 服务器 IP(112.126.72.13 / 101.200.217.88 / 182.92.103.9):历史零残留
  • ✅ 个人密码模式(Xuyq@2026):历史零残留
  • ✅ 旧演示密码 PerA@2026(含旧产品名 Pera):已全量轮换为 VelaSim@2026(HEAD 零残留);历史中出现于 2 个提交,发布前用 filter-repo 置换
  • ℹ️ Demo@12345 / Test@2026 为 dev 档位演示凭据(vela.demo.enabled=true 才生效),按惯例保留,生产档位不存在

发布前执行(唯一破坏性步骤,改写提交哈希,之后需 force-push):

pip install git-filter-repo        # 或:sudo apt install git-filter-repo

# 置换历史中的旧演示密码(HEAD 已是新值,历史同步置换)
git filter-repo --replace-text <(echo 'PerA@2026==>VelaSim@2026')

# 若审查发现其他敏感串,一并追加:
#   echo '192.168.1.10==>***REDACTED***' > /tmp/replacements.txt
#   git filter-repo --replace-text /tmp/replacements.txt

# 完成后强制推送(Gitee origin 当前为私有仓,公开前最后一次 force-push)
git push --force-with-lease origin main

filter-repo 会自动移除 origin 远程配置,推前需 git remote add origin https://gitee.com/yunquanxu/velasim.git 重新加回。

A3 许可证(✅ Apache-2.0)

已定:LICENSE 文件已就位(Copyright 2026 VelaSim Contributors,如需改为个人/公司署名可编辑首行)。Apache-2.0 对私有化部署用户最友好,允许闭源修改与商用,是最常见的开源默认选择。

A4 演示账号开源化(✅ 已完成)

  • 生产档位(默认):首次启动生成 16 位随机初始密码(CSPRNG),仅本次启动日志输出一次,首次登录强制改密
  • dev 档位(vela.demo.enabled=true):固定演示账号(admin/VelaSim@2026、demo_user/Demo@12345、租户成员等),登录页一键回填,仅 dev 构建可见
  • deploy 脚本冒烟测试改为从启动日志提取初始密码,不再携带硬编码凭据;部署摘要按 VELA_DEMO_ENABLED 条件展示演示账号

B. 工程项

B1 双平台仓库

  1. GitHub 建主仓:新建 velasim 公开仓库(许可证选 Apache-2.0,README 已有),推送:
    git remote add github https://github.com/<your-account>/velasim.git
    git push github main --tags
    
  2. Gitee 公开现有仓:gitee.com/yunquanxu/velasim 已存在,设置中改为公开(需实名认证,许可证已选)
  3. Gitee 镜像同步(免维护,推荐):Gitee 仓库页 → 「设置」→「镜像仓库管理」→ 添加 GitHub 地址 → 勾选自动同步;或将 GitHub 为主推双 remote。README 顶部互相放链接。

B4 打版本 tag

git tag v0.1.0 -m "VelaSim 首个开源版本"
git push github main --tags && git push origin main --tags

发布说明要点:已完成的八大里程碑、待现场验证项(SGE/Slurm/guacd/云凭证/SMTP 真实环境联调)、演示环境地址(如有)。

B5 文档站托管

  • GitHub Pages(稳定,推荐):Settings → Pages → 部署 site/ 目录(或加一个 Actions workflow:checkout + pip install mkdocs-material && mkdocs build + upload artifact)。
  • Gitee Pages:需实名,且服务历史上多次暂停/限制,建议只做备用镜像,主入口放 GitHub Pages。
  • 若自有域名:CNAME 指向 Pages 服务即可。

C. 展示项

C1 截图与录屏

  • 截图已加入文档站首页(docs/assets/screenshots/)与 README
  • 建议补一段 2 分钟演示录屏(dev 档位跑通全流程:登录 → 提交作业 → 网盘回传),传 B 站/YouTube 后放 README 显著位置
  • screenshots/ 目录为一次性素材仓,后续截图统一放 docs/assets/screenshots/

C2 公开演示环境

可选但转化率极高:一个公开实例让访客免部署体验。详见 演示环境手册。演示环境建议在仓库公开之后再上线,README 留链接位。

发布日执行顺序

  1. ✅ 复查:grep -rn 无敏感串、git log --oneline | head 无异常提交
  2. A1 确认通过 → A2 filter-repo + force-push
  3. Gitee 转公开 + GitHub 建仓推送
  4. 打 tag、发 Release、开 Pages
  5. README 链接补齐(GitHub/Gitee/演示环境)、发布公告(如社区渠道)