Self Evaluation

From BITPlan mediawiki-japi Wiki
Jump to: navigation, search

Mediawiki-Japi is a Java framework, intended to make it easy to write Java bots that interact with the MediaWiki API. It handles

  • login/logout
  • cookies
  • query continuations N
  • and tokens,

and has a range of helper methods for common tasks as well as for basic interaction with the MediaWiki API. N

Particularly notable or useful features of Mediawiki-Japi include:

  • Designed and implemented on the basis of the API schema
  • Solid codebase and a good set of features
  • Has frequently updated unit and integration tests
  • A responsive and helpful maintainer

Easy to install

Installation instructions are correct and easy to find

YesY

Library is packaged for installation through appropriate package library (PyPI, CPAN, npm, Maven, rubygems, etc.)

YesY Maven Central

Platinum standard: library is packaged for and made available through Linux distributions

N It is unusual to ship Java packages with Linux distributions.

Easy to understand

Well designed--makes all intended API calls available with the intended level of abstraction with no redundancies

YesY Stays 1:1 to message Schema. Each node is represented with the appropriate Java equivalent e.g. Api/Query/Error ...

Platinum standard: makes the Wikidata API available

N

Well documented
  • Code is commented and readable
YesY
  • Documentation is comprehensive, accurate, and easy to find
YesY Wiki page with example per function.
  • Deprecated functions are clearly marked as such
Yellow check.svg
  • Platinum standard: Documentation is understandable by a novice programmer
Yellow check.svg tutorial planned
Code uses idioms appropriate to the language the library is written in

YesY Adequately written Java.

Easy to use

Has functioning, simple, and well-written code samples for common tasks
  • Demonstrates queries
YesY
  • Demonstrates edits
Yellow check.svg
Handles API complications or idiosyncrasies so the user doesn't have to
  • Login/logout
YesY
  • Cookies
YesY
  • Tokens
YesY
  • Query continuations
Yellow check.svg Need to use the new continue parameter for newer versions of the API.
  • Requests via https, including certificate validation
Yellow check.svg Need issue.
Courteous API usage is promoted through code samples and smart defaults
  • gzip compression is used by default
Yellow check.svg See tests (HttpBotTest and HttpActionClientTest) that proves that gzip is the default of jwbf for what needs to be done.
Yellow check.svg
  • Platinum standard: generates a unique user-agent string given name/email address/repository location
Yellow check.svg see - user-agent header is provided but not configurable and documented yet
  • Efficient usage of API calls
Yellow check.svg needs to be worked on
Can be used with the most recent stable version of the language it is written in (e.g. Python 3 compatible)

YesY

Easy to debug

Contains unit tests for the longest and most frequently modified functions in the library

Yellow check.svg

Platinum standard: Unit tests for many code paths exist and are maintained

Yellow check.svg The framework has integration tests as well.

Terrible hacks/instances of extreme cleverness are clearly marked as such in comments

YesY Comments include FIXMEs

Documentation links to the relevant section/subpage of the API documentation

YesY Consistently - examples are organized as the API documentation is

Easy to improve

Library maintainers are responsive and courteous, and foster a thoughtful and inclusive community of developers and users

YesY Maintainer is actively involved and helpful.

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

Yellow check.svg

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

none submitted

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

Yellow check.svg There is usually a response within 1 week.

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

n/a

Platinum standard: library maintainers contact MediaWiki API maintainers with feedback on the API's design and function

Yellow check.svg contact attempts done e.g. with MER-C

Library specifies the license it is released under

YesY Apache 2.0

Suggested TODOs

Code-related
Process-related

The gold standard needs to be met to be listed on API:Client code.