本文档概述了 PrivateGPT 的发布管理流程,涵盖版本策略、发布工作流程以及用于自动化发布的工具。有关项目结构的信息,请参阅 项目结构。
PrivateGPT 遵循语义化版本控制 (SemVer),格式为 MAJOR.MINOR.PATCH
版本信息维护在两个主要位置
version.txt - 当前版本的唯一事实来源.github/release_please/.release-please-manifest.json - 用于发布自动化工具来源: version.txt .github/release_please/.release-please-manifest.json
PrivateGPT 的发布流程结合了自动化工具和手动监督,以确保质量和一致性。
来源: CHANGELOG.md .github/workflows/tests.yml
PrivateGPT 使用约定式提交消息来自动化版本控制和更改日志生成
feat: - 新功能(触发 MINOR 版本升级)fix: - 错误修复(触发 PATCH 版本升级)docs: - 文档更改chore: - 维护任务BREAKING CHANGE: - 重大变更(触发 MAJOR 版本升级)来自仓库的示例提交消息
fix: update matplotlib to 3.9.1-post1 to fix win installfeat: make llama3.1 as default来源: CHANGELOG.md3-60
为了保持代码质量,PrivateGPT 采用了多层验证
来源: .pre-commit-config.yaml .github/workflows/tests.yml
开发者使用 pre-commit 钩子在提交代码前捕获问题
| Hook 类型 | 工具 | 目的 | 触发器 |
|---|---|---|---|
| 格式化 | black | 确保代码风格一致 | commit |
| 代码 Linting | ruff | 捕获代码质量问题 | commit |
| 类型检查 | mypy | 验证类型注解 | commit |
| 测试 | pytest | 运行单元测试 | push |
来源: .pre-commit-config.yaml16-43
所有拉取请求都会通过 GitHub Actions 触发自动化检查
这些检查可确保代码在合并前符合项目标准。
来源: .github/workflows/tests.yml20-34
PrivateGPT 使用 Release Please 来自动化大部分发布过程。
Release Please 是一个自动化版本管理和更改日志生成的工具。它
来源: .github/release_please/.release-please-manifest.json
CHANGELOG.md 文件会根据每个版本自动维护结构化的条目
## <FileRef file-url="https://github.com/zylon-ai/private-gpt/blob/b7ee4378/0.6.2" undefined file-path="0.6.2">Hii</FileRef> (2024-08-08)
### Bug Fixes
* add numpy issue to troubleshooting (#2048) (4ca6d0c)
* auto-update version (#2052) (7fefe40)
* publish image name (#2043) (b1acf9d)
* update matplotlib to 3.9.1-post1 to fix win install (b16abbe)
每个条目包含:
来源: CHANGELOG.md3-22
PrivateGPT 的主要发布产物是 Docker 镜像。
当新版本发布时,Docker 镜像会自动构建并发布到 DockerHub,如更改日志中的条目所示
* add built image from DockerHub (#2042) (f09f6dd)
* **deploy:** generate docker release when new version is released (#2038) (1d4c14d)
该项目已经经历了多个版本的演进,每个版本都有主要的增强
| 版本 | 发布日期 | 主要亮点 |
|---|---|---|
| 0.6.2 | 2024-08-08 | 安装和依赖项的错误修复 |
| 0.6.1 | 2024-08-05 | Docker 镜像改进和 Azure OpenAI 支持 |
| 0.6.0 | 2024-08-02 | 添加了 Google Gemini 支持、Milvus 向量数据库和首个“配方” |
| 0.5.0 | 2024-04-02 | PostgreSQL 支持、更快的摄取、重排序 |
| 0.4.0 | 2024-03-06 | 升级到 LlamaIndex 0.10,添加了 pgvector 支持 |
| 0.3.0 | 2024-02-16 | 添加了 Mistral 和 ChatML 提示,Ollama LLM 支持 |
| 0.2.0 | 2023-12-10 | 系统提示定制 |
| 0.1.0 | 2023-11-30 | Qdrant 支持,改进的日志记录 |
| 0.0.2 | 2023-10-20 | 修复了 ChromaDB 批量大小 |
| 0.0.1 | 2023-10-20 | 初始版本 |
新版本发布基于
发布的频率随着时间的推移而增加,从早期版本之间的几个月到近期版本之间的几周,这表明了活跃的开发和不断成熟的发布流程。
来源: CHANGELOG.md