Skip to content

v1.2.0a2

Pre-release
Pre-release
Compare
Choose a tag to compare
@nexy7574 nexy7574 released this 12 Sep 01:54
· 62 commits to master since this release

Security warning

A security flaw has been discovered in this version. This flaw is now patched in master and will be released into a third alpha soon enough.

Details:

With the introduction of Command.can_run, the functionality that checked if commands can be ran by the invoking users (last seen in 1.2.0a1) was moved and not re-implemented, as such all checks are ignored when commands are being invoked.
If you, for whatever god forsaken reason, need to continue to use 1.2.0a2, please do not rely on any checks, nio-bot or custom.

Affected Versions

v1.2.0a2

Patched versions

<=v1.1.1.post1

=v1.2.0a3 (currently unreleased)

Breaking changes in v1.2.0a2:

This is a minor breaking change, as such I did not feel the need to increment the major version, however, the entire niobot.utils.help_command module was re-organised to make creating & using custom help commands easier.
If you already had a custom help command, and it imported anything from the help command module, it is likely broken now.
See the documentation for more information.

Changes

All the goodness in v1.2.0a1, plus (from the changelog):

Fixes

  • Fixed niobot attachments (Image/Video/Audio) sending null for metadata, which may cause incorrect client behaviours
  • (Typing) send_message can now reply to any RoomMessage, not just RoomMessageText.
  • Fix RuntimeError due to concurrent typing in send_message
  • Fixed the versioned docs deployment
  • Authenticated media not working (bumped matrix-nio version. See v1.1.1.post1 for more info)

Added

  • Added niobot.utils.Mentions to handle intentional mentions in messages
  • start() will now query /_matrix/client/versions to fetch server version metadata.
  • Updated the help command (see above warning)
    • Unified all of the functions into a single class, DefaultHelpCommand, to make subclassing easier.
    • default_help_command was replaced with DefaultHelpCommand().repond.
    • Help command will no longer display commands in the command list that the current user cannot run
  • Added Command.can_run(ctx), which runs through and makes sure that all of the command checks pass.
  • Added backwards compatibility support for legacy media endpoints (servers that don't support matrix v1.11 yet). Authenticated media will still be used by default.
  • Python 3.13 is now officially supported

Removed

  • niobot.util.help_command.help_command_callback was removed, in line with deprecation.

Documentation

  • Updated the documentation index page and added documentation for Mentions

Other notes

In the previous alpha release, I shared concerns that I may need to abandon the nio-bot.dev domain. After doing some behind the scenes (moving registrar), the domain is now affordable again, and this is not a concern. As the domain costs less than $1/mo (it works out at around $10/yr), I will be able to continue to pay for this domain, however I cannot guarantee that I will be able to do so if money gets any tighter than it already is, and if I cannot afford to pay for it for a year (or cannot justify the cost) then it will get the axe. Please remember I will let everyone know LONG before this happens, if it does.

Also, the original intention was to release v1.2.0 at the same time as Python 3.13. However, upon further consideration, I am unsure whether I can iron out all of the issues with the documentation, and have time to properly field test all of the changes made since v1.1.0. So, the release for v1.2.0 may end up coming shortly after (hopefully <2 weeks) python 3.13 instead.

Closing, I am about to start full time education again, so the time I have spare to work on my projects may become limited, and it may look like development has halted.
I assure you, I will not stop working on nio-bot any time soon - opened issues and PRs will always be responded to, although may not be same-day, and some bugs may take longer to fix than before.

Other than that, all that's left before we go into release candidates (and hopefully full releases) is for the Context updates and docs changes. v1.2.0 will be out very soon!!