菜单

发布管理

相关源文件

本文档概述了 PrivateGPT 的发布管理流程,涵盖版本策略、发布工作流程以及用于自动化发布的工具。有关项目结构的信息,请参阅 项目结构

版本策略

PrivateGPT 遵循语义化版本控制 (SemVer),格式为 MAJOR.MINOR.PATCH

  • 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 install
  • feat: make llama3.1 as default

来源: CHANGELOG.md3-60

代码质量门禁

为了保持代码质量,PrivateGPT 采用了多层验证

来源: .pre-commit-config.yaml .github/workflows/tests.yml

预提交钩子

开发者使用 pre-commit 钩子在提交代码前捕获问题

Hook 类型工具目的触发器
格式化black确保代码风格一致commit
代码 Lintingruff捕获代码质量问题commit
类型检查mypy验证类型注解commit
测试pytest运行单元测试push

来源: .pre-commit-config.yaml16-43

CI/CD 检查

所有拉取请求都会通过 GitHub Actions 触发自动化检查

这些检查可确保代码在合并前符合项目标准。

来源: .github/workflows/tests.yml20-34

发布自动化

PrivateGPT 使用 Release Please 来自动化大部分发布过程。

Release Please

Release Please 是一个自动化版本管理和更改日志生成的工具。它

  1. 监控主分支上的提交
  2. 当累积了足够多的变更时创建发布 PR
  3. 自动更新版本号
  4. 生成结构化的更改日志条目

来源: .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)

每个条目包含:

  • 版本号及 GitHub 比较链接
  • 发布日期
  • 分类的变更(新功能、错误修复)
  • PR 编号和提交哈希,用于可追溯性

来源: CHANGELOG.md3-22

发布产物

PrivateGPT 的主要发布产物是 Docker 镜像。

Docker 镜像

当新版本发布时,Docker 镜像会自动构建并发布到 DockerHub,如更改日志中的条目所示

* add built image from DockerHub (#2042) (f09f6dd)
* **deploy:** generate docker release when new version is released (#2038) (1d4c14d)

来源: CHANGELOG.md18-20

发布历史

该项目已经经历了多个版本的演进,每个版本都有主要的增强

版本发布日期主要亮点
0.6.22024-08-08安装和依赖项的错误修复
0.6.12024-08-05Docker 镜像改进和 Azure OpenAI 支持
0.6.02024-08-02添加了 Google Gemini 支持、Milvus 向量数据库和首个“配方”
0.5.02024-04-02PostgreSQL 支持、更快的摄取、重排序
0.4.02024-03-06升级到 LlamaIndex 0.10,添加了 pgvector 支持
0.3.02024-02-16添加了 Mistral 和 ChatML 提示,Ollama LLM 支持
0.2.02023-12-10系统提示定制
0.1.02023-11-30Qdrant 支持,改进的日志记录
0.0.22023-10-20修复了 ChromaDB 批量大小
0.0.12023-10-20初始版本

来源: CHANGELOG.md3-173

发布计划

新版本发布基于

  1. 累积的功能和错误修复
  2. 依赖项更新
  3. 社区反馈和请求

发布的频率随着时间的推移而增加,从早期版本之间的几个月到近期版本之间的几周,这表明了活跃的开发和不断成熟的发布流程。

来源: CHANGELOG.md