# Tux Changelog
## v0.4.0 – June 2024
* Include dispatcher preloads in the final command preloads.
* Refactor and improve `Tux.Dispatcher`.
* Rename Tux.Error `:exit_code` to `:exitcode`.
* Rename `Tux.Explainable` protocol to `Tux.Alertable`.
* Replace demo example with recon.
* Rename Tux.Quick `module` macro to `program`.
* Remove `:warn` type from the `Tux.Result`.
* Add `Tux.Exit` module for controlling exits.
* Move all errors in the `Tux.Errors` module.
* Remove `Tux.Commands.NotImplemented`.
* Show both choices when using `Prompt.for_confirmation`.
* Emit `ConfigReadError` and `ConfigWriteError` on bang config functions.
* Add new dispatcher option `:exitwith` with possible values `:halt` or `:stop`.
* Exit with non-zero status when command modules return errors.
## v0.3.5 – February 2024
* Update `pre` macro to accept a single command.
* Add compile-time checks for conflicting command names.
* Add `cmd` support for prefixed commands via `sigil_p`.
## v0.3.0 – January 2024
* Update the `cmd` macro to allow registration of multiple names for a command:
e.g. `cmd ~w(name another_name), CmdModule`.
* Add support for cumulative preloads when using nested dispatchers,
by merging preloads down the command hierarchy.
* Rename the command module callback from `info/0` to `about/0`
* Add `Tux.Commands.NotImplemented`, which can be used as a
placeholder command module when one hasn't been implemented yet.
* Add the `pre/2` macro to simplify the registration of commands
with common preloads.
## v0.2.0 – December 2023
* Add `Tux.Init`, `Tux.Exec` & `Tux.Show` as separate stages in a command life cycle
* Add `Tux.Env` struct for storing preloads returns and command context
* Add `Tux.Colors` for writing colored output
* Add `Tux.Prompt` for user prompting (ints, floats, strings) and confirmations
* Add `Tux.Config` for reading and writing simple `key = value` config files
* Add `Tux.Explainable` protocol as a source for alerts
* Add `Tux.Alert` for displaying warnings and errors
* Add `Tux.Error` for creating displayable errors
* Add `Tux.Help` for creating help messages
* Add `Tux.Result` for validating returns of commands
* Add `Tux.Command` for creating command modules
* Add `Tux.Dispatcher` for creating dispatcher modules and registering
command modules with `cmd/3` macro.
## v0.1.0
* Initial commit