Translations, Jupyter Notebooks and Gists in v0.12

Jacob Tomlinson
opsdroid
Published in
3 min readJul 30, 2018

It has been 6 months since the last full release. So thank you for being patient and thank you to all the contributors who are only just about to see their work cut into a release.

Translations

We now have support for multiple languages in our opsdroid log messages. We have noticed people writing skills in languages other than english and wanted to give people the ability to debug the logs in their native language too. Right now we support Spanish, Catalan, Portugese and Norwegian and we would love to see people add more!

Jupyter Notebooks

Jupyter Notebooks are a great way to write interactive Python. They are popular in the data science community thanks to their ability to mix python code, output from that code and notes written in markdown.

We now support notebook files as single file style skills. You can write your skill in a notebook and then configure opsdroid to load it like you would any other local skill. All cell outputs and markdown will be converted into comments and the code cells will be joined together into a python script.

skills:   
- name: myawesomeskill
path: /home/me/src/opsdroid-skills/myawesomeskill/myskill.ipynb

GitHub Gists

We also now support GitHub Gists as a remote skills provider. If you want to write a quick and easy skill you can now publish it as a GitHub Gist and then load it directly into your config using either the Gist URL or the Gist ID.

skills:   
- name: myawesomeskill
gist: 6dd35e0f62d6b779d3d0d140f338d3e5

Skip Dependency Installation

When you install an opsdroid skill it will check for a requirements.txt file and use pip to install the contents of the file. This allows you to quickly add dependencies to your skill without having to create a full blown setup.py file. However when you are developing and debugging you may not want the skill to install the dependencies every time.

Now you can specify a no-deps option when configuring the skill to skip dependency installation.

skills:   
- name: myawesomeskill
path: /home/me/src/opsdroid-skills/myawesomeskill/myskill.py
no-deps: true

Reactions

For chat clients which support emoji reactions like Slack you can now get your bot to react to messages instead of respond to them.

@match_regex(r'react to me')
async def react_example(opsdroid, config, message):
message.react('😀')

If the connector you are using doesn’t support reactions message.react() will return False.

Full Release Notes

Enhancements

Add github gist support for remote skill source(#577)
Add support for ipython notebooks as skills (#573)
Switch arg parsing to click and add version flag (#522)
Use gettext for translations (#433)
Translation to Spanish (#503)
Norwegian translation (#499)
Add portuguese translation (#463)
Pass extra kwargs to connector.respond() (#493)
Add no-dep flag (#466)
Add message reactions (#459)
Update logging messages to use gettext (#453)
raw_message kwarg addition to the Message class. (#445)

Bug fixes

Safe load ‘included’ yaml files (#589)
Only append if opsdroid exists and general tidying (#590)
Add empty requirements file as workaround to read the docs bug (#557)
Replace except pass with contextlib.suppress (#543)
Fix opsdroid failing if Rasa NLU is not available (#476)
Removes self.opsdroid.skills line that was breaking opsdroid (#474)
Fix aiohttp tests (#462)
Move magic strings to constants file (#380) (#439)
Move recastai and witai magic strings to const file
Increase lint maximums for classes (#448)

Breaking changes

Merge Slack and Websocket connectors to the core project (#530)
Use appdir library to move config/logs (#529)
Remove reload function (#461)

Documentation updates

Google style docstring added to configure_lang (#568)
Add vim tutorial to mkdocs (#556)
Add Google style docstrings to helper.py (#534)
Adding Gitter info in docs.extending (#528)
Update README badges (#506)
Update example configuration (#505)
Add parser configuration to documentation (#502)
Maintainer scripts (#495)
Update documentation for pyup-bot PRs (#485)
Remove bold text on PULL_REQUEST_TEMPLATE (#483)
Add asyncio docs and extend YouTube video text (#478)
Add long description, classifiers and update info in setup.py (#465)
Add documentation for maintainers (#454)
Removed Overview Page from Matchers section. (#451)
Add welcome message config option to the docs (#435) (#438)
Add CodeTriage badge to opsdroid/opsdroid (#436)
Added pypi version image to README (#428)

v0.12.1

Bug fixes

Fix deployment bug in Travis config

v0.12.2

Bug Fixes

Mock https requests in gist tests (#602)
Switch slack library from slacker-asyncio to aioslacker (#597)
Move database submodule into a folder (#612)
Minor package updates

--

--