Skip to main content

DPS909 - Release 0.1 - A Fork in the Road

Hello friends, welcome back to my journey into the world of open source. Continuing from the last milestone (in which we explored pushing a simple app to Github), this time I begin to scratch the surface of a major aspect of open source - community contributions. For the Release 0.1 deliverable, I work alongside my fellow classmates from the DPS909 course, as we work to review and bugfix each other's work. For reference, we all created the same, simple note-taking app, but each programmer's individual preferences resulted in slightly different designs with unique source code.

According to proper Github etiquette, users wishing to contribute to a project should first fork a version of the repo to their own Github account. Then, a separate branch of the repo should be made to specifically address the contribution being made. After the changes are implemented, a formal pull request should be submitted to the official project repo, so that it can be reviewed by the original author. If the author deems the contribution to be of good quality, they may accept the pull request and merge it into the original project repo. Admittedly, I ran into some troubles when first setting up my contributions through the appropriate channels. The biggest mistake I made was committing my changes to the wrong branch for one of my contributions - an error I did not notice until I had already made the push to my fork. Luckily some quick googling led me to a useful little git bash command called git revert, which (as its name clearly implies) simply reverts the actions of the last commit.

As for the actual details of Release 0.1, I've chosen to to contribute to two of my classmates' apps through Github, one a simple bugfix, and the other an additional feature. The details of my work are as follows:

Contribution 1 - Bugfix

Target Project: Whiteboard by ODAVING
Project Live Page: https://odaving.github.io/Whiteboard/
Contribution Details: UI bugfix and code cleanup

Improved Whiteboard app by user ODAVING on Github

For my first Release 0.1 contribution, I reviewed the note-taking app of my colleague ODAVING on Github, called Whiteboard. It has the ability to save your note via the ctrl + S shortcut (or cmd + S on macOS), and also a simple and intuitive UI. However, the original design featured the ENTER YOUR IDEA BELOW prompt in the same box as the note field, which is a bit unintuitive, as it was not very obvious where the user should click to begin typing their note. I posted an issue of this problem on Whiteboard's Github repo, and made my own fork of the project.

To begin bugfixing, I created a new branch of the repo, and then addressed the issue by separating the user prompt and the note field into two different divs in the HTML source code. Finally, I moved all of the project's inline styles into their own CSS file.

Once I was sure my bugfix was complete (addressed all aspects of the target issue), and agreed with the standards of the original Whiteboard app, I pushed the changes to my fork of the project. I then submitted a pull request to user ODAVING, so that my contribution may be merged with the main project repo. As you can see by visiting the project's live page, my pull request has been accepted, and my bugfix was officially incorporated into the current version of the Whiteboard project.

For any open source contribution, it's recommended to collaborate with the author(s) of the original project. Not only is it a show of respect and formality, but it also helps to foster professional relationships and promotes the growth of the open source community! In my case, user ODAVING is a personal friend and classmate, so I was able to get in touch with him personally, in order to ensure that my contributions met his standards and that he was satisfied with the outcome of the merge.

Obviously, I received ODAVING's consent to post this transcript!

Contribution 2 - Additional Feature

Target Project: Waj-Notes by wajeehsheikh
Project Live Page: https://wajeehsheikh.github.io/Waj-Notes/
Contribution Details: App visual improvement

Improved Waj-Notes app by user wajeehsheikh on Github

For my second Release 0.1 contribution, I investigated the note-taking app of another colleague, user wajeehsheikh on Github. His Waj-Notes app had a very clean and distraction-free design that also allowed the user to save their notes by pressing the ctrl + S shortcut. However, I thought that the original app was a bit plain, and could be improved by adding some color and a unique background in order to visually distinguish it from other apps of the same kind. To notify the author of the potential problems that I saw with his current design, I posted my new ideas for Waj-Notes as an issue on the project's Github repo. Then, similarly to my first Release 1.0 contribution, I forked the project to my own Github account, and created a new branch to begin working on my proposed features.

To address the issue that I posted for Waj-Notes, I decided to make the background of the app more visually appealing by adding a repeating corkboard graphic. This gave the app a bit of flair compared to its previous plain white background, but without being too visually distracting. Then, I gave the page some CSS styling so the note field resembled a sticky note, in order to distinguish it from the rest of the page elements.

After checking my prospective contributions over to ensure that it was of high quality and adhered to the standards set by the original Waj-Notes project, I pushed the changes to my fork. After that, I submitted a formal pull request to wajeehsheikh, so that it can be reviewed at his discretion. As of the time of writing this post, my pull request has not yet been accepted, but hopefully wajeehsheikh deem it a quality contribution to his app, and eventually merge it into the official Waj-Notes main branch! You can find the Waj-Notes app hosted here (and, just maybe, including my neat design additions as well!).


Comments

Popular posts from this blog

DPS 909 - Lab 3 - Hacktoberfest, and the Very Scary Repository

It's that time of year; the mornings are getting chilly, the leaves are turning, the pumpkin spice is flowing, and open source developers are getting all worked up over something called Hacktoberfest . Not to be confused with the other , similar-sounding (though arguably no less beer-filled) celebration, Hacktoberfest is a chance for open source enthusiast to truly flex their projects and contributions. Hosted by DigitalOcean , Hacktoberfest 2019 is an event running throughout the month of October that encourages activity in the open source community. It is completely free to sign up, and participants can even link their Github accounts to use as their Hacktoberfest profiles. As you may have already guessed, I will be participating in this event as my next major milestone on my journey into the world of open source. Through the miracle of APIs, even my profile picture was imported! While the prospect of diving headfirst into such a large, open source event as a beginner may s

DPS 909 - Release 0.2 - Hacktoberfest Week 3

I'll admit it right off: this week, I did not have a lot of time to spare for Hacktoberfest, so I was unable to tackle a new goal (out of the ones I set for myself at the start of the month). Nevertheless, I did not want to jank up the weekly momentum I had by missing a contribution, so I simply opted for a simple one instead. I found a nice project , by GitHub user vichitr , that focused on encouraging amateur contributors during Hacktoberfest, not unlike the last repo I contributed to. Instead of focusing on design patterns, vichitr's project contains a variety of issues that programmers are invited to tackle. I decided to contribute to issue #6 on the repo, which is to implement a data structure in the language of your choice. Since I was short on time for the week, I decided to contribute a threaded tree by overhauling a previous project I did as a school assignment. A threaded tree is a binary search tree that supports easy, in-order traversal of its values. Normally,