0.9.0-alpha2
Pre-release
Pre-release
jchristgit
released this
09 Jun 20:23
·
319 commits
to master
since this release
Welcome to nostrum 0.9.0, codenamed "T - 5".
Breaking changes
The following functions, deprecated in nostrum 0.8, have been removed:
GuildCache.all/0
GuildCache.select_by/1
GuildCache.select/2
along withGuildCache.select!/2
Deprecations
Features
- nostrum now ships an
.appup
file to allow upgrading it in environments
requiring hot code upgrade.- The code_change/3-4 callbacks have been introduced to support this.
- The ratelimiter has been turnt into a state machine, yielding the following
benefits:- Requests are now automatically dispatched as soon as possible, and no longer
block the ratelimiter from running other requests. - The client need not concern itself with retrying later anymore, the
ratelimiter will queue them up and schedule them when it can. - Every response is delivered incrementally in chunks, preventing blocking the
ratelimiter there as well. - If the ratelimiter's connection to the API goes down, clients are informed
that their requests went bust via the{:error, {:connection_died, reason}}
return. - Tracing the ratelimiter's inner doings is now straightforward via
:sys.trace(Nostrum.Api.Ratelimiter, true)
.
- Requests are now automatically dispatched as soon as possible, and no longer
- The shard session has been turnt into a state machine, yielding the following
benefits:- Instead of retrying indefinitely on connection issues, the new shard session
will provide more direct errors on network failure.
- Instead of retrying indefinitely on connection issues, the new shard session
Fixes
Documentation
- Document hot code upgrades via nostrum's
.appup
files. - Document optional contribution of appup changes.
- Remove default handle_event.
use Nostrum.Consumer
manages this now.