Skip to content

Releases: serenity-rs/serenity

v0.11.2

08 May 15:30
502fc8d
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Added

Changed

Fixed

Removed

v0.11.1

18 Apr 21:04
Compare
Choose a tag to compare

This is a light release to fix compilation on https://docs.rs.

Thanks to the following for their contributions:

Changed

v0.11.0

18 Apr 20:27
4fc1b37
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Added

  • [ci] Add build job to test the native-tls backend ([@nickelc]) [c:440f0fa]
  • [model] Add new command data field guild_id ([@nickelc]) [c:4dbf3d0]
  • [model] Add new "Directory" channel type ([@nickelc]) [c:3b99eeb]
  • [utils] Add users argument to utils::content_safe ([@GnomedDev]) [c:c18e889]
  • [model] Add attachment support to interaction responses ([@GnomedDev]) [c:dc400de]
  • [model] Add new audit change variant for image_hash key ([@nickelc]) [c:985212a]
  • [misc] Add .git-blame-ignore-revs file ([@nickelc]) [c:3a3e399]
  • [builder] Add function to CreateInteractionResponseData to set or unset the ephemeral flag ([@pascalharp]) [c:283af98]
  • [model] Add method to create model::Timestamp from a UNIX timestamp ([@nickelc]) [c:66f8be7]
  • [model] Add new message flag FAILED_TO_MENTION_SOME_ROLES_IN_THREAD ([@nickelc]) [c:a75ac69]
  • [model] Add missing stuff for GatewayIntents ([@vaporox]) [c:14fc9c6]
  • [model] Add shorthand for checking the GUILD_MESSAGES intent bitflag ([@Bloectasy]) [c:6f28486]
  • [model] Add Webhook::get_message for retrieving messages sent by a webhook ([@GnomedDev]) [c:a2b388f]
  • [builder/model] Enable compilation of builder/interaction code without a backend ([@FallenWarrior2k]) [c:4cd6caa]
  • [http] Support more options for querying invites ([@AnnikaCodes]) [c:c1ef6d9]
  • [builder] Add components support to ExecuteWebhook and EditWebhookMessage ([@mkrasnitski]) [c:cb7f211]
  • [http/gateway] Add support for v10 of Discord's HTTP API and Gateway ([@squili]) [c:5c6c72a]
  • [model] Add GenericId snowflake type for unspecific entities in audit logs ([@nickelc]) [c:146b1ac]
  • [model] Add support for the Attachment option type ([@JellyWX]) [c:9866a85]
  • [model] Derive Copy and Clone traits for the audit action enums ([@nickelc]) [c:dfac5d7]
  • [model] Provide parsing of RFC 3339 strings for model::Timestamp ([@nickelc]) [c:3aca5ca]
  • [builder] Add convenient methods for creating message components ([@nickelc]) [c:6476ed1]
  • [model] Derive Default trait for all bitflags types ([@nickelc]) [c:92de3da]
  • [builder] Add support for allowed_mentions in the ExecuteWebhook builder ([@mkrasnitski]) [c:71583c3]
  • [model] Add support for locale and guild_locale fields in interactions ([@Rstar284]) [c:b4d0765]
  • [model] Add data and filename methods to AttachmentType ([@mkrasnitski]) [c:ad9e987]
  • [builder] Support more integer types for min_value / max_value ([@kangalioo]) [c:0da4ab5]
  • [model] Add a common constructor for the different ActivityTypes ([@nickelc]) [c:b4e4add]
  • [json] Expose more types and functions from serde_json and simd-json ([@vicky5124]) [c:f61fae4]
  • [client] Add cache update calls to dispatched thread events ([@AngelOnFira]) [c:7e701dc]
  • [model] Support application webhooks ([@vicky5124]) [c:2c73618]
  • [model] Add USE_EXTERNAL_STICKERS permission and audit log support for stickers ([@drklee3]) [c:1fbf1e9]
  • [http] Allow sending files when creating and editing followup messages ([@acdenisSK]) [c:147ed03]
  • [model/http] Add support for sticker packs, guild stickers, and sticker routes ([@drklee3]) [c:a88673f]
  • [http] Add audit log reason support to most HTTP endpoints ([@kangalioo]) [c:bec660d]
  • [http] Integrate attachments into the Request system ([@drklee3]) [c:57582d2]
  • [http] Implement optional pagination for Http::get_guilds ([@tylerd008]) [c:06d101b]
  • [model] Add support for adding attachments in message edits ([@kangalioo]) [c:27bf301]
  • [framework] Add the name of the command to the Dispatch error hook ([@kangalioo]) [c:c2130a8]
  • [misc] Add support for simd-json via a feature flag ([@Licenser]) [c:afb3c37]
  • [model] Add basic support for forum channels ([@kangalioo] [@TheBlackfurGuy]) [c:35ee68b]
  • [model] Add missing method for converting Interaction to ModalSubmitInteraction ([@gradiuscypher]) [c:e187f73]
  • [builder] Add support to set a single child builder for several parent builders ([@natto1784]) [c:91ee596]
  • [collector] Add modal submit collector ([@pascalharp]) [c:e5073ae]
  • [client] Add a method to pass an EventHandler in an Arc directly to the Client ([@squili]) [c:16c2089]
  • [model] Add Modal Interactions and Input Text ([@pascalharp]) [c:92fe5bb]
  • [builder] Add set_components to EditMessage ([@Chronophylos]) [c:57c0826]
  • [model] Add message_id field to audit log options for pinned/unpinned messages ([@nickelc]) [c:3a64da1]
  • [model] Add add_member to Guild and GuildId ([@vaporox]) [c:82c2415]
  • [builder] Add support for allowed_mentions in EditMessage ([@acdenisSK]) [c:86dbaee]

