java|gitlab入门_作为GitLab贡献者入门

gitlab入门
GitLab的开放文化是其最强大的资产之一,也是我在DevOps转换中使用GitLab的主要原因。 社区版的代码是开源的,付费版使其源代码可用于贡献。 这些宝贵的因素植根于其首席执行官多年来勤奋维护的公司文化中。 它的工具也很棒也没有什么坏处。
我相信GitLab的销售和营销团队是所有公司中最好的。 在过去的几年中,他们将我包括为用户,客户和朋友,他们是真诚而有爱心的人。 去年在我想贡献一项功能时就强调了这一点,GitLab的团队竭尽全力帮助我成功。 这是我为GitLab做出第一贡献的故事。
它是如何开始的 在审查我们的申请代码时,美国全国保险专员协会(NAIC)发现许多申请要么不包括我们的许可证,要么该许可证不再有效。 我们需要使公司中的每个人都易于访问我们的专有代码许可证并提供审核功能,以确保他们都保持最新状态。
因此,我一直在研究GitLab问题,以寻找相关的东西。 我发现了一个相关的问题 ,这个问题已经存在了两年,而且看起来不会很快解决。 我向我们的GitLab客户经理Joe Drumtra提到,我想贡献这一功能,他感到非常兴奋。
Joe立即安排了我的时间与该团队的产品负责人James Ramsay和首席工程师Douwe Maan进行交谈。 他还将我添加到他们的Slack频道中,以实现更好的协作。 在我提到我们愿意做出贡献后的一周,我们举行了第一次会议。
我们的第一次会议【java|gitlab入门_作为GitLab贡献者入门】 来自NAIC的Aaron Blythe和GitLab的James和Douwe进行了首次通话。 他们在Zoom上记录了我们的第一次对话, 之后公开分享了 。 他们还在Slack频道中发布了一份后续活动,详细介绍了我们所讨论的内容。
java|gitlab入门_作为GitLab贡献者入门
文章图片
在第一个电话会议中,James向我们介绍了许可证在我们将要修改的版本中的工作方式,然后我们讨论了将要实现的功能的愿景。 这是为了确保我们都在同一页面上,并且每个人都了解正在发生的事情。 这对Aaron和我来说确实很有帮助,因此我们可以回顾一下对新功能进行编码的过程。
他们还聘请了设计师Sarah Vesselov,以确保UX正确。 他们正在迁移到我们正在工作的新外观,因此我们的时间安排将成为一个问题。 Sarah还为结果制作了一些很棒的模型,并将它们发布在GitLab发行版上。
在通话期间,Douwe在Ruby on Rails代码中导航了Aaron和我,并进行了一些初始更改。 他是一位经验丰富的指南,使我们对代码更加熟悉,向我们展示了可能需要更改的部分,并帮助我们避免了一些陷阱。 由于他的详尽解释,我们在一个小时内就能完成很多工作。
看完代码后,我感到有些紧张。 就在几年前,我每天都在全天编写Ruby,而这些都不是简单的脚本。 我为具有竞争条件和功能的复杂系统做出了贡献,例如创建任务的有向无环图并执行它们。 但是,这些都不在Ruby on Rails中,而Ruby on Rails看上去几乎不像我记得的Ruby。
真正进行编程 我和亚伦决定在我们的DevOps KC YouTube频道直播我们的努力。 我们进行了两个直播,每个直播两个小时,我们两个人结对编程。 在第一个直播之前,我们做了一些准备工作,大部分只是环顾四周并试图理解代码。
我们首先对该问题进行了简要介绍,开始了第一个直播流。 我花了点力气才想出如何使用Google Hangouts。 (实际上,整个实时流可能证明我需要从我所知道的语言中删除Ruby,而且我甚至可能不太了解技术。)大多数情况下,我们偶然发现要测试不同的解决方案,并希望其中的一种可行。 大多数人都称其为“编程”。
在这次会议中,Aaron教给我很多关于Ruby on Rails的知识,让我想起了一些我忘记了Ruby语言习语的东西。 我相信亚伦也从我那里学到了一些东西。 在第一个直播流中,我们创建了几项功能,并知道需要在哪里找到解决方案。
在第二个直播中,我们学到了更多。 例如,我们发现管理环境和依赖项很困难,但是有些工具可以提供帮助。 另外,当您具有在项目中包含单独项目的目录结构时,可能很难管理项目。 上下文很重要! 我们还发现下拉菜单确实很难使用。
画龙点睛 直播结束后并没有完成该功能,但是我们很接近。 我决定自己完成它,因为亚伦需要专注于其他工作。 我也很难找到时间来完成它,因此当来自GitLab的某人伸出援手并询问我是否需要帮助时,我感到非常感谢。 我已尽力并提交了合并请求 。 (如果您想很快学到很多东西,那么值得阅读有关合并请求的讨论。)
GitLab的Douwe和Nick ThomasSwift跳了起来,并给了我很多指导以完成其中的一些。 我们发现下拉代码存在一个相当晦涩的问题,导致我们的大多数问题。 没有尼克的帮助,我认为我不会找到问题或需要更新的代码。
Nick进行了很多更改,以使其可以合并,并且我在接下来的几周内尽力完成了它。
该功能最终完成,并重新合并到GitLab 11.3版本的Master分支中。 但是,这并不是与我们完成的工作相关的唯一功能。 Nick还将其他文件类型(例如.gitlab-ci.yml,.gitignore和Dockerfile)实现为实例级模板 。
我为什么要这么做? 那么,非营利组织的首席架构师为什么决定为GitLab做出贡献? 主要有以下三个原因:
首先,它给了我一个机会,表明我不了解一切,而且我容易犯错。 在NAIC,我们正在建立一种无责无欺和仆人领导的文化,这是我想到的最快的散步方式。
其次,我们希望使其文化成为我们的一部分,以回馈开源项目。 当首席架构师将其发布在YouTube上并告诉其他所有人可以说的时候,很难有人说“不允许您做出贡献”。 另外,我们是由消费者提供资金的,所以我的目标之一是让NAIC尽可能精益运营,并尽我们所能回馈社区。
最后,我想贡献这一特定功能,因为这是我们法律部门需要的。 使遵守法规变得更容易有助于我们的法律团队,这有助于我们建立牢固的信任和互利关系,这对于我们在法律上有歧义的新领域中至关重要。 而且,我知道没有人会在不久的将来解决这个问题,许多客户都希望这样做,而一旦我们建立了框架,其他文件类型便可以很快实现。
作为贡献者入门 确定是否为GitLab和开放源代码或源代码提供代码可能涉及您的法律团队和公司政策,因此请先咨询他们。 甚至为源代码提供贡献(就像我们所做的一样)也很有价值。 我们不仅更改了商业版本的代码,还更改了开源版本的代码。
如果您希望GitLab不优先考虑某项功能,建议您通过问题与某人联系或与您的客户经理联系来回馈。 他们可能愿意与您交谈,以确保您的发展方向正确,甚至可能同意与我们合作。
在开始进行贡献的有趣部分之前,请查阅GitLab的贡献指南 。 如果您想做出贡献,但是没有特定的功能,那么一个简单的入门方法就是搜索GitLab问题并按权重排序。 较低的重量值被认为是最简单的。 GitLab还尝试通过围绕变更日志更新和其他常规管理工作的一些自动化魔术来使贡献变得更容易,但是如果您不知道这些事情的存在,可能会更加令人困惑。
希望您能尽快做出贡献。 我希望我的第二个贡献能够在2019年实现。
接下来要读什么

翻译自: https://opensource.com/article/19/2/contributing-gitlab
gitlab入门

    推荐阅读