Skip to content

Commit

Permalink
Merge branch 'v1.0.0' into test-subscribe-during-write
Browse files Browse the repository at this point in the history
  • Loading branch information
tonyvanriet authored Jan 30, 2024
2 parents 99b9beb + 5e42ff9 commit 830c871
Show file tree
Hide file tree
Showing 26 changed files with 323 additions and 665 deletions.
77 changes: 64 additions & 13 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,79 @@ on:
- v1.0.0
env:
MIX_ENV: test
ES_TARBALL: "ubuntu/EventStore-OSS-Linux-Ubuntu-18.04-v5.0.10.tar.gz"
ES_VERSION: 4

jobs:
graph_conn:
name: Build and test
ES-5:
name: ES 5.0.11
runs-on: ubuntu-latest
strategy:
matrix:
elixir: ['1.9.4', '1.10.4', '1.11.3']
erlang: ['22.3', '23.2']
elixir: ['1.11.4', '1.12.3']
erlang: ['22.3', '23.3', '24.1']

services:
es:
image: eventstore/eventstore:release-5.0.11
ports: ['1113:1113']
env:
EVENTSTORE_RUN_PROJECTIONS: "All"
EVENTSTORE_START_STANDARD_PROJECTIONS: "true"
EVENTSTORE_CLUSTER_SIZE: 1
EVENTSTORE_EXT_TCP_PORT: 1113
EVENTSTORE_INSECURE: "true"
EVENTSTORE_ENABLE_EXTERNAL_TCP: "true"

steps:
- uses: actions/checkout@v2
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.erlang }}
- name: Restore dependencies cache
uses: actions/cache@v2
with:
path: deps
key: ${{ runner.os }}-deps-${{ matrix.elixir }}-${{ matrix.erlang }}-${{ hashFiles('mix.lock') }}
restore-keys: ${{ runner.os }}-deps-${{ matrix.elixir }}-${{ matrix.erlang }}-
- name: Install dependencies
run: mix deps.get
- name: Restore builds cache
uses: actions/cache@v2
with:
path: _build/test
key: ${{ runner.os }}-build_test-${{ matrix.elixir }}-${{ matrix.erlang }}-${{ hashFiles('mix.lock') }}
restore-keys: ${{ runner.os }}-build_test-${{ matrix.elixir }}-${{ matrix.erlang }}-
- name: Check warnings
run: mix compile --warnings-as-errors --force
- name: Run tests
run: mix test --cover

ES-21:
name: ES 21.6.0
runs-on: ubuntu-latest
strategy:
matrix:
elixir: ['1.12.3']
erlang: ['24.1']

services:
es:
image: eventstore/eventstore:21.6.0-buster-slim
ports: ['1113:1113']
env:
EVENTSTORE_RUN_PROJECTIONS: "All"
EVENTSTORE_START_STANDARD_PROJECTIONS: "true"
EVENTSTORE_CLUSTER_SIZE: 1
EVENTSTORE_EXT_TCP_PORT: 1113
EVENTSTORE_INSECURE: "true"
EVENTSTORE_ENABLE_EXTERNAL_TCP: "true"

steps:
- uses: actions/checkout@v2
- name: Set up Elixir
uses: erlef/setup-elixir@v1
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.erlang }}
Expand All @@ -45,11 +102,5 @@ jobs:
run: mix compile --warnings-as-errors --force
- name: Check formatting
run: mix format --check-formatted
- name: Prepare EventStore
run: |
wget https://raw.githubusercontent.com/EventStore/Downloads/master/${ES_TARBALL}
tar xzvf EventStore*.tar.gz
rm EventStore*.tar.gz
cd EventStore* && ./run-node.sh --run-projections=all --start-standard-projections=true --mem-db 2>&1> eventstore.log &
- name: Run tests
run: mix test --cover
run: mix test --cover --exclude=authentication
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,5 @@ extra-*.tar

# asdf settings
.tool-versions*

/volumes/
29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

122 changes: 75 additions & 47 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,95 +1,123 @@
# Changelog for extreme v1.0.4

- Listener.process_push callback can return `:stop`, meaning subscription should be stopped
and pushes that are already in mailbox should be purged.

# Changelog for extreme v1.0.3

- Add subscribe/unsubscribe and auto_subscribe? option for starting `Extreme.Listener`

# Changelog for extreme v1.0.0-beta2
* Restart all subscriptions and subscribers/listeners when connection receives :tcp_closed

- Restart all subscriptions and subscribers/listeners when connection receives :tcp_closed

# Changelog for extreme v0.13.1
* Dependency version upgrades

- Dependency version upgrades

# Changelog for extreme v0.13.0
* Support Elixir 1.7.0 and OTP 21.0
* Listener reads events in chunks of 500 events (instead of 4096)


- Support Elixir 1.7.0 and OTP 21.0
- Listener reads events in chunks of 500 events (instead of 4096)

# Changelog for extreme v0.11.0
* Added support for EventStore 4


- Added support for EventStore 4

# Changelog for extreme v0.10.4
* Fixed issue with concurrent read and write where messages get stuck into extreme process state


- Fixed issue with concurrent read and write where messages get stuck into extreme process state

# Changelog for extreme v0.10.3
* Extreme.Listener - if get_last_event/1 returns `:from_now`, catching events will start from current event

- Extreme.Listener - if get_last_event/1 returns `:from_now`, catching events will start from current event

# Changelog for Extreme v0.10.2
* Fix end of patching in Listener

