
OpenProject 4.x 版本发布全览工作包体验革新、多语言体系与 API v3 演进【免费下载链接】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 官方 4.x 系列发布说明为骨架系统梳理从 4.0.02014-11-06到 4.2.92015-10-29共 28 个版本的演进脉络重点剖析三大里程碑4.0 引入的 OmniAuth 认证体系与工作包表格交互重构、4.1 基于 Foundation 框架的分屏就地编辑体验、4.2 落地的插件多语言支持与 API v3 能力扩展。阅读本文你将掌握 OpenProject 4.x 版本功能地图、关键模块的源码实现位置OmniAuth 初始化、CrowdIn 翻译流水线、本地化文件结构以及各维护版本中值得关注的安全修复与性能修复要点。版本时间线与发布节奏总览4.x 系列于 2014 年 11 月以 4.0.0 起航至 2015 年 10 月以 4.2.9 收官横跨三个功能主线4.0 / 4.1 / 4.2每个主线均伴随持续数月的维护版本迭代版本发布日期版本发布日期OpenProject 4.0.02014-11-06OpenProject 4.1.42015-07-31OpenProject 4.0.12014-11-05OpenProject 4.2.02015-07-07OpenProject 4.0.22014-11-20OpenProject 4.2.12015-07-10OpenProject 4.0.32014-12-11OpenProject 4.2.22015-07-18OpenProject 4.0.42014-12-11OpenProject 4.2.32015-07-23OpenProject 4.0.52015-01-07OpenProject 4.2.42015-07-30OpenProject 4.0.62015-01-28OpenProject 4.2.52015-08-06OpenProject 4.0.72015-02-18OpenProject 4.2.62015-08-13OpenProject 4.0.82015-02-25OpenProject 4.2.72015-09-18OpenProject 4.0.92015-03-25OpenProject 4.2.82015-09-28OpenProject 4.0.102015-04-29OpenProject 4.2.92015-10-29OpenProject 4.0.112015-06-17OpenProject 4.0.122015-07-31索引文档docs/release-notes/4/README.md本身即是 4.x 全部版本的导航入口各版本详情见对应子目录 README。从发布节奏看4.0 与 4.1 主线在 2015 年 5-7 月存在交叉维护期4.1.4 与 4.0.12 同日发布均含安全修复这与项目多主线并行维护的发布策略相符。4.0.0认证方式革命与工作包表格交互重构4.0.0 是 4.x 系列的奠基版本其核心变化集中在认证体系与工作包页面交互两大方向。OmniAuth 集成多认证提供方接入4.0 起 OpenProject 可以通过 OmniAuth 提供方provider扩展认证能力例如借助 OpenProject Auth 插件即可轻松集成 Google 等 OmniAuth 策略提供方。官方发布说明明确了四个能力点通过 OmniAuth provider 完成 OpenProject 登录认证通过 OpenProject Auth 插件更便捷地接入 Google 等 OmniAuth provider降低自定义 OmniAuth 策略的实现门槛支持集成多个认证提供方并统一展示在登录界面。这一特性在当前仓库中有完整的源码落地config/initializers/omniauth.rb 中通过OmniAuth::Builder注册中间件开发与非生产环境默认启用:developerprovider字段为 first_name、last_name、email同时为防范 CVE-2015-9284显式将允许的请求方法限定为%i[post]并配置了OmniAuth.config.on_failure跳转到OmniAuthLoginController#failure。认证相关控制器app/controllers/omni_auth_login_controller.rb、app/controllers/omni_auth_start_controller.rb与 modules/auth_plugins 模块共同构成了完整的认证插件体系仓库中还保留了 modules/auth_saml、modules/openid_connect 等基于同一机制的企业认证模块。集成式工具栏替代旧过滤器与选项区4.0 用集成式工具栏integrated toolbar取代了工作包页面旧的过滤器和选项分区用户无需离开工作包表格即可完成大量此前只能在独立配置页执行的操作可展开的过滤器区expandable filter section过滤器即时生效instantly applied直接从工作包表格创建工作包提供两种视图工作包表格与分屏视图支持基于现有查询另存为Save as新查询。查询标题集成与持久化查询选择被集成进工作包标题中查询支持自动补全auto-completion选中的查询会被持久化保存。这一标题即查询选择器的设计在 app/models/query.rb、app/models/persisted_query.rb 等模型中得到延续查询的保存、排序、分组能力由 app/models/queries472 个查询相关文件提供支撑。列头即操作入口为最大化灵活性与便捷性4.0 允许在列头上直接执行最常用的操作按列排序sort按列属性分组group隐藏/移除列新增列。从后续版本4.0.4 修复按未显示列分组导致 500可以看出列头分组逻辑与表格渲染存在紧耦合这也是该交互长期迭代的起点。分屏模式表格与详情同屏呈现4.0 新增分屏模式split screen在工作包表格旁并排展示工作包详情无需离开概览页即可快速查看详情。详情面板按Overview概览、Activity动态、Relations关联、Watchers关注者、Attachments附件五个标签页组织可展开的工作包详情面板Overview 标签展示通用信息Activity 标签展示历史记录Relations 标签展示依赖关系Watchers 标签跟踪关注者Attachments 标签展示附件文档。设计改进与无障碍4.0 同时进行了大量视觉与无障碍accessibility改进工作包表格行距加大、表格背景统一为白色、全局标题改为全大写、表格新增 hover 高亮色、头像改为圆形工作包页面无障碍程度大幅提升上下文菜单新增分屏激活项键盘快捷键与访问键access key在工作包页面完全可用。随 4.0 发布的新插件OpenProject Auth 插件负责 OmniAuth 策略提供方集成对应仓库 modules/auth_pluginsOpenProject GitHub 集成插件对接 GitHub对应仓库 modules/github_integration当前已包含 246 个文件涵盖 webhook 处理、PR 关联等能力。4.0.x 维护系列安全、性能与生态修复4.0 主线共发布 12 个维护版本是 4.x 中迭代最多的分支其修复轨迹清晰呈现了发布初期打基础、中期修安全、后期补性能的节奏版本关键内容4.0.1修复旧版 Sprockets 导致的安装错误包含 Rails 安全更新安装器支持扩展至 RHEL、CentOS 与 Ubuntupackager 安装方式4.0.2Rails 升级至 3.2.21修复分屏激活状态下无法创建工作包、工时跟踪权限未生效、wiki 宏中时间线宽度不足、version 类型自定义字段在分屏中不显示等问题4.0.3修复 Chrome 部分版本完全不渲染文本的字体问题修复 user/version 类型自定义字段在表格中的显示、查询错误提示、无法移除分组、子目录安装subfolder下导出报错、wiki 多时间线宏等4.0.4修复按未显示列分组导致 500的回归问题4.0.5修复按版本排序报错、时间线点击项目名 404、弹窗关闭图标被裁切、表格日期显示异常CSV 导出恢复正确此前只导出默认列wiki 与仓库中的语法高亮恢复4.0.6修复 Windows 7 下字体字母/整词不显示的问题4.0.7重要安全修复此前未授权可看到部分工作包信息修复已删除查询未从侧边菜单移除、保存按钮显示条件等4.0.8性能修复大量成员关系导致项目响应缓慢在项目数多的大型实例中尤为明显4.0.9重要安全修复曾短暂影响 demo 环境但登录信息未受影响meeting 插件通知投递失败导致内部错误的修复4.0.10修复工作包表格无法按类别category过滤的问题4.0.11包含 Ruby on Rails 安全修复Rails 3.2.22/4.1.11/4.2.2 安全版本线4.0.12修复成员/自定义字段过多时创建工作包导致 500修复潜在 XSS 攻击漏洞其中 4.0.5 还附带了官方截图docs/release-notes/4/4-0-5/SyntaxHighlighting.png展示了 wiki 与仓库中恢复后的 JavaScript 语法高亮效果另外 4.0.3 对 backlogs 插件有一处用户可见的行为变更复制含子工作包的工作包时Copy tasks 更名为 Copy work packages。4.1分屏增强、就地编辑与 Foundation 框架4.1.02015-05-21将 4.0 打下的分屏基础进一步打磨为成熟的生产级交互。分屏布局更新按值显隐、属性分组默认只展示已赋值的工作包属性让用户一眼看到最相关信息未赋值属性可通过Show all按钮显示该按钮移至属性列表顶部属性按Details详情、People人员、Estimates Time估算与工时、Costs成本、Other其他分组形成逻辑结构。就地编辑不离开表格完成更新4.1 在分屏中支持就地编辑in-place editing用户无需离开工作包表格即可更新工作包且多个值可一次编辑工作包主题subject工作包描述description工作包属性含自定义字段。从仓库结构看这一交互的后端支撑分散在 app/controllers/inplace_edit_fields_controller.rb就地编辑字段控制器与 app/controllers/work_packages 的多个控制器中。表格与过滤器增强过滤器区折叠时仍显示已激活过滤器数量工作包表格中的 ID 列不再是固定列可以像其他列一样增删、调整顺序。全屏详情页与表单优化编辑工作包时类型type、父工作包parent、主题subject无需展开单独分区即可直接编辑工作包属性间距加大工作包层级、关联工作包与关注者的样式更突出。底层 CSS 框架迁移至 Foundation4.1 将底层 CSS 框架更换为Foundation以提升未来可扩展性并支持更响应式的设计这也导致应用整体视觉随 4.1 全面焕新。值得注意的是当前仓库的样式体系已进一步演进为以 Sass 为主如 app/assets/_index.sass 及各模块的 .sass 文件说明此后前端样式栈又经历了多次迭代。无障碍再升级分屏可达就地编辑可通过键盘完成工作包页面的模态窗口为视障与盲人用户提供辅助提示新增在表格与分屏间切换的访问键关注者图标对比度改善。4.1.x 维护系列跨插件修复4.1 主线共 5 个维护版本修复范围首次明显扩展到插件生态backlogs、costs、meetings4.1.1修复从 roadmap 编辑版本时的错误链接导致的内部错误加宽工作包页面列选择窗口。4.1.2修复工作包视图时区错误、子目录安装下无法编辑指派人与责任人、编辑文本字段时误显示语法快捷引用、无法删除全局工作包查询等问题backlogs 插件修复燃尽图显示costs 插件修复预算中无法删除计划成本项meetings 插件修复无法删除会议。4.1.3包含 Rails 安全修复修复匿名用户看不到详情面板日期、邮件通知中标题重复、详情面板添加评论后刷新出现多余警告等更新详情面板动态区样式。4.1.4与 4.0.12 同批的安全修复XSS 防护与成员/自定义字段过多时创建工作包 500修复。4.2插件多语言体系与 API v3 扩展4.2.02015-07-07将重心转向国际化与开放 API。核心与插件统一语言支持4.2.0 为 OpenProject 核心与插件引入语言支持对应社区工作包 #14922为完整翻译奠定基础当时 OpenProject 已有超过 30 种语言可通过 CrowdIn 添加或修改翻译。两个实操要点值得注意手动安装用户需要从 Gemfile.plugins 中移除 translations 插件因为翻译已由核心Gemfile提供语言请求与翻译协作通过 CrowdIn 项目进行。这一机制在仓库中得到完整保留根目录 crowdin.yml 定义了完整的翻译流水线——以 config/locales/en.yml核心、config/locales/js-en.yml前端 JS 文案、config/locales/en.seeders.yml种子数据以及modules/**/config/locales/en.yml各插件模块为源文件翻译产物输出到config/locales/crowdin/%two_letters_code%.yml。当前仓库 config/locales 下已有 223 个 yml 文件印证了该多语言体系自 4.2 建立后的持续扩展。导航调整查看所有工作包、新闻、工时记录等此前在所有项目页上较为隐蔽的入口统一收纳进Modules下拉菜单#20269管理后台Administration入口移入用户名下方的下拉菜单成本类型cost types从 Modules 下拉移至管理后台导航#20503Spent time 更名为 Time sheet#20219。API v3 功能扩展4.2 为当时仍属草案draft的 API v3 增加了三项关键能力工作包创建#19987工作包附件的 CRUD 操作#19988基础认证basic auth#19294。API v3 的完整规格与文档沉淀在 docs/api含 551 个 yml 规格文件其服务端实现分布于 lib/api534 个 rb 文件与 app/controllers/api该目录已并入 lib/api 体系。设计、可用性与隐私改进头部搜索与帮助图标缩小帮助链接改为新窗口打开#20627/#20540字体大小、对齐与 UI 元素使用标准化调整新注册/邀请用户的邮箱地址默认不再展示在个人资料页#20574属于隐私层面的改进创建子项目的入口从项目概览移至项目设置#19972。4.2.x 维护系列翻译完善与安全收尾4.2 主线共 9 个维护版本主题词是翻译 安全 稳定性4.2.1热修复 packager 安装下翻译不显示修复管理后台多语言误显示为英文、工作包上下文菜单中长翻译破坏布局等。4.2.2新增完整法语翻译修复多处错误英文翻译用户资料页不再显示最后登录时间隐私改进。4.2.3修复大量潜在关注者/自定义字段项目下创建工作包 500、登出用户仍可看到 Modules 菜单认证泄漏、工作包 journal 条目重复显示等新实例默认启用 REST API修复 Global Roles 与 PDF Export 插件的错误字符串。4.2.4修复项目依赖中的英文错误字符串新增完整巴西葡萄牙语翻译。4.2.5修复分屏操作后工具栏/分页被部分隐藏、未配置语言时首次登录随机显示语言、CentOS packager 安装 autostart 配置错误新增完整瑞典语翻译。4.2.6修复大量关注者项目中切换工作包类型报错、分屏偶发错误语言、通过 LDAP 认证创建用户失败等新增翻译。4.2.7安全修复——避免特定 redirect URL 跳转到外部主机开放重定向防护修复缓存设置被覆盖的问题。4.2.8修复 packager 安装过程中的问题新增翻译。4.2.9收官版本主要包含核心与插件的最新翻译。升级与安装指引4.x 时期发布说明反复强调建议所有用户升级结合 4.0.1 起扩展的 packager 安装支持4.x 时代的安装升级路径主要包括Packager 安装支持 RHEL、CentOS、Ubuntu4.0.1 起扩展提供打包好的安装器后续版本4.2.1、4.2.8也持续修复了该安装路径下的翻译显示与 autostart 问题手动安装需按 4.2.0 的说明从 Gemfile.plugins 移除 translations 插件改由核心提供翻译多主线维护4.0 与 4.1 主线在 2015 年年中同步维护4.1.4 与 4.0.12 同日发布同批安全修复用户可结合自身插件兼容性选择升级目标。当前仓库的现代安装方式Docker 编排见 docker-compose.yml、docker/prod、docker/dev打包脚本见 packaging已在此基础上大幅演进但 4.x 时期确立的核心 插件 多语言 开放 API架构骨架至今延续。总结4.x 系列的历史坐标从版本发布说明docs/release-notes/4/README.md 及 28 个子目录可以清晰还原 4.x 系列的历史定位4.0 用 OmniAuth 与集成工具栏奠定了现代认证与工作包交互基础4.1 通过 Foundation 迁移与就地编辑把分屏体验推向成熟4.2 以 CrowdIn 多语言流水线和 API v3 草案能力打开了国际化与开放集成的窗口。贯穿三条主线始终的是对安全Rails 安全版本跟进、XSS/开放重定向修复、性能4.0.8 成员关系性能修复与无障碍键盘、访问键、模态提示的持续投入——这些主题在仓库后续版本的发布说明docs/release-notes中依然清晰可见。【免费下载链接】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),仅供参考