Believe it or not, the vast majority of work done on jQuery UI (and all other jQuery projects, for that matter) is a volunteer effort. Because of this, and because of the ever-increasing amount of work to do, the jQuery UI project is constantly looking for help from the community.
For whatever reason, when most people decide they want to contribute, they start by heading to the jQuery UI bug tracker and trying to fix bugs. The problem with this is that the vast majority of outstanding bugs aren’t easy to fix. When simple bugs come in, we (the jQuery UI team) fix them immediately. It’s the tricky ones or the ones that have no clear solution that stick around. And as an aspiring contributor, trying to tackle these problems when you’re just getting started is almost always a frustrating experience.
Unless you have a lot of jQuery UI and open source experience, you’re better off contributing in another way in the beginning. But don’t worry; there’s plenty to do! What follows is a list of ways you can help jQuery UI.
The first place to head when you’re considering contributing to any jQuery project is http://contribute.jquery.org/. The site goes into explicit detail on how to contribute to all aspects of jQuery. The information in this appendix summarizes these guides specifically for the jQuery UI project.
In my opinion, the best way to start giving back to jQuery UI is by helping others with the library. You can provide support on many venues:
These three locations have a lot of people with a lot of questions about jQuery and jQuery UI. The jQuery UI team itself simply can’t deal with this quantity. We need people to step in and help.
Besides the altruistic aspect of helping others, answering questions is a spectacular way to learn and get started contributing to the project. You learn about the problems people are having, and by helping to solve them, you learn a lot about the project.
Bug triage refers to the process of reviewing existing and incoming bug tickets and processing them. This means doing a number of things:
As with support, triaging bugs takes time and effort, and is a great way to assist the jQuery UI team. The jQuery UI bug tracker is located at http://bugs.jqueryui.com/. You can create an account and comment on any existing issue. If you find duplicate issues, comment about it. If you can create a better test case, comment with the new test case. If you find an old issue that’s no longer relevant, comment and let us know.
If you create an account on http://bugs.jqueryui.com/, you can also set up email notifications for new tickets and new comments. With the notifications, you can help the project by responding to tickets and questions as they come in—which lessens the load on the core team.
The same as contributing to the jQuery UI support efforts, it can be tremendously valuable to contribute to the jQuery UI triage effort. Triaging is the easiest way to keep track of the day-to-day activities on the project. In the bug tracker you’ll work side by side with the team, because we’re also in there managing tickets. And if you’re looking to eventually contribute code, the bug tracker can teach you how the team’s processes work, and how we address issues as they come in. Over time, you’ll learn how to tackle the issues yourself.
Another great way to get involved with jQuery UI is with its documentation. jQuery UI has a lot of code, and it’s important to the project to have comprehensive guides on how to use it. Many people don’t realize that all the jQuery UI documentation is open source and available on GitHub (https://github.com/jquery/api.jqueryui.com). So if you notice a problem with the documentation, you can fix it!
And it’s not just the documentation source code that’s online. All jQuery’s websites are open source and available on GitHub as well. For instance, the code behind http://jqueryui.com is available at https://github.com/jquery/jqueryui.com.
If you’d like to contribute to this process, there’s plenty you can do. To start, you can write new documentation for the API site or fix existing API issues (which you can view at https://github.com/jquery/api.jqueryui.com/issues). If you’re interested in writing, you can author new articles for the jQuery Learning Center (learn.jquery.com). If you’re interested in design, you can help us improve the look of our sites. If you’re interested in UX, we’d love help improving the user experience on http://jqueryui.com and http://api.jqueryui.com. For more details on the specifics, see http://contribute.jquery.org/web-sites/.
Last but not least, you can always contribute code to jQuery UI, but I’ll offer one word of warning: if you find an issue with the library, don’t jump directly to submitting a pull request with a fix on GitHub. jQuery UI has a number of processes in place to assure consistency and improve the long-term maintainability of the project. We require the following things:
Don’t let this discourage you. These best practices help maintain the high quality of the jQuery UI codebase, and adhering to them doesn’t require much more effort. Sometimes it’s helpful to look at a list of previous commits to get an idea of how the team does it. You can see the latest commits to jQuery UI at https://github.com/jquery/jquery-ui/commits/master.
If you’re completely unfamiliar with GitHub, http://contribute.jquery.org/commits-and-pull-requests/ is a great place to start as it walks you through all the processes necessary to contribute code to any jQuery project. For more specific information on jQuery UI, such as how to run the unit tests, see its GitHub repository at https://github.com/jquery/jquery-ui.
If all else fails, feel free to join #jqueryui-dev on IRC and say that you want to help. The jQuery UI team hangs out in that channel, and we can help point you in the right direction. The team also has a weekly meeting in #jquery-meeting if you want to find us all in one place. The meeting is open to anyone, so feel free to lurk in the channel or introduce yourself. For meeting times, as well as meeting notes from previous meetings, see http://meetings.jquery.org.
I started in jQuery UI when a previous employer switched to using jQuery UI from a another UI library (which I won’t name), and I instantly fell in love. The ease of performing complex tasks made the library a joy to work with.
Eventually, I wanted to do more. Learning and playing with jQuery and jQuery UI became my fun side project I worked on at home. I created a Stack Overflow account and started answering jQuery UI questions. (My username is tj-vantoll, if you’re curious.) As I learned more about the library, I decided I wanted to try to contribute code.
I found the bug tracker and tried to fix a few bugs, but I mostly failed. But I did start commenting on the tickets. Even if I couldn’t fix the bug, I’d comment on what I thought the problem was. I’d reduce the test case to show the least amount of code needed to recreate the problem. I did this a lot. And as I gained confidence and experience, I started to do more. Along with some other team members, we methodically went through each ticket open in the bug tracker. We found hundreds of bugs that were either duplicates or no longer relevant.
In the process, I found bugs that I could fix. I had learned the processes and had met a few of the team members. My first code contribution to jQuery UI was a patch to fix resizable dialogs in Opera 11; it was included in version 1.8.18. As I learned more about the code, I could tackle harder problems, such as complex bugs and new features.
My experience with jQuery UI has been invaluable. I’ve met many awesome people and traveled to amazing places. Seeing how the jQuery UI team works, and coding alongside them, made me a far better developer. Doors that were previously closed have opened. I’ve even had the opportunity to write a book!
18.118.31.67