<div class="xblock xblock-public_view xblock-public_view-vertical" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="VerticalStudentView" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="vertical" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@vertical+block@chap-06-seq-02-ver-01" data-request-token="e4978058902f11ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<div class="vert-mod">
<div class="vert vert-0" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-06-seq-02-ver-01-html-01">
<div class="xblock xblock-public_view xblock-public_view-html xmodule_display xmodule_HtmlBlock" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="XBlockToXModuleShim" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="html" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-06-seq-02-ver-01-html-01" data-request-token="e4978058902f11ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<script type="json/xblock-args" class="xblock-json-init-args">
{"xmodule-type": "HTMLModule"}
</script>
<div class="edit-link-wrapper"><div class="edit-link"><p style="text-align: right;"><a href="https://gitlab.com/-/ide/project/mooc-floss/mooc-floss/edit/master/-/course/html/chap-06-seq-02-ver-01-html-01.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><p data-sourcepos="7:1-8:58" dir="auto">This section describes how to setup your computer to contribute to open source projects. If you are confident that yours is already properly setup, feel free to skip this section by <a href="/courses/course-v1:MOOC-FLOSS+101+2021_1/jump_to_id/fa6fae96f9f24fc99a9ed3262cbb3500" target="[object Object]">jumping to the next activity</a>.</p>
<p data-sourcepos="10:1-11:12" dir="auto">Because it is impossible to write a tutorial for all the situations, we have a list of advice to configure a development environment. The best solution is often to read the setup instructions from the project or its README.</p>
<h3 data-sourcepos="13:1-13:20" dir="auto">Operating System</h3>
<p data-sourcepos="15:1-17:68" dir="auto">A lot of open source projects targets operating systems using the Linux kernel. If your development computer is running Windows, it could be hard to build and run these projects. In this case, we recommend that you configure the WSL (Windows Subsystem for Linux) or you run Linux in a Virtual Machine.</p>
<p data-sourcepos="19:1-22:71" dir="auto">The documentation to install WSL on a Windows machine can be found <a href="https://docs.microsoft.com/en-us/windows/wsl/" rel="nofollow noreferrer noopener" target="_blank">here</a>. If you choose to run a Linux virtual machine, we recommend that you install <a href="https://www.virtualbox.org" rel="nofollow noreferrer noopener" target="_blank">VirtualBox</a>. A Linux distribution that is easy to use is <a href="https://ubuntu.com" rel="nofollow noreferrer noopener" target="_blank">Ubuntu</a>.</p>
<p data-sourcepos="24:1-24:71" dir="auto">If your machine runs MacOS or Linux, most projects will work just fine.</p>
<h3 data-sourcepos="26:1-26:15" dir="auto">Text editor</h3>
<p data-sourcepos="28:1-31:24" dir="auto">We will need a text editor to write and search through code. If you already know what is the best text editor for you, that's perfect! However, if don't know what editor to choose, we recommend you to install one of the following ones:</p>
<ul>
<li data-sourcepos="28:1-31:24" dir="auto">If you would like something intuitive, even if not 100% open, install <a href="https://code.visualstudio.com" rel="nofollow noreferrer noopener" target="_blank">Visual Studio Code</a>. This editor is very popular because it is powerful while being easy to use. It has a lot of extensions.</li>
<li data-sourcepos="28:1-31:24" dir="auto">If you would prefer something powerful and 100% free software, look into <a href="https://neovim.io/" target="_blank" rel="noopener">NeoVim</a> or <a href="https://www.gnu.org/software/emacs/" target="_blank" rel="noopener">emacs</a>.</li>
</ul>
<h3 data-sourcepos="33:1-33:11" dir="auto">Account</h3>
<p data-sourcepos="35:1-36:65" dir="auto">Finally, for most projects we will need an account on the platform hosting the project. Please make sure that you have an account on the website hosting the project (<a href="https://github.com/" target="_blank" rel="noopener">Github</a>, <a href="https://gitlab.com/" target="_blank" rel="noopener">Gitlab</a>, <a href="https://bitbucket.org/" target="_blank" rel="noopener">Bitbucket</a>, etc).</p>
<h3 data-sourcepos="35:1-36:65" dir="auto">Remote Development, Codespaces, Cloud IDE</h3>
<p>In some rare cases, the forge hosting the project may have an integrated development environement directly accessible without installing anything on your computer. For example, Github may have <a href="https://github.com/features/codespaces">Codespaces </a>enabled, Gitlab "<a href="https://gitlab.com/groups/gitlab-org/-/epics/7419">remote development environment"</a> or one-click Cloud IDE (like Gitpod) etc. Be aware that these environment may have limited ressources given for free (not sufficient to build the project you've choosen<span style="font-size: 1em;">) and may ask you to upgrade to a paid plan. You might try first with the free plan otherwise do it locally on your computer is always a safe choice. </span></p>
<p><span style="font-size: 1em;"></span></p></div></div>
</div>
</div>
</div>
<script type="text/javascript">
(function (require) {
require(['/static/js/dateutil_factory.a28baef97506.js?raw'], function () {
require(['js/dateutil_factory'], function (DateUtilFactory) {
DateUtilFactory.transform('.localized-datetime');
});
});
}).call(this, require || RequireJS.require);
</script>
<script>
function emit_event(message) {
parent.postMessage(message, '*');
}
</script>
</div>