首页 文章 精选 留言 我的

精选列表

搜索[重复报告],共10000篇文章
优秀的个人博客,低调大师

openEuler 社区 2021 年 3 月运作报告

三十辐共一毂,当其无,有车之用。埏埴以为器,当其无,有器之用。凿户牖以为室,当其无,有室之用。故有之以为利,无之以为用。 -- 《老子》第十一章 在众多同学的共同努力下,openEuler 21.03 创新版本按时发布。正如 openEuler 的定位,我们通过创新推动操作系统演进,又通过版本让技术对用户真正可获得。 在创新方面,华为作为 openEuler 社区的重要贡献者,也是 Linux 5.10 最大的贡献者。openEuler 21.03 第一次集成了 Linux 5.10 内核,也顺理成章。这次升级带来超过 20 多项可见的性能与功能提升。而在主线内核之外,21.03 还进一步集成了内核热升级,分级内存管理,增强的轻量虚拟运行时等技术。 在版本方面,感谢来自华为、麒麟软件和联通的众多开发者的努力,openEuler 21.03 集成了 openStack Victoria(此处尤其感谢 @huangtianhua[1] ),Kubernetes 1.20,以及基于 pacemaker 和 DRBD 的高可用软件栈解决方案。 社区将在后续的一段时间里组织 meetup 活动,给大家详细介绍这些技术在业务环境中的使用方法和能带来的收益。敬请关注。 新成立 SIG 介绍 2 月 27 日成立的 sig-bio,目标是为 openEuler 拓展生物信息软件领域的生态。这可能是 openEuler 当前学术氛围最浓重的一个 SIG 了。maintainer 中有来自西安交大、哈工大以及中科院动物研究所的老师,也得到了麒麟和统信同学的积极响应。过去一个月中,sig-bio 的规模稳步增长,当前已经有 9 个生信领域的代码仓提交。这也是 openEuler 社区进入具体学科领域的第一次尝试,希望通过这样的工作,为建立一个高性能、可移植、可控可管理的生信软件栈做出些贡献。 3 月 29 日成立的 sig-rust,也可谓群英荟萃。张汉东、喻杰、王龙步、王璞等等都是国内 rust 圈子里有影响力的同学。随着 linux-next 开始接纳 rust 作为驱动构建途径,rust 在国内的影响力也有了进一步提升。openEuler 也在关注探讨如何在系统底层更好的使用 rust 这样的语言。sig-rust 的成立,在连接 openEuler 和 rust 两个社区的同时,也会为 rust 更好的在系统软件领域发挥作用探索道路。 此外,虽然 DB 并非新成立的 SIG,但是也在这段时间里有了非常大的变化。过去 openEuler 在数据库领域的策略并不清晰,DB sig 定位只是为了保证相关开源软件的基本可用。在 @赵波[2] 等同学的努力下,DB sig 的 maintainer 和目标都做了巨大的调整。一方面将会引入更多的 OLTP 数据库到 openEuler,包括兄弟社区的 openGauss;另一方面也会围绕数据库引入生态工具,构建完整、丰富的数据库生产线软件生态。在此再次感谢 @郑振宇[3],@赵波[4] 和 @陈祺德[5] 老师的贡献。 从开发进展看 openEuler 社区当前进展 openEuler 社区整体的 PR,今天早上统计的时候已经是 31666 。去年 10 月底的时候还在 20000 左右,去年 12 月底开峰会的时候是 24700 左右。这意味着在 3 个月近 7000 个 PR。openEuler 依然保持着高速发展的势头,甚至可能比之前还更快了一点点。 不过我们还是看到其中的问题。以 src-openeuler 的情况看,大约有 20% 的未处理 PR 是最近两个月内创建的。考虑到 src-openeuler 项目已经运作了 15 个月,最近这段时间的 PR 积压的增速有些明显。我尝试对这些积压的 PR 做了一些简单的分类。 社区运营团队整理的 PR 清单中,已经 open 超过 30 天的 PR 有 168 个,其中 84 个是提交到 master 分支,27 个是提交到版本分支。值得注意的是还是有不少在 src-openeuler 自建分支的 PR。 从 PR 提交者的背景看,有超过一半来自独立贡献者。这从一定程度上反应,社区对独立贡献者的响应不及时,不是很友好。 从这些 PR 对应的 SIG 看,我们按降序排列了这类 PR 比较多的 SIG 组。 SIG 组名 30 天未处理 (合入/关闭) PR 数量 UKUI 16 BaseService 14 Desktop 13 sig-ai-big-data 12 Mate-desktop 10 Application 9 Java 8 OpenResty 6 ROS 6 我对这些 PR 的内容作了些分析,可以看到存在以下几种问题。 Maintainer 没有及时响应是广泛存在的问题 上述排名靠前的 SIG 几乎都存在这个问题。聊举几例: https://gitee.com/src-openeuler/hdf/pulls/1 https://gitee.com/src-openeuler/g2clib/pulls/1 https://gitee.com/src-openeuler/nfs-fontmanager/pulls/1 这些例子中,提交者有些还通过 @ 的方式提醒了 SIG 的 maintainer,而对应的 maintainer 则可能因为各种原因没有注意到。openEuler 需要考虑在当前 gitee 机制之外,增加合适的通知提醒功能。 openEuler 的构建显然是有门槛的,而且这个门槛对一般开发者不友好 我注意到有几个面向特定场景的 SIG,基本上每个管理的代码仓都提交了相应的源码和 SPEC 文件,但是一个都没有通过 CI。 https://gitee.com/src-openeuler/openresty-zlib/pulls/1 [149s]+make-j12'CFLAGS=-O3-D_LARGEFILE64_SOURCE=1-DHAVE_HIDDEN-g3''SFLAGS=-O3-fPIC-D_LARGEFILE64_SOURCE=1-DHAVE_HIDDEN-g3'[149s]/var/tmp/rpm-tmp.YqisDM:line34:/dev/stderr:Permissiondenied 对应于的 spec 内容 make%{?_smp_mflags}CFLAGS='-O3-D_LARGEFILE64_SOURCE=1-DHAVE_HIDDEN-g3'\SFLAGS='-O3-fPIC-D_LARGEFILE64_SOURCE=1-DHAVE_HIDDEN-g3'\>/dev/stderr 又比如:https://gitee.com/src-openeuler/openresty-pcre/pulls/1/ c82caabctestonunlimitedvirtualmemory244075b8catsystemconfig7be29532catconfig.loga9a61008bash-x24220a21openresty-pcrepackageinit 从这个提交记录看,是一直找不到构建失败的原因,试图在 CI 里添加调试信息。然后最终还是没有成功: [149s]+ulimit-vunlimited[149s]/var/tmp/rpm-tmp.b7Psxi:line50:ulimit:virtualmemory:cannotmodifylimit:Operationnotpermitted 这是因为 openEuler 的构建环境是以普通用户 (abuild) 来运行的,普通用户的权限比 root 确实要受限的多。而一般开发者可能更习惯直接用 root 平 A 所有问题。另外,在 openEuler 的构建环境中,chroot 以后并不存在可以直接访问的 /dev/stderr 设备文件(或者符号链接),这也是 openEuler 自身在构建上需要改进的点。 峰光的 compass-ci 项目花了很多心思在调测能力上,会尽快接入到 src-openeuler 的 CI 测试中。也希望各位 PR 的提交者,或者 maintainer ,遇到 CI 问题的时候,不要犹豫,在邮件和微信上联系我们。 CLA 检查失败依然是常见的问题 比如 https://gitee.com/src-openeuler/libxml2/pulls/34 中,小明后来反馈搞不清楚怎么处理,后来社区主线也收入了这个补丁,就不再关注在 openEuler 上跟进。根据后续的访谈,小明反馈了三个问题: 感觉 openeuler 比 linux glibc 等其他社区提交更麻烦 如果提交代码需要 先签署 CLA , 是否在注册 或 MR 创建时 勾选 更加方便一些。类似 注册软件时 勾选隐私协议 然后按提示跳到 签署 个人 CLA 时, 网页报错。 另一类则是社区规则变更引起的,比如 https://gitee.com/openeuler/aarch32-rootfs-builder/pulls/33 停留了将近一个月,原因是 PR 提交者的 CLA 检查失败。这里有个背景需要说明。 大约在一个月前,参考其他社区的实现,经过酝酿,openEuler 社区 CLA 检查做了如下调整: 从检查 PR 提交者改为检查该 PR 所包含的 commit 的作者,因为 CLA 作为代码贡献者协议,使用 commit 作者更准确; 如果 PR 包含多位 commit 作者,需要都检查通过; 因为 commit 作者是本地 git 配置的,可能和 gitee 上使用的注册邮箱不一致,如果 git 本地配置的邮箱未签署 CLA,则会导致 CLA 检查不过; 建议保持本地 git 配置的邮箱和 gitee 上的邮箱一致,如确实需要不一致,烦请使用 git 本地配置邮箱再签署下 CLA; 这个变更知会的范围和渠道都存在需要改进的地方。 基础设施团队需要考虑做出针对性的改进。 小结 过去这两个月,openEuler 作为社区的发展之快,有的地方甚至超出预期。比如 kernel SIG 的线上会议,已经触及 zoom 当前允许的在线人数上限,逼得大家另外找开会的方法。 看到这些进展,开心之余,技术委员会还是会持续关注社区运作中存在的问题。毕竟我们做的,不是换换 logo 这样简单的事情。“为之于未有,治之于未乱” ,可以让我们对未来的发展更有信心。 参考资料 [1]@huangtianhua: https://gitee.com/huangtianhua [2]@赵波: https://gitee.com/bzhaoop [3]@郑振宇: https://gitee.com/ZhengZhenyu [4]@赵波: https://gitee.com/bzhaoop [5]@陈祺德: https://gitee.com/dillon_chen 本文分享自微信公众号 - openEuler(openEulercommunity)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册