Volunteer opportunity finder: bug importer rewrite complete
The OpenHatch volunteer opportunity finder helps connect people with tasks in free software by letting users browse bugs in open source projects. The promise has been that, daily, we download fresh tasks from projects’ bug trackers and let visitors browse them by difficulty, programming language, or kind of contribution. I’m thrilled to report that we’ve concluded a rewrite to the code underneath it.
For those interested in history, this is version four of the code. The first version was a one-off Python script that could download bug data from projects on Launchpad.net. It grew into version two, a big collection of Django and scraping code that ran through celery, parallelized with the Python multiprocessing library. Version two and a half was the same code, reconfigured operate without celery. Version three was a rewrite with asynchronous networking through Twisted, kicked off by Jack Grigg. However, we identified a few architectural problems and I personally didn’t have the Twisted chops to fix them the way I wanted to. Version four, the current edition, owes its beginnings to Berry Phillips at the PyCon 2012 sprints. It uses the fantastic scrapy library which itself uses Twisted behind the scenes.
I’ve personally learned a lot participating in all these versions. Technical readers might want to read the oh-bugimporters documentation or check out the code. The key change we’ve made in this edition is factoring oh-bugimporters out into an entirely separate package from oh-mainline, where the web app lives.
For everyone, if you have an open source project you want to see on /search/, here’s how you do it:
- Add your project to your personal OpenHatch profile by indicating you’re a contributor. You’ll have to log in to do that.
- Click on the project link, from your profile, to find the corresponding project page. An example: The Little Registry Cleaner.
- Scroll to the bottom and find these words: “No volunteer opportunities…indexed yet.” Right next to that, you’ll see a link labeled, “Add a bug tracker.” Click that.
- Follow the steps for your project’s bug tracker type, be it Bugzilla, Trac, Roundup, Launchpad, Github, or Google Code.
I want to thank all the people who’ve contributed to this part of the codebase: Adrian Ancona, Asheesh Laroia, Berry Phillips, Jack Grigg, Jacquie Flemming, Jason Michalski, John Morrissey, Karen Rustad, Mark Holmquist, Parker Phinney, Raphael Krut-Landau, Sharadha Ramakrishnan, and Will Kahn-Greene. Special thanks to John Morrissey and Karen Rustad for their recent code reviews.
The new framework makes it easy to add support for new bug tracker types, such as Jira, that have been requested by users. If you want to contribute, that’s a great way to jump in!
And if you’ve used the bug importer or the volunteer opportunity finder, I’d love to hear what you think and see what we should refine next.