Changed

  • [utils] Use str::split_once for parsing webhooks and user tags ([@mkrasnitski]) [c:fbfe0cf]
  • [utils] Refactor and fix bugs in utils::content_safe ([@mkrasnitski]) [c:32cb31c]
  • [model] Move misc::Mention{able} into their own model/mention module ([@mkrasnitski]) [c:f5458f1]
  • [client] Require setting gateway intents explicitly ([@kangalioo]) [c:d245e67]
  • [model] Update methods and properties of Permissions ([@devtomio]) [c:10410a2]
  • [http] Pass parsed token to Ratelimiter::new() ([@vaporox]) [c:f4f310d]
  • [http] Simplify constructor functions for Http ([@vaporox]) [c:f8bc937]
  • [model] Remove unnecessary CacheHttp requirements ([@vaporox]) [c:a36353b]
  • [model] Update documentation around webhook components ([@mkrasnitski]) [c:6028072]
  • [misc] Format imports with module granularity ([@nickelc]) [c:4c97810]
  • [gateway] Set Http::application_id in ready event handler ([@vaporox]) [c:c5f9cbe]
  • [misc] Switch to using URL over URI ([@vaporox]) [c:81a9bc2]
  • [model] Deserialize the interaction data's target_id unconditionally ([@nickelc]) [c:c5dc80b]
  • [model] Reduce size of the ResolvedTarget enum variants ([@nickelc]) [c:404ab03]
  • [model] Change matches where the match expression is a bool to be more idiomatic ([@nickelc]) [c:977946f]
  • [cache] Place temporary caching functionality under a separate feature flag ([@acdenisSK]) [c:d03809f]
  • [misc] Make chrono a default optional feature ([@xfix]) [c:e69bcd3]
  • [model] Clean up macro usage in model::misc ([@mkrasnitski]) [c:5a0e8f4]
  • [model] Alter Guild::member_named's implementation to use utils::parse_user_tag ([@mkrasnitski]) [c:8c9670f]
  • [utils] Make ArgumentConvert compatible without the cache feature ([@kangalioo]) [c:cdaa70c]
  • [model] Document that the MESSAGE_CONTENT intent is now privileged ([@kangalioo]) [c:63a1000]
  • [client] Use Option in more places in the ClientBuilder ([@vaporox]) [c:8bca94a]
  • [misc] Simplify the hidden preparation code in doc examples ([@nickelc]) [c:d67a21d]
  • [model] Remove kind check for sending webhook components ([@GnomedDev]) [c:a292c2f]
  • [model] Remove the unstable_discord_api feature guard from the application commands ([@nickelc]) [c:1ce8060]
  • [model] Turn the resolved target of the command interaction data into a method ([@nickelc]) [c:0036620]
  • [model] Clean up API around Mention/Mentionable ([@mkrasnitski]) [c:28e6732]
  • [examples] Use the new builder method for ephemeral messages in example ([@nickelc]) [c:aada1b9]
  • [utils] Replace custom trait with Into<Content> ([@mkrasnitski]) [c:c9e4f27]
  • [model] Make the non-cache version of the shard_id methods synchronous ([@nickelc]) [c:787e7d9]
  • [model] Remove manual deserialization of ApplicationCommandInteractionDataResolved ([@nickelc]) [c:56cab22]
  • [ci] Pin the Rust version for the build jobs with the nightly toolchain ([@nickelc]) [c:36eac42]
  • [model] Use ApplicationFlags bitflags in the application info structs ([@nickelc]) [c:33d402f]
  • [misc] Unify std::fmt imports and Display & Debug trait implementations ([@nickelc]) [c:7a8f2cf]
  • [misc] Update parking_lot to 0.12 ([@xfix]) [c:d5b5970]
  • [misc] Update async-tungstenite to 0.17 ([@nickelc]) [c:4ff348e]
  • [misc] Increase MSRV to 1.53 ([@nickelc]) [c:87bb9a8]
  • [misc] Put tokio::task::Builder usage behind a feature flag ([@Milo123459]) [c:9624af0]
  • [cache] Temporarily cache users and channels in the to_user and to_channel functions ([@Milo123459]) [c:1be625b]
  • [model] Rename the enum sub types of the audit log actions ([@nickelc]) [c:56c40fc]
  • [model] Make the model::guild::audit_log module public ([@nickelc]) [c:7d99bcb]
  • [collector] Make collector builders synchronous ([@vaporox]) [c:d640238]
  • [model] Change the data mapping of AuditLogs ([@nickelc]) [c:7823b6e]
  • [model] Move the audit log serde modules into a separate utils module ([@nickelc]) [c:5a4fd2a]
  • [model] Change the audit log Change struct into an enum with the actual types ([@nickelc]) [c:594a00d]
  • [model] Rework the audit log serde module for optional integer strings ([@nickelc]) [c:74bffd0]
  • [misc] Update dashmap to v5.1.0 ([@acdenisSK] [@vicky5124] [@some-dood]) [c:6298f67] [c:342fdbb] [c:28e0311]
  • [model] Replace deserialization helper functions with the required types ([@nickelc]) [c:938936e]
  • [model] Implement serde traits for the audit Action enum directly ([@nickelc]) [c:0f77d31]
  • [http] Refactor HttpBuilder to avoid unwrap calls ([@vaporox]) [c:89499b2]
  • [utils] Move token parse and validate functions into the utils::token module ([@nickelc]) [c:97ea22f]
  • [model] Make certain e...
