~~~~~~~~~~~~~~~~~~~~~
- 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` and `invite_in_room` in `XMPPBackend` (use the
equivalent functions on the `XMPPRoom` object instead)
- The `--xmpp`, `--hipchat`, `--slack` and `--irc` command-line options
from `errbot` (set a proper `BACKEND` in `config.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)