Changelog History
Page 4
-
v4.1.3 Changes
May 10, 2016๐ hotfixes:
- ๐ Slack: regression on build_identifier
- ๐ Hipchat: regression on build_identifier (query for room is not supported)
-
v4.1.2 Changes
May 10, 2016๐ fixes:
- ๐ cards for hipchat and slack were not merged.
-
v4.1.1 Changes
May 09, 2016๐ fixes:
- Python 2.7 conversion error on err.py.
-
v4.1.0 Changes
May 09, 2016v4.1 features
- Conversation flows: Errbot can now keep track of conversations with its users and automate part of the interactions in a state machine manageable from chat. see `the flows documentation <http://errbot.io/en/master/user_guide/flow_development/index.html>`_ for more information. - Cards API: Various backends have a "canned" type of formatted response. We now support that for a better native integration with Slack and Hipchat. - ๐ Dynamic Plugins API: Errbot has now an official API to build plugins at runtime (on the fly). see `the dynamic plugins doc <http://errbot.io/en/master/user_guide/plugin_development/dynaplugs.html>`_ - ๐ป Storage command line interface: It is now possible to provision any persistent setting from the command line. It is helpful if you want to automate end to end the deployment of your chatbot. see `provisioning doc <http://errbot.io/en/master/user_guide/provisioning.html>`_ v4.1 Miscellaneous changes
- Now if no [python] section is set in the .plug file, we assume Python 3 instead of Python 2.
- Slack: identifier.person now gives its username instead of slack id
- ๐ IRC: Topic change callback fixed. Thx Ezequiel Brizuela.
- โ Text/Test: Makes the identifier behave more like a real backend.
- Text: new TEXT_DEMO_MODE that removes the logs once the chat is started: it is made for presentations / demos.
- ๐ XMPP: build_identifier can now resolve a Room (it will eventually be available on other backends)
- Graphic Test backend: renders way better the chat, TEXT_DEMO_MODE makes it full screen for your presentations.
- ACLs: We now allow a simple string as an entry with only one element.
- โ Unit Tests are now all pure py.test instead of a mix of (py.test, nose and unittest)
๐ v4.1 fixed
- ๐ Better resillience on concurrent modifications of the commands structures. - ๐ Allow multiline table cells. Thx Ilya Figotin. - ๐ Plugin template was incorrectly showing how to check config. Thx Christian Weiske. - Slack: DIVERT_TO_PRIVATE fix. - ๐ Plugin Activate was not reporting correctly some errors. - ๐ฆ tar.gz packaged plugins are working again.
-
v4.0.3 Changes
March 17, 2016๐ fixes:
- XMPP backend compatibility with python 2.7
- Telegram startup error
- daemonize regression
- UTF-8 detection
-
v4.0.2 Changes
March 15, 2016๐ hotfixes:
- ๐ configparser needs to be pinned to a 3.5.0b2 beta
- Hipchat regression on Identifiers
- Slack: avoid URI expansion.
-
v4.0.1 Changes
March 14, 2016๐ hotfixes:
- ๐ v4 doesn't migrate plugin repos entries from v3.
- py2 compatibility.
-
v4.0.0 Changes
March 13, 2016๐ This is the next major release of errbot with significant changes under the hood.
v4.0 New features
- ๐ Storage is now implemented as a plugin as well, similar to command plugins and backends. This means you can now select different storage implementations or even write your own. The following storage backends are currently available: + The traditional Python `shelf` storage. + In-memory storage for tests or ephemeral storage. + `SQL storage <https://github.com/errbotio/err-storage-sql>`_ which supports relational databases such as MySQL, Postgres, Redshift etc. + `Firebase storage <https://github.com/errbotio/err-storage-firebase>`_ for the Google Firebase DB. + `Redis storage <https://github.com/errbotio/err-storage-redis>`_ (thanks Sijis Aviles!) which uses the Redis in-memory data structure store. - Unix-style glob support in `BOT_ADMINS` and `ACCESS_CONTROLS` (see the updated `config-template.py` for documentation). - ๐ The ability to apply ACLs to all commands exposed by a plugin (see the updated `config-template.py` for documentation). - The mention_callcack() on IRC (mr. Shu). - A new (externally maintained) `Skype backend <https://github.com/errbotio/errbot-backend-skype>`_. - โก๏ธ The ability to disable core plugins (such as `!help`, `!status`, etc) from loading (see `CORE_PLUGINS` in the updated `config-template.py`). - โ Added a `--new-plugin` flag to `errbot` which can create an emply plugin skeleton for you. - ๐ง IPv6 configuration support on IRC (Mike Burke) - More flexible access controls on IRC based on nickmasks (in part thanks to Marcus Carlsson). IRC users, see the new `IRC_ACL_PATTERN` in `config-template.py`. - ๐ A new `callback_mention()` for plugins (not available on all backends). - ๐ Admins are now notified about plugin startup errors which happen during bot startup - The repos listed by the `!repos` command are now fetched from a public index and can be queried with `!repos query [keyword]`. Additionally, it is now possible to add your own index(es) to this list as well in case you wish to maintain a private index (special thanks to Sijis Aviles for the initial proof-of-concept implementation). ๐ v4.0 fixed ~~~~~~~~~~ - IRC backend no longer crashes on invalid UTF-8 characters but instead replaces them (mr. Shu). - ๐ Fixed joining password-protected rooms (Mikko Lehto) - Compatibility to API changes introduced in slackclient-1.0.0 (used by the Slack backend). - Corrected room joining on IRC (Ezequiel Hector Brizuela). - Fixed *"team_join event handler raised an exception"* on Slack. - Fixed `DIVERT_TO_PRIVATE` on HipChat. - Fixed `DIVERT_TO_PRIVATE` on Slack. - Fixed `GROUPCHAT_NICK_PREFIXED` not prefixing the user on regular commands. - Fixed `HIDE_RESTRICTED_ACCESS` from accidentally sending messages when issuing `!help`. - Fixed `DIVERT_TO_PRIVATE` on IRC. - Fixed markdown rendering breaking with `GROUPCHAT_NICK_PREFIXED` enabled. - ๐ Fixed `AttributeError` with `AUTOINSTALL_DEPS` enabled. - IRC backend now cleanly disconnects from IRC servers instead of just cutting the connection. - ๐ฒ Text mode now displays the prompt beneath the log output - ๐ Plugins which fail to install no longer remain behind, obstructing a new installation attempt v4.0 Breaking changes
๐จ The underlying implementation of Identifiers has been drastically refactored to be more clear and correct. This makes it a lot easier to construct Identifiers and send messages to specific people or rooms.
โช The file format for
--backup
and--restore
has changed between 3.x and 4.0 On the v3.2 branch, backup can now backup using the new v4 format with!backupv4
to make it possible to use with--restore
on errbot 4.0.
๐ A number of features which had previously been deprecated have now been removed. These include:
configure_room
andinvite_in_room
inXMPPBackend
(use the equivalent functions on theXMPPRoom
object instead)The
--xmpp
,--hipchat
,--slack
and--irc
command-line options fromerrbot
(set a properBACKEND
inconfig.py
instead).
v 4.0 Miscellaneous changes
- ๐ Version information is now specified in plugin `.plug` files instead of in the Python class of the plugin. - โก๏ธ Updated `!help` output, more similar to Hubot's help output (James O'Beirne and Sijis Aviles). - XHTML-IM output can now be enabled on XMPP again. - ๐ New `--version` flag on `errbot` (mr. Shu). - ๐ฒ Made `!log tail` admin only (Nicolas Sebrecht). - Made the version checker asynchronous, improving startup times. - ๐ง Optionally allow bot configuration from groupchat - `Message.type` is now deprecated in favor of `Message.is_direct` and `Message.is_group`. - ๐จ Some bundled dependencies have been refactored out into external dependencies. - ๐ Many improvements have been made to the documention, both in docstrings internally as well as the user guide on the website at http://errbot.io. Further info on identifier changes
- Person, RoomOccupant and Room are now all equal and can be used as-is to send a message to a person, a person in a Room or a Room itself.
The relationship is as follow:
๐ .. image:: https://raw.githubusercontent.com/errbotio/errbot/master/docs/_static/arch/identifiers.png :target: https://github.com/errbotio/errbot/blob/master/errbot/backends/base.py
For example: A Message sent from a room will have a RoomOccupant as frm and a Room as to.
This means that you can now do things like:
self.send(msg.frm, "Message")
self.send(self.query_room("#general"), "Hello everyone")
.. v9.9.9 (leave that there so master doesn't complain)