Read more

v0.10.10

22 Jan 22:35
bae3319
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Added

  • [misc] Implement missing fields, methods, endpoints, and other values that are documented (@vicky5124) c:be5cb54
  • [builder] Add a timeout doc alias to various methods (@Milo123459) c:1d05a1e
  • [builder] Add support for enabling slowmode on thread creation (@nickelc) c:69896e0
  • [ci] Add GitHub Actions workflow for labeling pull requests (@nickelc) c:93b66d0
  • [model] Add banner and accent_color fields to User (@drklee3) c:9e10d54
  • [client] Add get_* methods for many ClientBuilder fields (@kangalioo) c:90dae53
  • [model] Add support for member timeout (@kristopherbullinger) [c:944cd54]
  • [utils] Add get_webhook_from_url (@mkrasnitski) [c:b026f00] [c:6bd2f74] [c:7b89775]
  • [examples] Add an example for message components (@pascalharp) [c:ee00e92]
  • [examples] Add step for installing cargo make to the Running Examples section (@kafinsalim) [c:47a297b]
  • [model] Add support for min_value and max_value to slash command options (@kangalioo) [c:cfd518e]
  • [model] Add SUPPRESS_JOIN_NOTIFICATION_REPLIES system channel flag (@almeidx) [c:6121fd0]
  • [model] Add support for Autocomplete interactions (@Th3-M4jor) [c:c322657]
  • [misc] Format code in documentation comments (@acdenisSK) [c:5b84896]
  • [client] Add a method to ClientBuilder for retrieving the current token (@kangalioo) [c:6f87d25]
  • [utils] Add Discord's new branding, CSS & role colours (@nickelc) [c:c0463c0]
  • [misc] Add poise to the "Projects extending Serenity" section (@vicky5124) [c:bfb5f13]
  • [model] Add channel types to application command options (@vicky5124) [c:5a700f7]
  • [model] Add new audit log models for STAGE_INSTANCE, STICKER, and THREAD (@woongzeyi) [c:0bc3ce0]
  • [model] Add defer helper methods for deferring interactions (@Milo123459) [c:d50628e]
  • [examples] Add a database example using SQLite (@kangalioo) [c:02a5e15]
  • [model] Add support for editing threads (@lhjt) [c:afeb76e]
  • [ci] Use a better cache designed for Rust software in CI (@Milo123459) [c:c74162c]
  • [examples] Add a simple web dashboard example (@vicky5124) [c:6c5aa4d]
  • [model] Add new invite fields (@vicky5124) [c:cf4e216]
  • [model] Add ApplicationCommand::version field (@HarmoGlace) [c:c85d44a]
  • [http] Add the guild active threads endpoint (@HarmoGlace) [c:93d6ab8]
  • [builder] Implement From<Datetime> for Timestamp (@drklee3) [c:b905554]
  • [command_attr] Add undocumented #[required_permissions(perms)] requirements (@woongzeyi) [c:f9de6c5]
  • [http] Add paths to HTTP errors (@Splingush) [c:2da46a8]
  • [builder] Add a set_component method to respective builders (@JellyWX) [c:99eba2b]
  • [model] Support context menus (@HarmoGlace) [c:e87293e]
  • [model] Add ContextMenuCommand message type (@HarmoGlace) [c:2a571d3]

