| @ -1,43 +1,70 @@ | |||||
| The main goal is this post is to document a bugfix I made as a part of RIT's HFOSS class. | |||||
| However, I feel that documenting the process of making a bugfix will help other people looking to contribute towards open source projects. | |||||
| The main goal is this post is to document a bugfix I made for RIT's | |||||
| [HFOSS](http://hfoss.rocfoss.org/) class. I feel that documenting the | |||||
| process of making a bugfix will help other people looking to | |||||
| contribute towards open source projects. | |||||
| # Identify the Bug | # Identify the Bug | ||||
| The first step in a bug fix quest is to find a bug. | |||||
| If you happen to find a bug, it is important that you check current issues to make sure that that bug has not already been reported. | |||||
| If you have no clue where to begin, I found it helpful to look for issues tagged as | |||||
| help wanted in a repository. | |||||
| The first step in a bug fix quest is to find a bug. If you happen to | |||||
| find a bug, it is important that you check current issues to make sure | |||||
| that that bug has not already been reported. If you have no clue | |||||
| where to begin, I found it helpful to look for issues tagged as help | |||||
| wanted in a repository. | |||||
| The other day I was notified about an issue opened on the RITlug (RIT Linux Users Group) website. | |||||
| I got this notification via Github. | |||||
| If you are active on a project, it is useful to be subscribed to their mailing list or issue tracker so you are alerted when a issue that you can work on comes up. | |||||
| I really like Github because it gives you a lot of freedom in what issues/users/projects you are notified about. | |||||
| The other day I was notified about an issue opened on the RITlug (RIT | |||||
| Linux Users Group) website. I got this notification via Github. If you | |||||
| are active on a project, it is useful to be subscribed to their | |||||
| mailing list or issue tracker so you get alerted when an issue that you | |||||
| can work on comes up. I really like Github because it gives you a lot | |||||
| of freedom in what issues/users/projects you are notified about. | |||||
| [https://github.com/RITlug/ritlug.github.io/issues/263](https://github.com/RITlug/ritlug.github.io/issues/263) | [https://github.com/RITlug/ritlug.github.io/issues/263](https://github.com/RITlug/ritlug.github.io/issues/263) | ||||
| Since I had familiarity with web development and was flagged as help wanted, I decided to fix this issue. | |||||
| Since I had familiarity with web development and was flagged as help | |||||
| wanted, I decided to fix this issue. | |||||
| # Communicate with Project | # Communicate with Project | ||||
| After you find a bug it is best to communicate with the project that you wish to fix this bug. | |||||
| In my case I did this by leaving a comment on the issue and assigning the issue to myself. | |||||
| This is very helpful because on very active projects, if you don't assign yourself the issue, there is a chance that two or more people would try to fix the issue at the same time. | |||||
| Making yourself know for solving the issue is also enables you initiate a dialog with other people in the project interested in this issue. | |||||
| This is also a great time to solicit feedback about how exactly the issue should get resolved. | |||||
| After you find a bug it is best to communicate with the project that | |||||
| you wish to fix this bug. In my case, I did this by leaving a comment | |||||
| on the issue and assigning the issue to myself. This is very helpful | |||||
| because on very active projects if you don't assign yourself the | |||||
| issue, there is a chance that two or more people would try to fix the | |||||
| issue at the same time. Making yourself know for solving the issue is | |||||
| also enables you to initiate a dialog with other people in the project | |||||
| interested in this issue. This is also a great time to solicit | |||||
| feedback about how exactly the issue should get resolved. | |||||
| # Fix the Bug | # Fix the Bug | ||||
| Just do it! | |||||
| For the bug that I found I just had to modify some HTML and validate that it worked by running the | |||||
| [Jeckyll](https://jekyllrb.com/) project. | |||||
| Just do it! For the bug that I found I just had to modify some HTML | |||||
| and validate that it worked by running the | |||||
| [Jeckyll](https://jekyllrb.com/) project. When working on bug fixes or | |||||
| enhancements in general it is best to include documentation for any | |||||
| changes that you make and work on a separate branch. | |||||
| # Submit Patch and Make Additional Changes | # Submit Patch and Make Additional Changes | ||||
| The last thing you need to do is submit your code for a code review so you can get your changes merged into the project. | |||||
| To do this on Github you simply file a pull request. | |||||
| This is where I find that a lot of back and forth happens. | |||||
| Code reviews are places for you to fix mistakes, resolve, misunderstandings and improve | |||||
| your code in general. | |||||
| If you are reviewing code it is essential to give constructive feedback so people can effectively | |||||
| work on the project. | |||||
| The last thing you need to do is submit your code for a code review so | |||||
| you can get your changes merged into the project. To do this on Github | |||||
| you simply file a pull request. When creating a pull request it is | |||||
| helpful to link to the original issue and provide a brief description | |||||
| of what changes were made. Pull requests can be a place where a lot of | |||||
| back and forth communication happens. Code reviews are places for you | |||||
| to fix mistakes, resolve, misunderstandings and improve your code in | |||||
| general. If you are reviewing code it is essential to give | |||||
| constructive feedback so people can effectively work on the project. | |||||
| The pull request with the changes I made for the RITlug website could | |||||
| be found here: | |||||
| [https://github.com/RITlug/ritlug.github.io/pull/266](https://github.com/RITlug/ritlug.github.io/pull/266) | |||||
| # Do it again! | |||||
| Once you get in the groove of contributing to open source project it | |||||
| is enthralling. Like anything else, practice makes perfect. One thing | |||||
| to note is that not every open source community is the same, some will | |||||
| be easier to get into than others for contributing. | |||||