Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
### Changed
## v0.3.0 - 7.12.2020
### Added
- Support for nested subcommands. Command paths now need to be passed as a list
instead of a tuple. This may also require an update to custom invokers, see
changes to `Nosedrum.Invoker.Split` for details.
### Fixed
- Prevent compiler warning about `@short_version` module attribute.
### Changed
- Return error tuples instead of creating error messages in the API.
Specifically, this means that for the following events, manual error checking
needs to be performed:
- Unknown subcommands - these return `{:error, {:unknown_subcommand, name,
:known, known_subcommands}}` from the invoker.
- Predicate permission check failures or error - these return `{:error,
:predicate, predicate_result}` from the invoker.
## 0.2.1 - 11.02.2019
### Changed
- Use hex version of Nostrum.
## 0.2.0 - 10.02.2019
### Added
- The `Nosedrum.Predicates` module, which includes the `has_permission/1`
and `guild_only/1` predicates and performs predicate evaluation in command
invokers.
- The `Nosedrum.MessageCache` behaviour, along with two implementations,
`Nosedrum.MessageCache.Agent` and `Nosedrum.MessageCache.ETS`.
- `Nosedrum.Helpers.quoted_split/1`.
- `Nosedrum.Storage.ETS` now supports the `:tid` call which returns the internal
ETS table identifier.
### Changed
- Command predicates are now evaluated lazily. This means that you can create
predicates which depend on previous predicates to evaluate as `:passthrough`,
for example, a permission predicate might want a `guild_only` predicate used
before.
- `Nosedrum.Storage` was updated to allow implementations to take a `reference`
that identifies which storage you want to access. In the case of
`Nosedrum.Storage.ETS`, you can use this to pass the ETS table reference.
- `Nosedrum.Invoker` now supports passing the storage process reference (or ETS
table name in case of `Nosedrum.Storage.ETS` for `handle_message`.
## 0.1.0 - 03.02.2019
Initial release.
<!-- vim: set textwidth=80 ts=2 sw=2: -->