<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@fa6fae96f9f24fc99a9ed3262cbb3500" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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@f8da31fc20e347e8bbcfc458a4170aca">
<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@f8da31fc20e347e8bbcfc458a4170aca" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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/f8da31fc20e347e8bbcfc458a4170aca.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><p>Before starting to address our first bug/issue, it's worth doing another pass on the previous contributions we have made to the project. Some of them will hopefully have been completed and merged by now, but it's not uncommon for even simple contributions to take multiple rounds and a lot of time to get merged at first. There can be a lot of learning involved, and that's why we start small!</p>
<p>Keep following-up regularly on these as needed, pinging upstream if you don't get answers within a few days, and addressing any comments or replying to upstream as soon as possible.</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@a74523e0acaf4af58d83cc1458a2a8ad">
<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@a74523e0acaf4af58d83cc1458a2a8ad" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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@09da5fa0e4634d0c871f98c4d5070861">
<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@09da5fa0e4634d0c871f98c4d5070861" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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@7c3df00f2bef4d239535d85513963f1d">
<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@7c3df00f2bef4d239535d85513963f1d" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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 class="vert vert-4" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@66b5f039dfaf4fb4a1d7448dc73fdb65">
<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@66b5f039dfaf4fb4a1d7448dc73fdb65" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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>
<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-06-seq-06-ver-01" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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@c70d64182aba448fb8e057a0583a3657">
<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@c70d64182aba448fb8e057a0583a3657" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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/c70d64182aba448fb8e057a0583a3657.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><p>In the previous section, we spent some time (and some of our hard-earned trust points within the project!), trying to get a recommendation for a good first issue to solve, beyond our initial micro-contributions. Those were extremely small, but were valuable to build the base experience we'll rely on now, to try to push a more significant change.</p>
<h3>Keep it small, still!</h3>
<p>Note however that this first issue must remain <strong>small</strong>. Maybe not as small as fixing a typo in the documentation, but it should remain very small still! It would be useful to try our hand at fixing an actual bug, to start making "real" code changes -- but we still want something that won't require too much development time, or too much context. We are still using this step to learn our way through the project, and start getting a feel for the code base as well as the type of review comments you'll get on code changes. But we don't want to have to be writing a torrent of new code for days or weeks -- we just don't know the project well enough for that.</p>
<p>At the beginning, chances are we will have to rewrite your code to pass the review -- sometimes multiple times. Do yourself a favor and keep it small! You'll be less tempted to resist review comments from upstream this way, and end up with less work on each iteration.</p>
<p>Over time, we'll build the experience and confidence to try our hand a bigger issues or features - but even then, it's a good idea to keep approaching it through small iterations, checking along the way that we are going in a direction that's acceptable to upstream.</p>
<h3>Picking the issue</h3>
<p>If we have received suggestions in response to our request for a good first issue, great! We still need to try to make sure it's not too big, as often developers who are more experienced with a project will forget how overwhelming anything can be at the beginning. If it's too big, we shouldn't hesitate to ask for something smaller to start, or for ways to split the work in smaller chunks. Still, a direct recommendation is often our best bet -- plus, we want to make sure that the person who replied to us ends up feeling this was useful -- both to ourselves, and to the project, by ending up with an issue they cared about getting fixed.</p>
<p>If we don't get an answer, or if it's not helpful, we will have to pick one ourselves. It can be harder, but hopefully we have already identified some potential candidates in the last module, when we posted the request for a good first issue. Here again, if the project has a list of</p>
<p>You can also have a look at recent comments from the project maintainers, by searching the various communications tools we have identified previously. What do they care about? Where is their attention focused? Did they mention some work that needed to be done, and doesn't sound too hard to do? Again, look for small/easy tasks that you could carve out from the discussions. Then ask about it in the corresponding discussions threads - you might get the attention of people who haven't seen your question on the forum, and they are more likely to answer you in a topic they already follow, discussing work they are already invested in.</p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem-builder+block@d94aa7c1638640fd9e8b4e505677ef46">
<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@d94aa7c1638640fd9e8b4e505677ef46" data-request-token="93a7e090902d11ee8c631237928d7ffd" 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">Your selected 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>