Self Evaluation

Wolfgang Fahl

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[edit]

Installation instructions are correct and easy to find


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[edit]

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


Well documented
  • Code is commented and readable
  • 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[edit]

Has functioning, simple, and well-written code samples for common tasks
  • Demonstrates queries
  • Demonstrates edits
Yellow check.svg
Handles API complications or idiosyncrasies so the user doesn't have to
  • Login/logout
  • Cookies
  • Tokens
  • 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)


Easy to debug[edit]

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[edit]

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


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[edit]


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

🖨 🚪