发布管理(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/mayan-edms/Mayan-EDMS/6.3-release-management
翻译时间:2026-05-27T08:44:30.544Z
翻译模型:deepseek-chat
原文字符数:13453
项目:Mayan EDMS (mayan-edms)
---
发布管理
相关源文件
以下文件用于生成此维基页面:
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 使用语义化版本,采用三段式版本方案:主版本.次版本.补丁版本。当前版本信息集中管理在主包元数据中。
版本组件
graph TB
subgraph "版本定义"
VERSION["__version__ = '4.3.1'"]
BUILD["__build__ = 0x040301"]
BUILD_STRING["__build_string__ = 'v4.3.1_Sun Aug 21...'"]
DJANGO_VERSION["__django_version__ = '3.2'"]
end
subgraph "版本使用"
SETUP[setup.py]
DOCKER[docker/rootfs/version]
HISTORY[HISTORY.rst]
DOCS[docs/releases/]
end
VERSION --> SETUP
VERSION --> DOCKER
BUILD_STRING --> HISTORY
VERSION --> DOCS
版本系统包含以下内容:
- 语义化版本:标准的三段式版本号
- 构建编号:用于程序化使用的十六进制表示
- 构建字符串:人类可读的构建时间戳和版本
- Django 版本:兼容的 Django 主版本.次版本
来源: mayan/__init__.py:1-13, setup.py:158, docker/rootfs/version:1
发布系列分类
graph LR
subgraph "发布类型"
MAJOR["主版本发布<br/>4.0, 5.0"]
MINOR["次版本发布<br/>4.1, 4.2, 4.3"]
PATCH["补丁版本发布<br/>4.3.1, 4.3.2"]
end
subgraph "状态分类"
STABLE["稳定版"]
MAINTENANCE["维护版"]
DEPRECATED["废弃版"]
end
MAJOR --> STABLE
MINOR --> STABLE
PATCH --> MAINTENANCE
来源: docs/releases/index.txt:18-70, docs/releases/4.3.1.txt:6, docs/releases/4.2.9.txt:6
发布制品与分发
发布管理系统为不同的部署场景生成多种制品类型。
制品生成管线
graph TD
subgraph "源码管理"
GIT[Git 仓库]
SETUP_PY[setup.py]
REQUIREMENTS[requirements/]
end
subgraph "构建制品"
PYTHON_PKG[Python 包<br/>mayan-edms]
DOCKER_IMG[Docker 镜像<br/>mayanedms/mayanedms]
DOCS_SITE[文档站点]
end
subgraph "分发渠道"
PYPI[PyPI 仓库]
DOCKERHUB[Docker Hub]
GITLAB[GitLab 仓库]
end
GIT --> PYTHON_PKG
SETUP_PY --> PYTHON_PKG
REQUIREMENTS --> PYTHON_PKG
PYTHON_PKG --> PYPI
DOCKER_IMG --> DOCKERHUB
DOCS_SITE --> GITLAB
包配置
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
依赖管理
graph TB
subgraph "依赖文件"
BASE[requirements/base.txt<br/>核心依赖]
COMMON[requirements/common.txt<br/>Django 版本]
DEV[requirements/development.txt<br/>开发工具]
BUILD[requirements/build.txt<br/>构建工具]
DOCS[requirements/documentation.txt<br/>Sphinx 与工具]
TEST[requirements/testing-base.txt<br/>测试框架]
end
subgraph "依赖分类"
CORE[核心应用<br/>Django, Celery 等]
PROC[文档处理<br/>Pillow, PyPDF2 等]
SEARCH[搜索引擎<br/>Whoosh, ElasticSearch]
AUTH[认证<br/>LDAP, OTP]
end
BASE --> CORE
BASE --> PROC
BASE --> SEARCH
BASE --> AUTH
来源: requirements/base.txt:1-48, requirements/common.txt:1-2, requirements/development.txt:1-11
发布文档系统
发布文档采用结构化方法,包含全面的发布说明和升级指南。
文档结构
graph TD
subgraph "发布文档"
INDEX[docs/releases/index.txt<br/>发布索引]
SERIES[发布系列<br/>4.0, 3.0, 2.0, 1.0]
VERSIONS[版本页面<br/>4.3.1.txt, 4.3.txt 等]
UPGRADE[升级步骤<br/>partials/upgrade-*]
end
subgraph "版本文档组件"
CHANGES[变更部分<br/>应用特定更新]
REMOVALS[移除部分<br/>废弃功能]
UPGRADE_PROC[升级流程<br/>分步说明]
TROUBLESHOOT[故障排除<br/>已知问题]
BACKWARD_COMPAT[向后兼容<br/>不兼容变更]
end
INDEX --> SERIES
SERIES --> VERSIONS
VERSIONS --> CHANGES
VERSIONS --> REMOVALS
VERSIONS --> UPGRADE_PROC
VERSIONS --> TROUBLESHOOT
VERSIONS --> BACKWARD_COMPAT
发布说明分类
每个版本都包含按应用领域系统组织的变更:
| 分类 | 目的 | 示例应用 |
|---|---|---|
| 核心变更 | 框架修改 | 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
升级管理
升级系统提供了结构化的步骤,用于在版本间进行切换,同时保持数据完整性和系统功能。
升级流程
graph TD
subgraph "升级前"
BACKUP[数据库备份]
STOP[停止服务<br/>supervisord/systemctl]
CHECK[版本兼容性检查]
end
subgraph "包更新"
REMOVE_DEPRECATED[移除废弃<br/>依赖项]
UPDATE_PKG[更新 mayan-edms<br/>包]
UPDATE_DEPS[更新依赖项]
end
subgraph "系统迁移"
CONFIG_UPDATE[更新配置<br/>supervisord.conf]
DB_MIGRATE[数据库迁移<br/>performupgrade]
STATIC_FILES[更新静态文件]
end
subgraph "升级后"
START[启动服务]
VERIFY[验证功能]
CLEANUP[清理旧文件]
end
BACKUP --> STOP
STOP --> CHECK
CHECK --> REMOVE_DEPRECATED
REMOVE_DEPRECATED --> UPDATE_PKG
UPDATE_PKG --> UPDATE_DEPS
UPDATE_DEPS --> CONFIG_UPDATE
CONFIG_UPDATE --> DB_MIGRATE
DB_MIGRATE --> STATIC_FILES
STATIC_FILES --> START
START --> VERIFY
VERIFY --> CLEANUP
特定版本的升级注意事项
不同版本间的切换需要特定的升级步骤:
| 切换类型 | 特殊要求 | 示例 |
|---|---|---|
| 主版本 | 数据库模式变更,设置迁移 | 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
依赖管理
依赖管理系统维护整个技术栈的兼容性,同时为不同的部署场景提供灵活性。
依赖声明系统
graph LR
subgraph "依赖来源"
SETUP_DEPS[setup.py<br/>install_requires]
REQ_FILES[requirements/*.txt<br/>版本锁定]
APP_DEPS[apps/*/dependencies.py<br/>应用特定]
end
subgraph "依赖类型"
PYTHON[Python 依赖<br/>PythonDependency]
BINARY[二进制依赖<br/>BinaryDependency]
ENV[环境依赖<br/>开发/生产]
end
SETUP_DEPS --> PYTHON
REQ_FILES --> PYTHON
APP_DEPS --> PYTHON
APP_DEPS --> BINARY
REQ_FILES --> ENV
应用级依赖
各个应用通过元数据声明其特定依赖:
graph TB
subgraph "通用应用依赖"
DJANGO[django==3.2.14]
YAML[PyYAML==6.0]
MODEL_UTILS[django-model-utils==4.2.0]
MPTT[django-mptt==0.13.4]
end
subgraph "转换器应用依赖"
PILLOW[Pillow==9.2.0]
PYPDF2[PyPDF2==1.28.4]
QRCODE[qrcode==7.3.1]
end
subgraph "任务管理器依赖"
CELERY[celery==5.2.3]
CELERY_BEAT[django-celery-beat==2.2.1]
end
subgraph "REST API 依赖"
DRF[djangorestframework==3.13.1]
CORS[django-cors-headers==3.10.0]
YASG[drf-yasg==1.20.0]
end
每个依赖项都包含版权信息、版本约束和环境说明,以确保许可证合规和部署管理。
来源: 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
发布历史与生命周期
该项目维护了详尽的发布历史,并对不同版本系列进行了清晰的生命周期管理。
发布时间线与支持
gantt
title 发布时间线与支持生命周期
dateFormat YYYY-MM-DD
axisFormat %Y-%m
section 4.x 系列
4.0 发布 :milestone, 2021-05-19, 0d
4.1 发布 :milestone, 2021-10-10, 0d
4.2 发布 :milestone, 2022-02-12, 0d
4.3 发布 :milestone, 2022-07-27, 0d
4.3.1 发布 :milestone, 2022-08-21, 0d
section 3.x 系列
3.5 发布 :milestone, 2020-09-30, 0d
3.5.11 结束 :milestone, 2021-08-15, 0d
当前发布状态
| 版本 | 状态 | 发布日期 | 支持状态 |
|---|---|---|---|
| 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