如何贡献开源代码

2024-04-28 22:18
文章标签 源代码 贡献

本文主要是介绍如何贡献开源代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此翻译纯属个人爱好,由于水平所限,翻译质量可能较低。网络上可能存在其它翻译版本,原文地址:http://www.findbestopensource.com/article-detail/contribute-to-opensource

英文原题:How to contribute to open source

翻译正文:

我能看到很多很多学生以各种形式提出这个问题,我想贡献开源代码,但是怎么才能贡献?其实有很多方法可以贡献开源代码,我列举出了一些方法并且我认为这些方法可能很有用。

贡献给既有的项目:

既然你对贡献代码感兴趣,但是你要知道不是所有的开源产品都会接受你。每一个产品都有一些编码工作和提交代码的规则,你可能需要遵守这些规则。

选择你所感兴趣的领域:

首先选择你所感兴趣或者你擅长的编程语言和技术的项目。选择工程不仅仅是按照编程语言这个领域。仅仅了解Java你可能不能在游戏项目中工作。你应该要有这个兴趣。

理解这个项目:

登录你准备贡献代码的这个项目的网站,你或许会找到如何贡献代码的链接、指南等等。理解这些指南、编码准则和补丁验收准则。加入他们的开发和用户邮件列表。下载项目的源代码并试着学习怎么上传。

项目提交者:

每一个项目都有至少一个提交者。他们负责代码的提交。你的代码提交会通过他们。一些项目可能会要求志愿者将修改好的代码用邮件的方式发送给项目提交者,还有一些项目可能会要求将项目补丁发送给开发者。但是最终你的代码最终将通过项目提交者提交到项目的主要分支。

测试和文档:

编码并不是为开源社区做贡献的唯一方法。你还能做项目测试版的测试工作和代码调试。你还能写出更好的文档。你可以将文档本地化或者将项目说明书翻译成其它语言。

贡献给新的项目:

选一个和你有一样有开源精神的团队并按照你的想法新开发一个项目。选择好你的软件许可证、条款和条件。许多这样的人靠着建立开源项目而成功。

推倒重来:

如果你对一个项目没有任何独特的想法,那么你就把这个项目推到重来。试着去做别人已经做过的事情,但是加入你自己的一些独特想法,使得人们使用你的软件会觉得有一些与众不同。很多人会建议你不要推到一个项目重来,如果是这样的话,那么一个软件种类可能只有一个产品。但是如果推到一个软件重来,那么你能学到很多东西。

陈旧的项目:

从一些代码托管网站,如Sourceforge和GitHub,辨别出陈旧的或者不活跃的项目。比如项目最后的一次活跃期是一两年前的,找一个这样的项目,找到这个项目的问题,然后重新给这个项目赋予生命。

移植:

很多人或许会对项目移植感兴趣。如果你是一名Java程序员,并且你看到了一些用Python或者Ruby写的有趣的项目,你可以把它移植到Java平台上。将代码从一种技术移植到另一种技术。一个程序员不可能掌握所有的编程语言,移植优秀的项目真的很有用,并且很多人会感激你的努力。


很多人都对贡献开源代码感兴趣,但仅仅是感兴趣,很少一部分人会真正去做它。你开始做这件事,人们将会跟随你。

原文地址:点击打开链接

这篇关于如何贡献开源代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944402

相关文章

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

运营版开源代码 多语言跨境商城 跨境电商平台

默认中英双语 后台带翻译接口 支持133种语言自动翻译 支持多商户联盟 一键部署版本 伪静态+后台登陆后缀 源码下载:https://download.csdn.net/download/m0_66047725/89722389 更多资源下载:关注我。

容器第四课,JDK源代码分析,自己实现LinkedList,双向链表的概念_节点定义

package com.pkushutong.Collection;public class Test03 {private Test03_01 first; //第一个节点private Test03_01 last; //最后一个节点private int size;public void add(Object obj){Test03_01 t = new Test03_01();if(fi

【UE4源代码观察】观察Core模块

话题 Core模块是整个引擎中最核心的模块,在之前的博客【UE4源代码观察】可视化所有模块的依赖情况中有统计,它被983个模块引用,恐怕除了第三方的模块外基本所有模块都有引用。我想首先观察其中的内容,然后再做测试:将Core模块拷贝到之前【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程建立的空白工程中,看能否将它成功编译,理论上讲,“核心”不应再依赖太多其他的东西,所以我应该不会再需

【UE4源代码观察】在空白工程中测试跨模块调用函数

目的 在之前的博客【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程中,成功让UBT工作起来了。现在我想要测试编译出的多个模块之间是否能互相调用,我记录下测试的过程。最终工程见 工程GIT链接。 实践 第一部分 首先仿照TestA模块建立TestB模块。 在TestB.h文件中声明了一个函数 int TestBFunc(int x, int y); 并在TestB.cpp中

【UE4源代码观察】观察FEngineLoop中各函数的调用顺序

当启动编辑器时,Launch模块是启动模块,在Windows平台中 LaunchWindows.cpp 的 WinMain函数是入口,而 FEngineLoop 管理了程序的初始化与主循环。他的成员函数如下: public:/*** Pre-Initialize the main loop, and generates the commandline from standard ArgC/Arg

【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程

我想观察UE4是怎么编译的,于是查阅官方文档,了解到UE4有一套自己的编译工具:UnrealBuildTool,简称UBT。关于UBT的官方文档参阅:虚幻编译工具。我想尝试自己手动建立一个使用UBT进行编译的空白工程。不过首先,先了解下UBT的编译流程中一些文件所扮演的角色 UBT的编译流程中一些文件所扮演的角色 模块 每个模块都由一个 .build.cs 文件声明,它存储在 Source

【UE4源代码观察】可视化所有模块的依赖情况

思路 UE4引擎的模块非常多,我想要观察他们的依赖情况。于是我写了程序读取所有模块的.Build.cs文件,记录每个模块依赖的模块(当前是看PublicDependencyModuleNames和PrivateDependencyModuleNames。但后来经评论提醒我发现AddEngineThirdPartyPrivateStaticDependencies也应该视作是“依赖”但没统计,后续

【UE4源代码观察】观察TargetPlatform模块

前情提要与本次目标 在之前的博客《【UE4源代码观察】观察 RHI、D3D11RHI、RenderCore 这三个模块的依赖关系》中,我将RHI、D3D11RHI、RenderCore这三个模块加入了我的空白工程中并确保可以成功编译。然而当时RenderCore模块有一个比较大的缺失:没有让shader相关的功能正常编译,因为它需要TargetPlatform模块中的内容。 因此,这次我想观察

【UE4源代码观察】尝试调试UBT

前言 在之前的博客《【UE4源代码观察】手动建立一个使用UBT进行编译的空白工程》中我尝试动手搭建了一个用UBT进行编译的空白的工程。但是对UBT其中的逻辑并不理解。 后来在学习UE4源代码的过程中,又了解了它的一些行为。目前,对我影响较大的是:1.他会有一些逻辑去添加一些宏。2.他会有一些逻辑去给修改ModuleRules(和.build.cs中内容的角色一样)。这时候我发现一些和预期不太一