diff --git a/CHANGELOG.md b/CHANGELOG.md index 56021a6a785b..3c8e001ed3f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,54 @@ +# 0.3.0 + +New features: +- Custom arbitrary data associated with commands via custom_data command attribute and Command struct field +- Make it easier to run a custom event loop by exposing important setup functions + - `set_qualified_names()` + - `insert_owners_from_http()` + - This code is run under the hood in the framework setup code and is now accessible to custom event loops too +- The time crate can now be used in place of chrono (#83) +- You can now use the `check` command attribute multiple times to add multiple checks +- Support for Discord's localization API (#82) +- `Framework::client()` method to get the underlying `serenity::Client` + +API updates: +- `Framework::shard_manager()` now returns `&Arc` instead of `Arc` +- `Context::author_member()` return type changed from `Member` to `Cow<'_, Member>` to avoid needless cloning (#81) + - Use `.into_owned()` to convert `Cow<'_, Member>` back to `Member` +- `fn message(self) -> Message` method on ReplyHandle split into `fn message(&self) -> Cow<'_, Message>` and `fn into_message(self) -> Message` (#84) + - Reduces cloning if you just need a reference to the message + - Allows using the ReplyHandle after retrieving the message +- `Framework::build()` renamed to `Framework::builder()` (#96) +- `Framework::start_with()` now takes `impl FnOnce` instead of `fn` + - To be usable with with `serenity::Client`'s `start_shard`, `start_shard_range`, and `start_shards` methods +- Removed `serenity` re-export at crate root (`serenity_prelude` still exists!) + +Behavior changes: +- Fix identifying_name command attribute not being applied +- Built-in register commands now report command count correctly + - Prefix-only commands aren't included anymore +- `ReplyHandle::edit()` now keeps parts of the message as before if not specified +- Fix number autocomplete (was completely borked) +- Code block parsing is now more precise + - With \`\`\`textwithspecialcharacters, textwithspecialcharacters is no longer recognized as the programming language, but as part of the code (mirroring Discord's behavior) +- `ReplyHandle::edit()` now works on ephemeral followup responses + +Detailed changelog: https://github.com/kangalioo/poise/compare/v0.2.2...v0.3.0 + +# 0.2.2 + +Behavior changes: +- `default_member_permissions` fixed to not constrain commands to administrators by default + +Detailed changelog: https://github.com/kangalioo/poise/compare/v0.2.1...v0.2.2 + # 0.2.1 Behavior changes: - Bot ID is retrieved from first Ready event again instead of extracted from the token. Extracting the bot ID from the bot token often didn't work and caused breakage for many users. This should now be fixed +https://github.com/kangalioo/poise/compare/v0.2.0...v0.2.1 + # 0.2.0 New features: @@ -30,6 +76,8 @@ Behavior changes: - Compile times should be faster through less monomorphization bloat - Attachments in initial responses are supported now +Detailed changelog: https://github.com/kangalioo/poise/compare/v0.1.0...v0.2.0 + # 0.1.0 Initial crates.io release diff --git a/Cargo.lock b/Cargo.lock index be1693ccdd21..801145383124 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -776,7 +776,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "poise" -version = "0.2.1" +version = "0.3.0" dependencies = [ "async-trait", "derivative", @@ -798,7 +798,7 @@ dependencies = [ [[package]] name = "poise_macros" -version = "0.2.1" +version = "0.3.0" dependencies = [ "darling", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index e567ec108070..91eb468fea86 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ authors = ["kangalioo "] edition = "2018" name = "poise" -version = "0.2.1" +version = "0.3.0" description = "A Discord bot framework for serenity" license = "MIT" repository = "https://github.com/kangalioo/poise/" @@ -12,7 +12,7 @@ tokio = { version = "1.4.0", default-features = false } # for async in general futures-core = { version = "0.3.13", default-features = false } # for async in general futures-util = { version = "0.3.13", default-features = false } # for async in general once_cell = { version = "1.7.2", default-features = false, features = ["std"] } # to store and set user data -poise_macros = { path = "macros", version = "0.2.1" } # remember to update the version on changes! +poise_macros = { path = "macros", version = "0.3.0" } # remember to update the version on changes! async-trait = { version = "0.1.48", default-features = false } # various traits regex = { version = "1.5.4", default-features = false, features = ["std"] } # prefix log = { version = "0.4.14", default-features = false } # warning about weird state diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 7d23f633c9e1..23a63e9b4320 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poise_macros" -version = "0.2.1" # remember to update the version +version = "0.3.0" # remember to update the version authors = ["kangalioo "] edition = "2018" description = "Internal macro implementation crate of poise"