Current section

Files

Jump to
extreme README.md
Raw

README.md

# Extreme

[![Build Status](https://github.com/exponentially/extreme/actions/workflows/test.yml/badge.svg)](https://github.com/exponentially/extreme/actions/workflows/test.yml)
[![Hex version](https://img.shields.io/hexpm/v/extreme.svg "Hex version")](https://hex.pm/packages/extreme)
[![InchCI](https://inch-ci.org/github/exponentially/extreme.svg?branch=v1.0.0)](https://inch-ci.org/github/exponentially/extreme)
[![Coverage Status](https://coveralls.io/repos/github/exponentially/extreme/badge.svg?branch=v1.0.0)](https://coveralls.io/github/exponentially/extreme?branch=v1.0.0)


Erlang/Elixir TCP client for [Event Store](http://geteventstore.com/).

This version is tested with EventStore 5.0.11 and 21.10.5, Elixir 1.18 - 1.20 and Erlang/OTP 25 - 29.
It requires Elixir 1.16 or later.

EventStore messages (`Extreme.Messages.*`) are generated by [protobuf](https://hex.pm/packages/protobuf)
from `include/event_store.proto`; regenerate them with `scripts/gen_messages.sh`.

Documentation is TBD

## Releasing

1. On a branch, bump `version` in `mix.exs` and make sure the top CHANGELOG heading is the new
   version (`# vX.Y.Z`); merge the PR into `v1.0.0`.
2. Publish a GitHub Release whose new tag is the bare version (`X.Y.Z`, no `v`) targeting `v1.0.0`,
   e.g. `gh release create X.Y.Z --target v1.0.0`.
3. The release workflow checks that the tag matches `mix.exs` and is on `v1.0.0`, runs the format,
   warnings and test checks against EventStore 21.10.5, and publishes the package and docs to hex.
   It needs the repository secret `HEX_API_KEY`, a hex key scoped to the `extreme` package.
   Prereleases are not published until promoted.