Great feedback on this poll!
A couple I haven't seen mentioned:
- Track record of backwards compatibility: Does the author have a history of keeping existing things stable from release to release, or are previous pieces of functionality continuously changed for no seemingly apparent reason (and without a reasonable amount of time with notices of deprecation or mods that will definitely break stuff)? (ie. will I have to frequently update my distributions due to frequent changes to the dependency)
- A good Changes file. Clear, concise (point-form, not overly verbose) information from version to version, possibly including references to tickets etc
- A *quality* test suite. I can write a 50,000 test test-suite, but how many of those tests are of decent quality? Can I read through tests for example code snips if necessary? Is the suite well laid out with informative file names?
- Test history... does the distribution have a poor failure rate across several releases?
- Does the code unnecessarily piss all over my namespace(s)?
- Does the code blatantly do ridiculous magic for no apparent reason that could cause me hard-to-identify bugs later on down the road?
There are several more that I can't think of right now. Note that some of the above I'm going a bit overboard on... I don't read through every line of code before deciding to use a module. I do however have a reasonable glance to check for consistency, blatantly obvious weirdness, naming of various items (ie. names like sub_a(), sub_b(), my $var1, $var2 etc are red flags) etc