Sunday 12 January 2020

Week 1 - Lab 1

For this lab, we were asked to research on two open source software with different licenses and find out the process to contribute to its source code and observe an iteration of the same. The software I have chosen for this lab are Firefox and React respectively, which have MPL 2.0 and MIT licenses respectively.

1. Mozilla Firefox (license: MPL 2.0)

Introduction: Firefox uses a forum named BugZilla to work on the bugs where different members of the community review and comment on the forum for that particular bug.

Software patch : The bug I looked into was ID: 651266 in which the google map maker was missing some style elements. While the bug was reported by Leman Bennett, around 5-6 people worked on reviewing it and got it resolved. Alice0775 White pointed out an attribute selector was failing while loading it and looked like it was a typo in a file named gw.css. Then the Google was contacted about this issue and finally after a few days Christopher Blizzard received an email, that the issue was fixed internally but were just waiting to push it. Once it was pushed everything seemed normal and the bug was fixed and the issue was changed to resolved. The process took a few weeks and the participants were quite active with their frequent responses. Here is the link to that bug: https://bugzilla.mozilla.org/show_bug.cgi?id=651266

Findings: I also looked at the guide suggesting how we could contribute to the community. It suggested getting the code reviewed once we feel it was fixed, from a mentor if we were working on a mentored bug or finding reviewers which could be the ones working on similar issues. Following up with the reviewers is necessary once we don't get a reply within a particular frame of time. Once it is accepted by the reviewers the patch is ready to be merged but needs to go through the try server and the automated testing. Once they are successful, the patch is then merged into the main tree. Here is the link the guide: https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction

Advantage and disadvantage: Advantage for this type of bug tracker is that it automates documentation while a disadvantage is that some developers have complained that it is hard to manage the logged in errors.



2. ReactJS (license: MIT)

Introduction: All the contributions to react are created, reviewed and submitted through software development version control called Github.

Software patch: I looked at one of the latest releases of ReactJS which was v16.12.0. It had about 34 contributors working on it and was being worked on for over 2 months. The contributors to the post were quite responsive as we saw commits being made to it almost everyday. The patch dealt with 2 major fixes being for passive effects (useEffect) not being fired in a multi-root app for React DOM (#17347) and lazy and memo types considered elements instead of components for React ls (#17278). I found just 5 comments on Github so there was not much to be understood about the problem being fixed. But still there was a function named didScheduleRenderPhaseUpdate which was being set to true immediately after the first render phase update so they had to change code to be traversed to through the work-in-progress list. As of today, there have been 164 commits made to it already. Here it the link to the patch: https://github.com/facebook/react/releases/tag/v16.12.0


Findings: All the contributions are made via Github and there are guides to how we can contribute to an open source project on Github. Once you are ready to submit your code you can submit a pull request via master branch of the latest stable version. And from there on the core team reviews the request and either closes or applies it with an explanation. There are some steps to be taken before submitting the request and also the guide on how one can contribute both of which can be found in the link below:
https://reactjs.org/docs/how-to-contribute.html

Advantage and Disadvantage: I feel this is a very organized way of submitting patch requests but with the limitation of it taking more time for users to fulfil their requests.

No comments:

Post a Comment