HTML::ParseBrowser rides again
When writing a review of CPAN modules I have a rule that if I come across an issue, I have to do my best to see it resolved. My process for this is something like:
- Report the bug, e.g. on RT
- Have a look at the code, and if I can see how to fix it, mention that in the bug report.
- If I don't get a response, and I can find the module on github, then I'll fork the module and fix the bug.
- Update the ticket in RT with a reference to the github repo.
- Now I've got a repo I'm much more likely to fix typos in documentation and very minor issues.
- If still no response, I'll email the author and offer to do a release.
- If still no response, then it looks like I'll go the route of trying to get co-maint from the PAUSE admins.
- Now I'm feeling a bit more committed, if there are any other bugs outstanding, I'll try and fix all those.
- If I'm still not getting a response from the author or current maintainer(s), I'll email module-authors, and sometimes the modules list, asking if anyone knows how I can contact them.
- I'll try and track the author down on LinkedIn, and 10 minutes with google.
- Once a month or more has passed, I'll request co-maint from the PAUSE admins, outlining how I've got to this point.
As a result of the User-Agent modules review I've currently adopted two modules reviewed. The first was HTTP::Headers::UserAgent, which I adopted so I could change the word depreciated to deprecated (I'm anal like that, as you know), and to update the doc with pointers to the good modules to use. I ended up fixing some bugs and increasing the testsuite's coverage. My plan is to eventually retire the module from CPAN, and I made that clear when contacting the previous maintainers.
More recently I adopted HTML::ParseBrowser, as there still wasn't a module which met all of my original needs. It had previously scored quite poorly: it was the slowest, and didn't have very good coverage.
An evening learning to use Devel::NYTProf sorted out the run time, and then I used my test corpus from writing the review to improve coverage. As a result the module is probably the one to use, unless you want to identify robots.
The next step: I've started working with Olaf Alders (amongst other things the current maintainer of HTTP::BrowserDetect) on defining what a truly complete solution should be, so we can work on a rollup.