Changed

  • [model] Mark the model::guild::GuildStatus enum as deprecated (@nickelc) [c:bd1342e]
  • [model] Suppress deprecation warning for the use of Region (@nickelc) [c:2dcb9b3]
  • [builder] Deprecate slow_mode_rate/rate_limit methods and field (@nickelc) [c:5c1e31e]
  • [builder] Update the notice about the max value for the "per user" ratelimit (@nickelc) [c:32f4430]
  • [model] Mark the model::guild::Region enum as deprecated (@nickelc) [c:6d476cf]
  • [model] Improve the download of Attachments by calling Bytes::to_vec (@nickelc) [c:f630f32]
  • [examples] Refactor examples 03 and 13 to better use the builder pattern (@mkrasnitski) [c:34c2f22]
  • [examples] Refactor example 09 to more idiomatically use the builder pattern (@mkrasnitski) [c:4f7dad7]
  • [misc] Increase MSRV to 1.51 (@acdenisSK) [c:04fc541]
  • [model] Use the write_all variant in the Attachment::download example (@acdenisSK) [c:a8b4e2f]
  • [misc] Use Formatter::write_str directly instead of writeln for string literals (@nickelc) [c:6a0106c]
  • [model] Use the permission flags for the permissions::PRESET_* constants (@nickelc) [c:fc7c76a]
  • [model] Use bitshift notation for the values of Discord's bit flags (@nickelc) [c:57a2e4d]
  • [model] Make the u64 value of AttachmentIds public (@nickelc) [c:5379d3e]
  • [model] Simplify the *Id::created_at method by using Utc.timestamp_millis (@nickelc) [c:1977e9f]
  • [misc] Set rustfmt edition to match library edition (@mkrasnitski) [c:4f2a73b]
  • [misc] Remove old version of time from dependency tree (@KaDiWa4) [c:d9c8980]
  • [framework] Change Configuration::prefix to accept types that implement ToString (@mkrasnitski) [c:738465f]
  • [gateway] Remove guilds from cache if they were removed between a disconnect and a ready (@Squili) [c:b21f053]
  • [internal] Put the internal tokio module behind tokio* features (@nickelc) [c:921ff6f]
  • [examples] Use ClientBuilder::type_map_insert in examples where it makes sense (@nickelc) [c:c3358cf]
  • [examples] Simplify tracing_subscriber initialization in the examples (@nickelc) [c:46f7608]
  • [ci] Specify MSRV for clippy and use stable toolchain for the lint job (@nickelc) [c:bade6e5]
  • [misc] Replace instances of tokio::spawn with spawn_named (@Milo123459 @acdenisSK) [c:5f81d4a] [c:247c073] [c:b2197db]
  • [voice] Replace some instances of match with the matches! macro (@Milo123459) [c:6987175]
  • [utils] Fall back to Member parsing if User is not in the cache in ArgumentConvert (@kangalioo) [c:6085aad]
  • [model] Define Sticker::pack_id as optional (@Atakku) [c:cf040cb]
  • [model] Guarantee the MessageComponentInteraction::message to not be partial (@HarmoGlace) [c:f915fee]

