OpenProject 12.4.1 补丁版本深度解读:15 项缺陷修复的完整清单与对应源码定位
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
OpenProject 12.4.1 是 12.x 系列的一个纯缺陷修复(patch)版本,官方文档明确建议升级以获取本版本包含的若干 bug fixes。本篇以该版本的发布说明为主体,完整继承其 15 项修复清单,并按功能域对每一项修复进行分类解读,同时结合当前仓库中的真实源码路径(OpenID Connect 认证、BIM 模块、自定义字段等)定位修复所涉及的实现区域,帮助运维与开发者在升级前后快速核对影响面。
版本基本信息
以下信息直接来自发布说明 docs/release-notes/12/12-4-1/README.md:
| 项目 | 内容 |
|---|---|
| 版本号 | 12.4.1 |
| 发布日期 | 2022-12-14 |
| 版本定位 | 缺陷修复版本,不含新功能 |
| 官方建议 | 建议升级至最新版本 |
需要说明的是,12.4.1 是紧接在 12.4.0 之后的维护版本。12.4.0(发布于 2022-12-05,见 docs/release-notes/12/12-4-0/README.md)引入了日期提醒(date alerts)、社区版双因素认证、官方 Helm Charts 等重要特性,而 12.4.1 的若干修复正是围绕 12.4.0 新特性在落地后暴露的问题展开的(后文会具体展开)。仓库根目录的 CHANGELOG.md 也表明,项目的显著变更统一记录于发布说明文档中,因此docs/release-notes/12/12-4-1/是核对本版本内容的权威入口。
完整修复清单(原样继承自发布说明)
以下是 12.4.1 发布说明中列出的全部 15 项修复,未作删减。原文中的每一项都对应一个上游工单编号(#41676 等),保留编号便于读者在 OpenProject 社区的版本页中进一步查证:
- Fixed: Margin under road map caption when version is overdue [#41676]
- Fixed: Issues with project selection on mobile [#44440]
- Fixed: Typo in translation source string [#45071]
- Fixed: Can not sort project CF in Administration [#45099]
- Fixed: Centos7 fails with "undefined symbol: PQconninfo" due to outdated postgresql-libs shared library [#45101]
- Fixed: Labels are not fully visible for date alerts in DE, FR, ES [#45163]
- Fixed: Work package wrongfully displayed as child candidate [#45171]
- Fixed: Member shown twice when filtering by group when in multiple groups [#45331]
- Fixed: Custom Fields in WP View (Full and Side) are scrubbed [#45343]
- Fixed: In Activity page, "subprojects" is checked when navigating between pages [#45348]
- Fixed: Can not delete files from WiKi pages [#45385]
- Fixed: Missing Translation for duration activity changes [#45391]
- Fixed: Bad Spacing between versions in Roadmap page [#45392]
- Fixed: Login and email missing during AzureAD OpenID Connect registration [#45415]
- Fixed: xeokit-metadata fails to find dotnet-runtime in Ubuntu 22.04 [#45442]
其中 15 项修复可归入六个功能域:管理端自定义字段、路线图与日期提醒、认证集成、BIM 模块、成员/活动/Wiki 交互,以及部署环境兼容性。下面逐类展开。
管理端与工作包视图:自定义字段相关修复
本版本包含两项与自定义字段(Custom Fields,下称 CF)直接相关的修复:
- #45099 管理端无法排序项目自定义字段:在 Administration 中对 project CF 进行排序的操作失效。从源码结构看,自定义字段的管理界面位于 app/components/custom_fields/ 目录下,该组件负责字段定义与排序交互,修复使管理端的排序能力恢复正常。
- #45343 工作包视图中自定义字段被 scrub:Work Package 的 Full 视图和 Side 视图中自定义字段值被“scrubbed”(即显示被剥离或截断),导致用户看不到完整的自定义字段内容。工作包前端视图组件位于 app/components/work_packages/,修复恢复了这两个视图中自定义字段的完整呈现。
对于多租户场景的部署方而言,这两项修复直接影响自定义字段的配置管理与数据可见性,升级后建议在管理端重新执行一次字段排序操作以验证效果。
路线图与日期提醒:紧随 12.4.0 新特性的缺陷收敛
12.4.0 引入了“即将到期的开始/完成日期提醒”与“逾期任务提醒”特性(12.4.0 发布说明中明确其属于 Enterprise add-on,见 docs/release-notes/12/12-4-0/README.md 的 Date alerts 章节)。12.4.1 中有四项修复与该特性的周边体验相关:
- #45163 日期提醒标签在 DE/FR/ES 语言下显示不全:德语、法语、西班牙语下 date alerts 的标签(label)无法完整显示,属于通知中心中日期提醒卡片的本地化排版问题。这提醒多语言部署方:OpenProject 的翻译文件(位于 config/locales/)中,通知类文案的长度差异可能导致界面截断,升级后宜在德/法/西语环境下抽查通知中心。
- #41676 版本逾期时路线图标题下方边距异常:当某版本(version)已逾期时,Roadmap 页面上方的 caption 与下方内容之间的间距不正确。
- #45392 Roadmap 页面各版本之间间距异常:Roadmap 中多个版本区块的垂直间距(bad spacing)得到修正。
- #45391 duration 活动变更缺失翻译:活动(Activity)中工时/时长变更的翻译文案缺失,属于 i18n 文案补全。
路线图与版本相关的前端实现可参见 frontend/src 中的版本/路线图相关组件目录,上述修复均为纯表现层(spacing、margin、翻译字符串)问题的修正,不涉及数据模型变更。
认证集成:AzureAD OpenID Connect 注册修复
#45415修复了通过 AzureAD(Azure Active Directory)OpenID Connect 方式注册新用户时,login(登录名)和 email(邮箱)字段缺失的问题。
结合当前仓库源码可以印证该功能所在区域:OpenID Connect 模块位于 modules/openid_connect/,其 Provider 模型 modules/openid_connect/app/models/openid_connect/provider.rb 中明确标注了 Azure 专属选项(第 81–82 行的# azure specific option与use_graph_api属性),并提供了entra_id?判断方法(第 126–128 行,识别oidc_provider == "microsoft_entra");配置映射服务 modules/openid_connect/app/services/openid_connect/configuration_mapper.rb 中亦存在针对 Azure 的专用分支(第 99 行when /azure/)。这说明 OpenProject 对 AzureAD 场景有专门的配置与声明(claims)映射路径,本修复正是补齐了该路径下注册流程中 login/email 两个声明到用户字段的映射完整性。
对使用 AzureAD 单点登录的部署方,升级后应重点回归验证:新注册用户是否自动带出登录名与邮箱,以及既有映射配置(claim mapping)是否仍按预期工作。
BIM 模块:xeokit-metadata 依赖 dotnet-runtime 的修复
#45442修复了 BIM 模块在 Ubuntu 22.04 上运行时xeokit-metadata找不到dotnet-runtime的问题。仓库源码证实了这一依赖链:
- modules/bim/app/services/bim/ifc_models/view_converter_service.rb 第 35 行定义了 IFC 模型转换的流水线命令
PIPELINE_COMMANDS ||= %w[IfcConvert COLLADA2GLTF gltf2xkt xeokit-metadata],并在第 185 行通过Open3.capture2e("xeokit-metadata", ...)实际调用该二进制; - modules/bim/bin/setup_dev.sh 第 17 行以
apt-get install -y dotnet-runtime-6.0安装 .NET 运行时,随后下载并解压xeokit-metadata-linux-x64工具包。
xeokit-metadata依赖 .NET 运行时(dotnet-runtime),而 Ubuntu 22.04 的默认仓库中 .NET 运行时包名与路径较旧版发行版有变化,直接安装可能找不到dotnet-runtime。本修复使 BIM 模块在 Ubuntu 22.04 环境下能够正确解析到 .NET 运行时。仅启用了 BIM 模块(IFC 模型查看)的部署方需要关注此项;若服务器使用 Ubuntu 22.04,升级前可先用dotnet --info确认运行时可被正确识别。
成员、活动页与 Wiki 交互类修复
以下四项为日常高频交互路径上的缺陷修复:
- #44440 移动端项目选择问题:移动端(mobile)上的项目选择存在交互缺陷,升级后建议在手机/平板端重新走一遍项目切换流程。
- #45171 工作包被错误显示为子级候选项:设置父/子关系时,某工作包被错误地列为了可以设为子级(child)的候选对象,属于关系(relations)候选集合计算错误。关系模型实现位于 app/models/relation.rb 与 app/components/work_package_relations_tab/,本修复属于候选项过滤逻辑的修正。
- #45331 按组过滤时成员重复显示:当一名成员同时属于多个组时,按组(group)过滤成员列表会将其重复展示。组成员模型位于 app/models/members/ 与 app/models/group_user.rb,修复消除了跨组去重缺失的问题。
- #45348 活动页翻页后 “subprojects” 复选框状态异常:在 Activity 页面切换页码后,“subprojects” 过滤项会被错误地保持勾选状态,属于前端分页时过滤状态未重置的问题。
- #45385 Wiki 页面无法删除文件:从 Wiki 页面删除附件/文件的操作失效,影响 Wiki 内容维护。Wiki 控制器与组件可参考 app/controllers/wiki_controller.rb 及 app/components/wiki_pages/。
部署环境兼容性:CentOS 7 的 PostgreSQL 客户端库问题
#45101修复了 CentOS 7 上因过时的postgresql-libs共享库导致的undefined symbol: PQconninfo错误。该错误表明应用启动时加载的 PostgreSQL 客户端库(libpq)符号与编译期版本不匹配——CentOS 7 基础源中的postgresql-libs版本较老,缺少PQconninfo这一较新版本才引入的符号。
从部署角度可以推断,修复方向是确保镜像/安装脚本引入的 libpq 版本与 pg 驱动要求一致,避免因系统自带旧库遮蔽正确版本。在 CentOS 7 上部署或升级 OpenProject 的运维人员,若曾遇到该undefined symbol: PQconninfo启动失败,升级至 12.4.1 后应重新验证服务能否正常启动;同时建议用ldd检查运行时实际链接的 libpq 路径,确认其来自预期的软件源。
其他修复
- #45071 翻译源字符串中的拼写错误:修正了一条 translation source string 中的 typo,属于 i18n 源文案质量修复,间接影响所有基于源字符串进行本地化的语言。
社区致谢(Contributions)
发布说明原文的 Contributions 章节感谢了社区成员报告 bug 并协助定位与修复,特别鸣谢(原文致谢名单):
- Rince wind
- Christina Vechkanova
- Magdalena Rybak
升级建议与核对清单
官方发布说明的结论是:本版本包含若干 bug fixes,建议更新到最新版本。由于 12.4.1 不引入任何新功能,升级风险较低,可按以下清单核对升级收益:
- 使用 AzureAD OpenID Connect 的实例:回归验证新用户注册的 login/email 字段(#45415);
- 启用 BIM 模块且运行于 Ubuntu 22.04 的实例:验证 IFC 模型转换流水线(#45442);
- CentOS 7 部署:确认
PQconninfo启动错误已消除(#45101); - 多语言(DE/FR/ES)通知中心:抽查日期提醒标签完整性(#45163、#45391);
- 使用自定义字段较多的实例:验证管理端排序与 WP 视图字段展示(#45099、#45343);
- 使用组权限/多组成员的实例:验证按组过滤成员无重复(#45331)。
本篇全部事实均以 docs/release-notes/12/12-4-1/README.md 发布说明为基准,源码引用均来自当前仓库实际存在的文件与行号,可作为升级前评审与升级后回归测试的直接依据。
【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考