<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-05-seq-04-ver-02" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-02-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-05-seq-04-ver-02-html-01" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-02-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>Time for another pass to review the status of the contributions posted previously! It's important to follow-up and push forward a contribution regularly after submitting it, until it gets merged. A lot of the work actually comes up <em>after</em> the initial submission --- which is only the beginning of the process. Make sure to scrupulously and promptly address comments from reviewers, and ask about the status in the ticket if it hasn't progressed for a few days.</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@9ca48ffbf7b34e0596c894485bd4c48d">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@9ca48ffbf7b34e0596c894485bd4c48d" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Micropatch follow-up is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></div></div>
</div>
</div>
<div class="vert vert-2" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@0bcd4bae386d492b9f8d52c724259b9f">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@0bcd4bae386d492b9f8d52c724259b9f" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Documentation contribution follow-up is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></div></div>
</div>
</div>
<div class="vert vert-3" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@1798b708d86a4a9c94bc4dbcd0c6b253">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@1798b708d86a4a9c94bc4dbcd0c6b253" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Wikidata contribution is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></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>
<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-05-seq-04-ver-01" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-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-05-seq-04-ver-01-html-01" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-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>Now that we have had the occasion to try multiple forms of interactions with the project, and could see how the project participants react (or don't). It's a good opportunity to stop and reflect about our choice of project. We have more elements to decide whether it will be a good environment for producing, and getting merged, a more substantial contribution -- for example, fixing a bug in the code.</p>
<p>Review and evaluate the following characteristics of the projects, to figure out if that's a good match now:</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@a6378a84fbcc422f884b61d0545a5b83">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@a6378a84fbcc422f884b61d0545a5b83" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Review is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></div></div>
</div>
</div>
<div class="vert vert-2" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@62ec7f3356dd48bd86e2caf25bddc702">
<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@62ec7f3356dd48bd86e2caf25bddc702" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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/62ec7f3356dd48bd86e2caf25bddc702.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><h3>Switching project</h3>
<p>If the assessment has one or more low scores < 3, it's worth considering to find another project - and now is a good opportunity to switch. If you haven't been able to get the simple changes and contributions so far acknowledged and accepted, it will be even harder to achieve this with larger code contributions, which would be the next step. Go back to the <a href="/courses/course-v1:MOOC-FLOSS+101+2021_1/jump_to_id/4f337d3507374bc5a7fff92d1b1a3da7">section about choosing a project</a>, and pick a different one. Then redo the <a href="/courses/course-v1:MOOC-FLOSS+101+2021_1/jump_to_id/chap-03-seq-06-ver-01">"Project tips" sections of modules 2</a> & <a href="/courses/course-v1:MOOC-FLOSS+101+2021_1/jump_to_id/chap-04-seq-05-ver-01">of module 3</a>, until the recap of your contributions to that project show good results, and the acceptance of your contributions to that project.</p>
<p>If some your contributions have been accepted and the project scores only 3's & above, congratulations! You're now ready to go to the next stage. : )</p>
<p></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>
<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-05-seq-04-ver-03" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-03-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-05-seq-04-ver-03-html-01" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-03-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>Now that we have had a few interactions with the project, we are starting to gain more knowledge of its processes and members, through our first small contributions. It's time to use that new knowledge and burgeoning relationships to help with our next step, finding for a good first issue.</p>
<h4>Getting help</h4>
<p>These first issues can be surprisingly difficult to find, as they need to be small, not require too much context, and we will need to ensure that at least one maintainer is interested in merging the resulting patch. Often, at this stage we don't have enough knowledge about the project and its code base to evaluate these criteria. That's where getting help from the project is useful.</p>
<p>Sometimes, the project has already put in the work to prepare a list of "byte-sized" or "newcomer friendly" tickets. Beware though, these lists aren't always up to date, and some of the bugs they contain aren't so "newcomer friendly" -- there can be hidden complexity that the ticket author isn't aware of, and some of the older tickets can become invalid or obsolete due to more recent changes in the code base.</p>
<p>So whenever possible, it's good to get advice from someone from the project about the issue you should take. Either to confirm one you have found or that's listed by the project, or to ask for a suggestion. To ensure that there is a maintainer interested in merging the patch, it definitely helps to have the maintainer picking it. You need to convince them that the time they will spend picking the issue will be worth their effort, but that was the point of the small contributions we have already made -- to prove that we get things done.</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@47d360e4bc9c49fc9b4462b5ed03f4ba">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@47d360e4bc9c49fc9b4462b5ed03f4ba" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Activity: Asking for a good first issue is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></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>
<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-05-seq-04-ver-04" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-04-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-05-seq-04-ver-04-html-01" data-request-token="4b2a5b94903311ee8c631237928d7ffd" 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-05-seq-04-ver-04-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>Reviews are one of the most overlooked forms of contribution to a project, especially from new contributors. It might sound counter-intuitive to go about reviewing other contributors' pull requests when you don't know much yet about the code base or even the project itself, but there are lots of benefits to start doing some reviews early.</p>
<h3>Learning through reviews</h3>
<p>First, it will help you to learn. Unlike trying to sip through the entire code base at once, pull requests will focus on an atomic set of changes related to a given feature or bugfix, highlighting the different parts of the code that needs to be changed for that specific change. If you look at small or medium sized changes, that will be a lot more digestible.</p>
<p>You will also gain a concrete understanding of how the pull requests are structured, and provide you with concrete examples of what the project expects you to include in the pull request description, the type of tests you'll need to add, etc. You will also see the types of comments and interactions reviewers post, and how others manage to get their pull requests merged.</p>
<h3>Reproducing issues & verifying patches</h3>
<p>Reading the pull request isn't the only thing you can do -- you can also try to load and run the change, run the tests yourself locally, and manually test yourself that the change worked. You will have to do this on your on pull request later on, so you will build experience doing this with other people's pull requests that will be valuable. You can start with a pull request that has been merged first (to start with a change that others have already tested and validated -- you will know it's supposed to work), and then move on to pull requests that are still open. Be sure to post your findings! Even a simple "I tested this patch and it fixed the issue for me" is very valuable and can help both the author and the reviewers to validate the change. If you find issues, post a description of what you've found too -- and if you're not sure if the problem is with your setup or the patch, simply say so. It might still help uncover issues, and if the problem is with your setup you might get a reply giving you a hint as why.</p>
<p>You can also ask questions in the code if you're unsure about some parts - just keep it on topic for the change at hand.</p>
<h3>Keep doing more reviews!</h3>
<p>Going forward, it's worth coming back to do reviews regularly for the project. All the benefits above will keep applying, and you'll provide the project with one of the most important form of contribution. As you will see, it's not always easy to get all the reviews you need as a contributor. So contributing to reviews can help free some of the maintainers' time, in turn giving them more time to work on reviewing other pull requests -- including yours!</p>
<p>Don't be shy about this -- we often feel illegitimate reviewing other contributors' pull requests early on, but there are lots of small simple aspects to reviews (like reproduction or pointing out simple/obvious issues like typos) which we can contribute without much deep knowledge of the project.</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@59cb6857d31f43218c04bb6a0580cd8e">
<div class="xblock xblock-public_view xblock-public_view-problem-builder" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem-builder" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@59cb6857d31f43218c04bb6a0580cd8e" data-request-token="4b2a5b94903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Review description & URL is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></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>