API:Client code/Evaluations/MediaWiki-API

Small and low-level Perl API client library. http://search.cpan.org/~exobuzz/MediaWiki-API-0.39/lib/MediaWiki/API.pm https://github.com/gitpan/MediaWiki-API

Easy to install

 * Installation instructions are correct and easy to find

Packaged for installation through CPAN. Packaged for Debian: https://packages.debian.org/squeeze/libmediawiki-api-perl
 * Library is packaged for installation through appropriate package library (PyPI, CPAN, npm, Maven, rubygems, etc.)
 * Platinum standard: library is packaged for and made available through Linux distributions

Easy to understand
Low level module, makes all calls accessible and also has helper methods to facilitate login, tokens, etc.
 * Well designed--makes all intended API calls available with the intended level of abstraction with no redundancies
 * Platinum standard: makes the Wikidata API available

Code has exceptionally useful comments that make the code even more readable. Docs are up on CPAN. n/a Module uses  and   and is generally written in clear, idiomatic Perl.
 * Well documented:
 * Code is commented and readable
 * Documentation is comprehensive, accurate, and easy to find
 * Deprecated functions are clearly marked as such
 * Platinum standard: Documentation is understandable by a novice programmer
 * Code uses idioms appropriate to the language the library is written in

Easy to use

 * Has functioning, simple, and well-written code samples for common tasks
 * Demonstrates queries


 * Demonstrates edits


 * Handles API complications or idiosyncrasies so the user doesn't have to:
 * Login/logout


 * Cookies


 * Tokens


 * Query continuations


 * Requests via https, including certificate validation
 * Courteous API usage is promoted through code samples and smart defaults
 * gzip compression is used by default


 * Examples show how to create and use a meaningful and unique user-agent header (as in https://meta.wikimedia.org/wiki/User-agent_policy)


 * Platinum standard: generates a unique user-agent string given name/email address/repository location


 * Efficient usage of API calls
 * MediaWiki::API is quite low-level but it still retrieves as many parameters at once as possible


 * Can be used with the most recent stable version of the language it is written in (e.g. Python 3 compatible)

Easy to debug
There are only tests for documentation coverage.
 * Contains unit tests for the longest and most frequently modified functions in the library
 * Platinum standard: Unit tests for many code paths exist and are maintained

n/a; well done.
 * Terrible hacks/instances of extreme cleverness are clearly marked as such in comments
 * Documentation links to the relevant section/subpage of the API documentation

Easy to improve
Reached out to let me know that the library was not abandoned, but there are also some leftover bug reports from 2012.
 * Library maintainers are responsive and courteous, and foster a thoughtful and inclusive community of developers and users
 * Platinum standard: Project sets clear expectations for conduct for spaces where project-related interactions occur (mailing list, IRC, repository, issue tracker). It should:
 * State desired attitudes and behaviors
 * Provide examples of unwelcome and harassing behavior
 * Specify how these expectations will be enforced


 * Pull requests are either accepted or rejected with reason within 3 weeks (Platinum standard: 3 business days)


 * Issues/bugs are responded to in some manner within 3 weeks (Platinum standard: 3 business days) (but not necessarily fixed)

n/a
 * The library is updated and a new version is released within 3 weeks (Platinum standard: 3 business days) when breaking changes are made to the API
 * Platinum standard: library maintainers contact MediaWiki API maintainers with feedback on the API's design and function

GPL 3
 * Library specifies the license it is released under