Skip to content

0.9.0-alpha2

Pre-release
Pre-release
Compare
Choose a tag to compare
@jchristgit jchristgit released this 09 Jun 20:23
· 319 commits to master since this release
v0.9.0-alpha2
88961b1

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 with GuildCache.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).
  • 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.

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.

Internal changes