Releases: brainboxdotcc/DPP
v9.0.5 release
We are happy to announce the official release of D++ 9.0.5! This release brings a whole set of fixes and improvements to any project using the library, including one breaking change listed below.
The new release also brings with it pre-compiled .deb
files for armv6 (Raspberry Pi Zero and Raspberry Pi Zero W) support. This allows you to use a pre-compiled D++ library even on really old or slow Pi devices. Please note that the armv6
version does not support voice, as the Pi Zero (which it is intended to be run on) is generally too slow and low spec to do this. If you really want voice support on an arm6
device we recommend you cross-compile the library.
We have also added a windows debug build (still x64) so that you can include a pre-compiled release in a windows debug project.
Release changelog
💥 Breaking changes
- The
dpp::slashcommand
resolved parameter types now have the typedpp::resolved_member
where before it haddpp::user
. Theresolved_member
struct is a structure which contains both adpp::guild_member
and adpp::user
as the Discord API provides both, and both are useful when handling application commands. Where you are usingdpp::user
as a resolved command parameter, please switch to usingdpp::resolved_member
instead.
🛠 Improvements
- add ephemeral attachments to interaction responses
- add
cluster::rest_ping
, tells you the ping latency of HTTPS requests from the library - Add version field of app commands
- Update message types and flags
- Update role permissions
- Update command option type
- Add ephemeral boolean to attachment.
🐛 Bug Fixes
- safety checks for empty vectors when bulk adding commands
- Fix guild_set_nickname bug (endpoint had wrong parameter)
- fix application commands to prioritise application id passed in
dpp::slashcommand
overme.id
from thedpp::cluster
📝 Documentation
- extra docs for armv6 builds
- additional FAQ entries
- fix spelling error dependendancies -> dependencies
👷 CI
- Clean and update
ci.yml
and toolchain files - Add
ARMv6ToolChain.cmake
to produce armv6 builds - add debug win64 build to produce debug pre-compiled windows builds
Thank you for using D++!
v9.0.4 release
We are proud to announce the release of D++ 9.0.4, which contains a small raft of fixes! This release is a recommended upgrade and also adds functionality to use the 'resolved' section of the slash command interactions to ensure you always have information available regarding users, roles etc when they are mentioned in a slash command.
This release marks the official support of pre-built deb files for both ARM7 (armhf) for Raspberry Pi, and also a prebuilt x86 (32 bit) build for all you old-school people still using ancient hardware.
A full change log is listed below:
Release changelog
🛠 Improvements
- add commandhandler::thinking() function to send a 'bot name is thinking...' interaction response, and remove deprecated interaction response types
- Resolution of parameters in slash commands should no longer rely on cache. Use cache if we can find a value in it, otherwise use the 'resolved' field of the slash command. This makes this viable for bots with cache disabled such as triviabot
👷 CI
- Add Linux i386 .deb packages
- Add ARMHF .deb packages & Improve ARM CI
🐛 Bug Fixes
- fix: Issue #71 - unified command handler and slash command handlers had no proper way to represent a truly undefined value in the variant, use std::monostate for this.
- Merge pull request #70 from RealmsMud/execute_webhook_and_user
- fix: release building fixes, attempt to set correct arch for aarch64 packages
- Use the webhook token, if provided. Add "username" to messages if there is an author, currently only used for execute_webhook
- Fix guild ban event which wasn't properly banning
Thank you for using D++!
v9.0.3 release
I am happy to announce the release of D++ version 9.0.3! The 9.0.3 release contains a raft of small fixes from pull requests, but the biggest change of all is that we are now offering ARM64 packages for the Raspberry Pi, which will cut down on time taken to get this library up and running on the Raspberry Pi (or any other ARM64/aarch64 based Debian install).
If you want to make use of these prebuilt versions, you can find them below in the assets for the release.
Release changelog
🛠 Improvements
- use dpp::exception instead of std::runtime_error for dpp exceptions thrown
- add dpp::exception as part of PR #65
- [impro] Define API_PATH only in discordclient.h
- [improvement] Add interaction_create_t::get_original_response(command_completion_event_t)
🐛 Bug Fixes
- [fix] Validate std::function before calling
- dont hardcode v9 in the squelch for /gateway/bot endpoint
- Fix for missing virtual on dpp::managed dtor, reported in Issue #63 It doesnt seem that any of the objects that were derived from dpp::managed needed any special destruction so there would have been no leak (hence why valgrind never flagged anything) but in the future this could have become a problem.
- [fix] Use "-rdynamic" as a linker option - fixes Clang's warnings
- [fix] Change get_original_response() to use command's app id
- fix: changelog building was broken in release builder script
👷 CI
- [feat] Add AArch64 .deb packages to CI
Thank you for using D++!
v9.0.2 release
We are pleased to announce the release of D++ 9.0.2, continuing with our agile release methodology. This is a recommended upgrade, especially for Windows users as it adds some missing exports to the DLL which may have made it harder to use the library without. There are also some important fixes regarding dpp::commandhandler
. For a full list of changes in this version please see the changelog below:
🛠 Improvements
- improvement: enable voice support on windows. This will also work in the precompiled versions. Please report any bugs you find!
- improvement: specify proper type for SOCKET on windows, as its actually uint64_t
🐛 Bug Fixes
- fix:
dpp::utility::has_voice()
always returning false even when there is voice support - fix:
dpp::find_user()
,dpp::find_guild()
etc inaccessible in windows dll build - fix:
fmt::format
not exported to windows dll build, requires header only when used in user side code - test: Added some test cases to check that exports are working and reporting correct values
- fix: forgot
shutdown()
calls on all theclose()
calls. - fix: add
delete
for the thread objects in queue.cpp, which have a lifetime of the entire process anyway. - fix: squash bug with optional parameters to a
dpp::commandhandler
object
📚 Documentation
- docs: fix copyright header in new files
Thank you for using D++!
v9.0.1 release
We are happy to announce the 9.0.1 release of D++!
This release concentrates mainly on the windows stability of the project. OpenSSL and ZLib are now packaged within the repository and pre-compiled for windows users, so that compiling D++ is now easier than ever! Just open the project in visual studio 2019 and hit F7 and it should build without issue.
We have also confirmed that D++ runs great on Raspberry Pi (however it may take some time to build). A future release will include prebuilt Debian installers for the Pi.
From 9.0.1 onwards our CI system will output compiled build files for every push, so as a windows user if you need a prebuilt hot-fix you can find them in the actions tab on the GitHub project.
Thanks for using D++!
9.0.0 Release!
We are happy to finally announce the 9.0 release of D++! 👏 🎉
❓ You may be asking, why is this version 9.0 when the last release was 1.0.2? What happened to version 2, version 3, etc? We have decided to synchronise our major version number with the supported Discord API version the library supports. As this new version officially supports Discord API v9 (and only v9) our major version is now 9.0.
🆕 As this now supports a newer, shinier version of the Discord API, this release supports the following new features amongst many other things:
- Threads support (manage conversation threads via the D++ library)
- Support for button, select dropdown list and context menu UI elements and interactions
- Support for even more slash command features
- Sticker support
- Support for a generic command handler that will work with slash commands and channel message commands
- Ability to disable or configure caching at runtime for each individual cache, e.g. users, emojis, roles
- Better error handling and reporting for REST calls
...And much much more! There are also many fixes so if you are still using 1.0.2 you are strongly recommended to upgrade.
🪟 This version includes a prebuilt windows 64 bit debug build in the assets below. This may or may not suit your individual development needs, if it does not function as expected for you please build from source using the github master branch or the 9.0.0 release tag.
1.0.2 release
This is the 1.0.2 release of D++!
This release fixes some issues with interactions, and refactors the camel case names remaining in the lib to match the correct snake case, e.g. DiscordClient
becomes discord_client
and ConnectVoice
becomes connect_voice
. Be sure to update your code when you update to this version.
Windows support is still experimental and should be avoided for the time being. To run this library on windows use WSL2.
1.0.1 release
This is the 1.0.1 release of DPP, which is a recommended upgrade to all users of 1.0.0.
This release fixes several issues, notably detection of correct number of shards not functioning all of the time and sometimes silently bailing, and cloudflare randomly dropping websockets forcing a resume.
Also fixed is a bug in cluster::current_user_leave_guild
which would crash if no callback was provided to it.
There are many smaller bugfixes and quality of life improvements, for more information please don't hesitate to ask on our official discord.
We will not be releasing prebuilt windows builds until the windows version stabilises. Until then we recommend you build from source and stick to Linux builds where possible.
Thank you for using D++!
1.0.0 release
This is the first official release of D++, the C++ Discord Library.
Please note that for the windows binary build, the function dpp::utility::exec()
and voice support are not enabled. They may be enabled on the compiled windows binary build at a future date.