Fixed

  • [examples] Fix a typo in example 12 (@Vaimer9) [c:38b11da]
  • [model] Fix documentation typo in Message::crosspost (@OverHash) [c:b180f21]
  • [model] Fix non-idiomatic comment (@nickelc) [c:f70112d]
  • [model] Fix panic in ReactionType deserialization (@nickelc) [c:fe946df]
  • [model] Fix faulty (de)serialization of InteractionApplicationCommandDataFlags (@nickelc) [c:62b9c84]
  • [model] Fix the example for permissions::PRESET_GENERAL (@nickelc) [c:707697e]
  • [command_attr] Fix #[help] to generate its variables without an extra underscore (@JohnTheCoolingFan) [c:df47df1]
  • [model] Fix Permissions bitflags (@AldanTanneo) [c:0acabdf]
  • [misc] Make the library compilable with minimal dependency versions (@lo48576) [c:37e33bd]
  • [model] Perform owner check when calculating permissions for a member (@acdenisSK) [c:ccf0d5b]
  • [misc] Clean up Clippy errors (@mdonoughe) [c:2eeb336]
  • [framework] Handle Unicode double-quote characters when parsing arguments (@acdenisSK) [c:9bfc1e7]
  • [builder] Fix permission overwrites by sending Discord the correct overwrite types (@woongzeyi) [c:f36b4c1]
  • [misc] Fix compilation without default features (@nickelc) [c:0611e2c]
  • [framework] Check for discrepancies in default commands of groups (@acdenisSK) [c:cfbb7b3]
  • [misc] Apply fixes by clippy (@Milo123459) [c:7e1a64e]
  • [command_attr] Fix support for raw identifiers in command_attr's macros (@Friz64) [c:5b7a23c]
  • [utils] Use the correct method for formatting an emoji in MessageBuilder documentation (@mbenoukaiss) [c:eb29760]
  • [model] Make CreateApplicationCommandPermissions public and fix documentation links (@Squili) [c:7392f3f]

Removed

  • [model] Remove unused #[serde(deserialize_with = "..")] attribute (@nickelc) [c:e848af8]
  • [misc] Remove #[tokio::test] from synchronous tests (@nickelc) [c:0d1c88e]
  • [utils] Remove unused function names from the colour! macro (@nickelc) [c:096d1da]
Read more

v0.10.9

15 Aug 17:58
a576cc0
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Added

Changed

Fixed

v0.10.8

12 Jun 13:08
5e5d92a
Compare
Choose a tag to compare

This is a release primarily to publish support for slash command buttons and dropdowns, but includes improvements and fixes for other things. For instance:

  • CacheHttp implementation for Http.
  • Consistency between Guild and PartialGuild by implementing missing methods.
  • Fix the ability to mention other users when utilising Message::reply (and Message::reply_ping).
  • More accurate token checks.

Thanks to the following for their contributions:

Added

Changed

Fixed

v0.10.7

14 May 14:12
Compare
Choose a tag to compare

This is an amendment release to revert a breaking change that was overlooked when releasing 0.10.6. The removed-then-reverted code no longer works because of a breaking change by Discord themselves in version 8 of their API, but regardless, minor versions (y in 0.x.y) cannot include breaking changes for parts of Serenity's stable API. To prevent users from depending on 0.10.6, it has been yanked from https://crates.io.

Thanks to the following for their contributions:

Fixed

v0.10.6

13 May 18:50
3d39371
Compare
Choose a tag to compare

This release adds a plethora of additions and changes (and a few bugfixes), mainly improving conformity to Discord's API. Speaking of which, special thanks goes to @HarmoGlace, who, with his hard work, generously added and improved support to features of the Discord API such as Slash Commands and other things.

Among the most important highlights of this release are:

  • Full Slash Commands support.
  • Support for new fields in model structures.
  • Deprecation of the region field for the Guild and PartialGuild structures. The region is now set per voice channel.
  • HTTP Proxy support. You can now route all HTTP requests through a proxy like Twilight's HTTP proxy.
  • Model type robustness. Types that designate the type/kind of a model (like a channel) will now default to the newly introduced Unknown variant whenever Discord adds a type/kind. This prevents runtime errors resulting from deserialisation of model types due to unrecognised types/kinds.
  • Better error messages for #[command], #[help], and #[check] functions. With a little hint, the compiler should report more detailed and accurate error messages for the return type of the functions.
  • Support for the "Watching..." activity.
  • Better HTTP errors. Since version 8 of Discord's API, Discord provides more thorough error messages for invalid HTTP requests, and with this release, those error messages can now be displayed when printing serenity::http::DiscordJsonError.

Thanks to the following for their contributions:

Added

Changed

Fixed

Removed

v0.10.5

04 Apr 17:34
7e08878
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Added

Changed

Fixed

v0.10.4

03 Mar 22:33
c166ece
Compare
Choose a tag to compare

Thanks to the following for their contributions:

Fixed