《周凯 - Gitee 如何支撑开源项目的发展(GOTC深圳会场)(44页).pdf》由会员分享,可在线阅读,更多相关《周凯 - Gitee 如何支撑开源项目的发展(GOTC深圳会场)(44页).pdf(44页珍藏版)》请在三个皮匠报告上搜索。
1、综合技术分论坛专场Gitee 研发负责人 周凯 Zoker 2021年08月01日Gitee 如何支撑开源项目的发展个人简介周凯 Zoker2014 年加入开源中国负责 Gitee 产品、研发、运维、架构等工作负责招商证券、比亚迪、招商银行等客户售前售后负责 Gitee 公有云架构改进及轻量级产品负责华为相关合作项目鸿蒙、欧拉等为什么做开源?Gitee 的技术支撑开源该怎么做?Gitee 的运营支撑01020304目 录CONTENTS为什么做开源?大家为什么都在玩开源?1.结识志同道合的开发者和领域专家2.通过参与开源提升个人影响力3.为自己职业经历增加闪光点4.尝试通过开源获利5.没什么特
2、别的理由,就是玩儿,爱折腾.个人为什么要做开源?为什么做开源?1.得到更多技术和产品上的反馈2.用社会化协作的力量进行同行评审3.提升业界技术影响力4.发现更多的商业机会实现商业价值.企业为什么要做开源?为什么做开源?开源应该怎么做?如何做好一个开源项目?首先,要有一个好的 idea,怎样才算一个好的 idea?开源应该怎么做?1.同领域还没有相关的开源产品,并且有一定领域热度2.在某一领域具体问题的解决上一骑绝尘3.跟其他同类开源产品相比有明显优势4.深度洞悉业界发展,敏锐的投资未来.其次,做好项目维护及运营,并持续优化开源应该怎么做?Gitee 如何支撑开源项目的发展?技术支撑:协作工具及
3、流程的支撑Giteehttps:/技术运营运营支撑:运营功能及资源的支撑Gitee 如何支撑开源项目的发展?Gitee 平台开源协作的技术支撑Step1:建立共识项目的简历-README.md1.第一印象很重要,一定要体现闪光点2.为不同的受众提供快捷入口,一触即达3.考虑用户群体并提供多语言版本.Step1:建立共识解决纷争的利器-LICENSE常见开源协议的介绍:https:/opensource.org/licenses/categoryStep1:建立共识如何选择合适的 LICENSE他人修改源码后是否可以闭源?新增代码是否采用同样的许可证?每一个修改过的文件,是否都必须放置版权说明?
4、是否需要对源码的修改之处提供说明文档?衍生软件的广告是否可以使用你的名字促销?LG PL 许可证M ozi l l a 许可证G PL 许可证BSD 许可证M I T 许可证A pache 许可证N oN oN oN oN oYesYesYesYesYes图引用改编自阮一峰老师的博客:https:/ Gitee 许可证向导功能建立 LICENSEStep1:建立共识其它同样需要注意的点1.完善的文档(产品、技术)2.DCO/CLA 的制定3.CONTRIBUTING.md 贡献者指南4.CODE_OF_CONCEPT 社区行为准则5.CODEOWNERS6.CHANGELOG7.TODOLIS
5、T.Step2:协作管理反馈管理1.反馈的要及时响应2.通过多样化的渠道获取反馈3.集中管理反馈(进展、结论4.培养用户习惯.G G i i tetee e I I s ss su ue eQ Q Q Q SlSl a ac ck k聚合搜索统一管理知识库Step2:协作管理缺陷管理Gitee 提供轻量级的任务管理系统:状态管理、仓库关联、指派、搜索等MindSpore 采用 Gitee Issue 进行反馈的统一管理Step2:协作管理缺陷管理Issue 跟 Pull Request 强关联MindSpore 采用 Gitee Issue 进行反馈的统一管理Step2:协作管理缺陷管理Iss
6、ue 提交模板.gitee/ISSUE_TEMPLATE.zh-CN.md设置充足的预设信息,方便跟进根据不同语言设置不同模板Step2:协作管理成立 PMC 项目管理委员会1.负责社区管理工作,包括开源社区版本规划、架构看护、特性代码开发维护、版本及补丁规划等;2.发布和处理社区需求,为开源社区提供技术架构指导和技术决策;3.组织社区安全工作,及时进行安全漏洞扫描、响应、处理等工作;4.处理社区Bug、issue、邮件列表,闭环周期满足开源社区的SLA要求;5.负责PMC、Committer成员的选举和退出,制定PMC、Committer协作机制;参考资料:OpenHarmony PMC:h
7、ttps:/ PMC:https:/apache.org/foundation/governance/pmcs.html统筹管理项目社区的各项事宜,以 OpenHarmony 的 PMC 职责为例:Step3:代码提交代码规范建立代码规范的目的是为了统一共识,为了规范行为和减少沟通成本1.定义统一的规范2.IDE 的智能提示支持3.提交前预检查4.提供一定的自动修复能力Step3:代码提交提交规范制定提交的 PR 格式,协助开发者确认根据用户群体提供多语言版本Pull Request 提交模板.gitee/PULL_REQUEST_TEMPLATE.zh-CN.mdStep3:代码提交推送自动
8、创建 PR为保护分支设置评审模式,可以自动创建 PR保护分支-评审模式介绍:https:/ Commit Msg 作标题2.根据 Commits 自动填充内容3.自动判定 PR 的更新和新建4.减少开发人员的心智负担5.结合规范的流程更加方便Step3:代码提交CLA 的签署与贡献者签署 CLA/DCO 为的是避免出现版权问题DCO:Developer Certificate Of OriginCLA:Contributor License Agreement参考资料:https:/ Gitee 提供的 Sonar 静态分析工具(Project、Pull Request)Step3:代码提交自
9、动化质量门禁 Gitee 提供的 Sonar 静态分析工具(Project、Pull Request)Step3:代码提交自动化质量门禁 Gitee 提供的缺陷扫描工具 Gitee Scan(Project、Pull Request)1.缺陷扫描2.CVE 漏洞扫描3.依赖项报告Step3:代码提交自动化质量门禁 Gitee 提供的许可证合规扫描服务 七彩棱镜Step3:代码提交自定义质量门禁 Gitee Jenkins Plugins基于 Gitee+Jenkins 的开源项目自动化协作实战:https:/zoker.io/blog/open-source-project-devops1.支
10、持 Push 触发2.PR 的新建,合并等事件3.PR 构建结果可回评4.支持正则过滤分支5.支持关键字动作6.https:/ 如何支撑开源项目的发展?Gitee 平台的运营支撑Gitee 平台对运营的支撑如何知道做的好不好?Gitee 指数Gitee 平台对运营的支撑Gitee 指数包含的维度1.代码活跃度:与代码提交频次、新版本发布相关2.社区活跃度:与项目的 Issue、PR 互动量相关3.团队健康:与团队成员人数和稳定度相关4.流行趋势:与项目近期受关注度相关5.影响力:与项目的 Star、下载量等社交指标相关Gitee 平台对运营的支撑Gitee 指数计算方式已经公开影响力,0.3社
11、区反应,开发活跃度,0.15团队健康度,0.1发展趋势,0.25Gitee 指数维度影响力社区反应开发活跃度团队健康度发展趋势Gitee 平台对运营的支撑主要是涉及两个计算公式:维度分数计算公式、归一化计算公式Gitee 指数计算方式维度分数计算公式归一化计算公式?为维度下的各个分支特征值?是基于业务场景中的经验权重 x 为项目及算的某一维度数据 max min 为样本池中的最大值最小值算法大公开!开源项目的Gitee指数是如何计算的?:https:/ 平台对运营的支撑访问统计自定义百度统计如何知道具体访问量?Gitee 平台对运营的支撑访问统计自定义百度统计如何知道具体访问量?Gitee 平台对运营的支撑将 Gitee 的仓库自动镜像到 Github(Push)将 Github 的仓库镜像到 Gitee(Pull)如何兼顾 Gitee&Github?-Gitee 双向同步此功能目前仅支持申请开通Gitee 平台对运营的支撑Gitee 推荐项目及分类Gitee 平台对运营的支撑专属徽章展示优质展示位每年赠予作者专属大礼包Gitee GVP 计划参加 OSCHINA 活动可优惠购买 Gitee 企业版5折优惠GVP 项目附件总容量 20 G欢迎申请加入 GVP:https:/