- Fix end of patching in Listener

# Changelog for Extreme v0.10.1
* Dependecy upgrades
* Tested with Elixir 1.5.2 and OTP 20.1

- Dependecy upgrades
- Tested with Elixir 1.5.2 and OTP 20.1

# Changelog for Extreme v0.9.2
* Added support for nacking messages from persistent connections (thanks to [@nathanfox](https://github.com/nathanfox))

- Added support for nacking messages from persistent connections (thanks to [@nathanfox](https://github.com/nathanfox))

# Changelog for Extreme v0.9.1
* Support persistent subscriptions on projection streams (e.g. `$ce-category`)

- Support persistent subscriptions on projection streams (e.g. `$ce-category`)

# Changelog for Extreme v0.9.0
* Added support for persistent connections (thanks to [@slashdotdash](https://github.com/slashdotdash))
* BREAKING CHANGE: Module `Extreme.Messages` is renamed to `Extreme.Msg`

- Added support for persistent connections (thanks to [@slashdotdash](https://github.com/slashdotdash))
- BREAKING CHANGE: Module `Extreme.Messages` is renamed to `Extreme.Msg`

# Changelog for Extreme v0.8.1
* Added pause, resume and patch functionalities for Extreme.Listener

- Added pause, resume and patch functionalities for Extreme.Listener

# Changelog for Extreme v0.8.0
* Tested with Elixir 1.4.0 with fixed warnings
* Listener won't crash if ES is down. It will try to reconnect each 1sec instead of immediately
* Extreme.Listener.caught_up/0 callback is public now
* Bumped up all dependency versions

- Tested with Elixir 1.4.0 with fixed warnings
- Listener won't crash if ES is down. It will try to reconnect each 1sec instead of immediately
- Extreme.Listener.caught_up/0 callback is public now
- Bumped up all dependency versions

# Changelog for Extreme v0.7.1
* When connecting to ES cluster choose mode :write (default) to prefer Master over Slave or :read for opposite

- When connecting to ES cluster choose mode :write (default) to prefer Master over Slave or :read for opposite

# Changelog for Extreme v0.7.0
* When read_and_stay_subscribed/7 function is called, :caught_up message is sent to subscriber after existing events
are read (or if there were no events) and before new events arrive. This is sign to your listener that you are
up-to-date. If you don't have catch all handle_info/2 in your receiver this is breaking change!

- When read_and_stay_subscribed/7 function is called, :caught_up message is sent to subscriber after existing events
are read (or if there were no events) and before new events arrive. This is sign to your listener that you are
up-to-date. If you don't have catch all handle_info/2 in your receiver this is breaking change!

# Changelog for Extreme v0.6.2
* Added Extreme.FanoutListener
* Added inline documentation

- Added Extreme.FanoutListener
- Added inline documentation

# Changelog for Extreme v0.6.1
* Removed PersistentSubscription related proto messages since when compiled
they generate files longer then 100 characters and as such release can't be built

- Removed PersistentSubscription related proto messages since when compiled
they generate files longer then 100 characters and as such release can't be built

# Changelog for Extreme v0.6.0
* Added Extreme.Listener

- Added Extreme.Listener

# Changelog for Extreme v0.5.5
* Removed PersistentSubscription related proto messages since when compiled
they generate files longer then 100 characters and as such release can't be built

- Removed PersistentSubscription related proto messages since when compiled
they generate files longer then 100 characters and as such release can't be built

# Changelog for Extreme v0.5.4
* Read events backward (see example in test file)
* Some code cleanup and proto file updated (thanks to @mindreframer)
* Tested with Elixir 1.3.2 and EventStore 3.9.0

- Read events backward (see example in test file)
- Some code cleanup and proto file updated (thanks to @mindreframer)
- Tested with Elixir 1.3.2 and EventStore 3.9.0

# Changelog for Extreme v0.5.3
* Tested with Elixir 1.3.2 and EventStore 3.6.2

- Tested with Elixir 1.3.2 and EventStore 3.6.2

# Changelog for Extreme v0.5.2
* Minor improvements
* Upgraded depencey versions
* Tested with Elixir 1.3.0 and EventStore 3.6.2

- Minor improvements
- Upgraded depencey versions
- Tested with Elixir 1.3.0 and EventStore 3.6.2

# Changelog for Extreme v0.5.1

* Stop Extreme process when tcp is closed by EventStore
* Adding Dns cluster connection support for configuration
* Tested with Elixir 1.2.5 and EventStore 3.5.0

- Stop Extreme process when tcp is closed by EventStore
- Adding Dns cluster connection support for configuration
- Tested with Elixir 1.2.5 and EventStore 3.5.0

# Changelog for Extreme v0.5.0

* You can subscribe to non-existing stream now with subscribe_to/4 and read_and_stay_subscribed/7 functions. If you do such thing however, you'll be sent message {:extreme, severity, problem, stream}. If you don't have catch all handle_info/2 in your receiver this is breaking change.
* More tests added
* Tested with Elixir 1.2.3 and EventStore 3.4.0
- You can subscribe to non-existing stream now with subscribe_to/4 and read_and_stay_subscribed/7 functions. If you do such thing however, you'll be sent message {:extreme, severity, problem, stream}. If you don't have catch all handle_info/2 in your receiver this is breaking change.
- More tests added
- Tested with Elixir 1.2.3 and EventStore 3.4.0
Loading

0 comments on commit 830c871

Please sign in to comment.