发布管理
发布管理
相关源文件
本章引用的主要源码文件:
HISTORY.rstdocker/rootfs/versiondocs/parts/troubleshooting/versions.txtdocs/releases/3.4.1.txtdocs/releases/3.4.2.txtdocs/releases/3.4.3.txtdocs/releases/3.4.4.txtdocs/releases/3.4.5.txtdocs/releases/3.4.6.txtdocs/releases/3.4.txtdocs/releases/3.5.10.txtdocs/releases/3.5.7.txtdocs/releases/3.5.8.txtdocs/releases/3.5.9.txtdocs/releases/3.5.txtdocs/releases/4.0.txtdocs/releases/4.1.txtdocs/releases/4.2.10.txtdocs/releases/4.2.2.txtdocs/releases/4.2.3.txtdocs/releases/4.2.9.txtdocs/releases/4.2.txtdocs/releases/4.3.1.txtdocs/releases/4.3.txtdocs/releases/index.txtmayan/__init__.pymayan/apps/common/dependencies.pymayan/apps/converter/dependencies.pymayan/apps/django_gpg/backends/python_gnupg.pymayan/apps/django_gpg/dependencies.pymayan/apps/document_states/dependencies.pymayan/apps/rest_api/dependencies.pymayan/apps/task_manager/dependencies.pyrequirements/base.txtrequirements/build.txtrequirements/common.txtrequirements/development.txtrequirements/documentation.txtrequirements/testing-base.txtsetup.py
本文档介绍了 Mayan EDMS 的发布管理系统,包括版本方案、发布流程、升级步骤以及发布制品的生成。该系统管理从开发到生产部署的完整生命周期,覆盖多个分发渠道。
有关构建和部署管线基础设施的信息,请参见构建与部署管线。
版本系统
Mayan EDMS 使用语义化版本,采用三段式版本方案:主版本.次版本.补丁版本。当前版本信息集中管理在主包元数据中。
版本组件
版本系统包含以下内容:
- 语义化版本:标准的三段式版本号
- 构建编号:用于程序化使用的十六进制表示
- 构建字符串:人类可读的构建时间戳和版本
- Django 版本:兼容的 Django 主版本.次版本
来源: mayan/__init__.py:1-13, setup.py:158, docker/rootfs/version:1
发布系列分类
来源: docs/releases/index.txt:18-70, docs/releases/4.3.1.txt:6, docs/releases/4.2.9.txt:6
发布制品与分发
发布管理系统为不同的部署场景生成多种制品类型。
制品生成管线
包配置
Python 包配置定义了完整的分发结构:
| 组件 | 配置 | 位置 |
|---|---|---|
| 包名 | mayan-edms | setup.py:13 |
| 入口点 | mayan/bin/mayan-edms.py | setup.py:156 |
| 依赖项 | install_requires 列表 | setup.py:62-111 |
| 分类器 | PyPI 元数据 | setup.py:122-139 |
来源: setup.py:119-160, requirements/base.txt:1-48
依赖管理
来源: requirements/base.txt:1-48, requirements/common.txt:1-2, requirements/development.txt:1-11
发布文档系统
发布文档采用结构化方法,包含全面的发布说明和升级指南。
文档结构
发布说明分类
每个版本都包含按应用领域系统组织的变更:
| 分类 | 目的 | 示例应用 |
|---|---|---|
| 核心变更 | 框架修改 | Common, Dependencies |
| 功能更新 | 新功能 | Documents, Workflows |
| UI 改进 | 界面增强 | Appearance, Navigation |
| 性能优化 | 优化更新 | Search, File Caching |
| 安全更新 | 认证/授权 | ACLs, Permissions |
来源: docs/releases/4.3.txt:8-601, docs/releases/4.2.txt:8-423, docs/releases/index.txt:1-294
升级管理
升级系统提供了结构化的步骤,用于在版本间进行切换,同时保持数据完整性和系统功能。
升级流程
特定版本的升级注意事项
不同版本间的切换需要特定的升级步骤:
| 切换类型 | 特殊要求 | 示例 |
|---|---|---|
| 主版本 | 数据库模式变更,设置迁移 | 3.x → 4.0 |
| 次版本 | 功能新增,依赖更新 | 4.2 → 4.3 |
| 补丁版本 | 错误修复,安全更新 | 4.3.0 → 4.3.1 |
来源: docs/releases/partials/upgrade-3.5-4.0.txt, docs/releases/4.2.txt:381-398, docs/parts/troubleshooting/versions.txt:1-24
依赖管理
依赖管理系统维护整个技术栈的兼容性,同时为不同的部署场景提供灵活性。
依赖声明系统
应用级依赖
各个应用通过元数据声明其特定依赖:
每个依赖项都包含版权信息、版本约束和环境说明,以确保许可证合规和部署管理。
来源: mayan/apps/common/dependencies.py:9-245, mayan/apps/converter/dependencies.py:8-33, mayan/apps/task_manager/dependencies.py:3-111, mayan/apps/rest_api/dependencies.py:3-71
发布历史与生命周期
该项目维护了详尽的发布历史,并对不同版本系列进行了清晰的生命周期管理。
发布时间线与支持
当前发布状态
| 版本 | 状态 | 发布日期 | 支持状态 |
|---|---|---|---|
| 4.3.1 | 稳定版 | 2022年8月21日 | 活跃 |
| 4.2.10 | 维护版 | 2022年8月20日 | 安全修复 |
| 3.5.x | 废弃版 | - | 生命周期终止 |
发布管理系统确保主版本系列内的向后兼容性,同时为主版本之间的不兼容变更提供清晰的升级路径。
来源: HISTORY.rst:1-2032, docs/releases/4.3.1.txt:4, docs/releases/4.2.10.txt:4, docs/releases/index.txt:14-294