| @ -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 | |||
| 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) | |||
| 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 | |||
| 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 | |||
| 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 | |||
| 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. | |||