# Change log
## 1.0.0-TODO
The distant future; these features are out of scope for v0.x:
* Discover APIs (and warn that this should be configured? cache?), generate matching client.
* Wikimedia Commons media commands.
* Clients for some of the many other Wikimedia [REST
API](https://www.mediawiki.org/wiki/REST_API )s beyond core, served through
RESTBase. See [issue #2](https://gitlab.com/adamwight/mediawiki_client_ex/-/issues/2).
* Demonstrate a cross-wiki API call (CentralAuth).
* Dump-processing interface for the archives served on
https://dumps.wikimedia.org/ — might be blocked by the unavailability of bzip2
and 7zip bindings for Erlang or Elixir.
* meter how many calls are made, when, and bandwidth used.
* Wikidata Query Service
## 0.6.0-TODO
Holding place for everything needed to finish the 0.x series. The focus is on a few robust, core apis.
What it should already include:
* Detect server and network errors, fail fast. Show helpful API debugging in dev environment. Demonstrate how to call with error handling.
* Longer, configurable default timeouts to match servers. (#18)
* Use atoms for selecting known server-side event streams. Similarly, for
some of the action API?
* Convenient logging—a global setting to inject the logging middleware into all client plugs.
* ...
## 0.5.0-TODO
This is the development target and next steps.
* Show how to integrate with the MediaWiki OAuth2 provider (to be published), to authenticate actions on behalf of a user.
* Built-in Mediawiki [REST API](https://www.mediawiki.org/wiki/API:REST_API)
* ...
## 0.4.1-TODO
Small changes in progress...
* ...
## 0.4.0 (Sep 2022)
Breaking changes:
* Config variables are deprecated, all customization is done via keyword options.
Other:
* `mix test.all` task replaces git_hooks for development.
* ...
## 0.3.1 (Sep 2022)
Breaking changes:
* Wiki.Site renamed to Wiki.SiteMatrix and has an updated interface. `new()` returns an opaque sitematrix.
* Settle on the Apache 2 license (bug #21).
Other:
* Wiki.SiteMatrix caches the response.
## 0.3.0 (Dec 2021)
Breaking changes:
* Switched most of the API to return `{:ok | :error, ...}` tuples. For quick migration just use the bang functions like `get!`. Or match `{:ok, result}` for fine-grained error handling. Errors will be returned as exception objects, with a crude string message for now. In a future release these will include a reason atom.
## 0.2.6 (Dec 2021)
Breaking changes:
* Renamed the package from `wiki_elixir` to `mediawiki_client`.
`mix.exs` dependencies must be updated.
* OTP app name in configuration must also be changed from `wiki_elixir` to `mediawiki_client`.
* The package namespace is still `Wiki.`-, because I honor your labors, noble reader.
## 0.2.5 (Nov 2021)
New features:
* `Wiki.Site` module for retrieving the Wikimedia site matrix.
* You may migrate `Wiki.Action.new()` calls to accept a `Wiki.Site` object,
which will be used to calculate the default endpoint.
## 0.2.2 (Nov 2021)
* Depend on eventsource_ex library, testability improvements have been upstreamed.
* Continuous tests verify compatibility with Elixir 1.9-1.12 .
* User-agent header sends correct library version.
* Drop unused dependencies.
## 0.2.1 (May 2021)
Breaking changes:
* Request query parameters are passed as a keyword list rather than a map.
* Handles application-level API errors in the action and ores apis, failing fast.
Other:
* Complete test coverage for both happy and sad cases.
* Remove unused `Timex` dependency.
* Allow literal "|" in parameters by switching the delimiter to "unit separator".
* Default to action response format version 2.
## 0.1.4 (May 2020)
* Fix application configuration bug, nothing worked out of the box.
* Fix a continuation bug which would drop the first response.
* Removed the incomplete `Wiki.Rest` client.
* Some test coverage for `Wiki.Action`.
* Add lint jobs to git hook and GitLab CI.
## 0.1.2 (May 2020)
* Rename WikiAction -> `Wiki.Action`
* Rename WikiRest -> `Wiki.Rest`
* Rename WikiSSE -> `Wiki.EventStreams`
* Basic ORES client.
* Inline examples as module documentation.
* Pipe-join list values for Action API.
* Accumulate Action results.
## 0.1.1 (May 2020)
* Send User-Agent header.
* Action API and continuations. Authentication, session cookies.
* Pipelining.
* Flexible endpoint.
* Server-side events relayed as a `Stream`.
* Simplify and package examples as scripts.
* Begin work on REST API.
* Host code on GitLab, apply the most basic CI.
* Temporarily inline the [cwc/eventsource_ex](https://github.com/cwc/eventsource_ex/)
server-side events library as a workaround.
* Switch to Tesla HTTP client.
## 0.1.0 (May 2019)
* Initial release.