Hacktoberfest, licenses and v0.10.0

Jacob Tomlinson
opsdroid
Published in
3 min readNov 3, 2017

The last month has been awesome in the opsdroid community. Thanks to hacktoberfest we’ve seen an increase in the number of contributors, and Pull Requests submitted to the project. This has resulted in some excellent new features being implemented as well as general bug fixes and improvements throughout.

New parsers and matchers

I’m really excited to announce that opsdroid now supports wit.ai and LUIS which will allow you to create skills that are far more flexible in their use of natural language. These join Dialogflow (previously called Api.ai) in the list of advanced NLU engines supported in opsdroid.

Removal of duplicate responses

As a result of these exciting new matchers opsdroid has been updated to handle message parsing more intelligently. As different users of opsdroid will choose an NLU service which is most suitable to them it is likely that publicly available skills will want to decorate their skills with all of these matchers.

If a user has multiple parsers configured (even just one NLU service and regex) this could result in a single message being parsed and responded to multiple times. However as of 0.10.0 opsdroid will compile a list of all matches for a single message, rank them using the metrics returned by the NLU service (or a local ranking function) and then only execute the highest scoring skill.

This means that if you want to use an NLU service, but you also want to share your skill with users who may not use that service, you can create fallback regex matches without introducing duplicate responses for yourself.

Change of open source license

We also decided to change the open source license that opsdroid is released under to the Apache 2.0 license. While it may not be obvious what the differences are between the licenses this is an important change for the project as it sees the removal of the copy-left clause.

This clause specifies that any code which depends on the project must also be released under the same license. As opsdroid skills depend on the opsdroid project this could be interpreted to mean that they must also be released as open source, which may not be preferable if you are writing private skills for internal use only at your organsation. Switching to the Apache 2.0 resolves this issue and allows skill developers to keep them private if they wish.

For more information on this change see the discussion on GitHub.

Conclusion

A huge thank you to everyone who contributed to this release! I really hope that we manage to keep up the momentum we built during hacktoberfest and continue to add excellent features and optimisations to opsdroid.

If you have any questions or want to get involved you can message us on Gitter.

Full release notes

Enhancements

  • Change to the Apache 2.0 license (#320)
  • Add a disconnect method (#276)
  • Rename API.AI to Dialogflow (#294)
  • Add always matcher and parser (#278)
  • Add witai parser (#268)
  • Add LUIS parser/matcher (#263)
  • Allows to include a yaml file inside another (#230)

Bug fixes

  • Adding try/except to welcome_message (#239)
  • Handle missing section details in load_modules_from_config (#271)
  • Replace regex parser — use re.search instead re.match (#304)
  • Update logging messages(#282) (#303)
  • Fix config overwrite after tests (#326)
  • Fix module imports (#305)
  • Fix warning in tests (#291)
  • Typo fix in the welcome message (#255)
  • Directory of DEFAULT_LOG_FILENAME should be created, if it does not exist (#233)

Breaking changes

  • Run only one skill at a time (#311)

Documentation updates

  • Added Getting Started Info (#231)
  • Correct example configuration for databases. (#260)
  • Add default web config to README (#257)
  • Fix references to renamed docs (#256)
  • Add codecov (#315)
  • Update skills.md to removes <skillname.py> reference (#318)
  • Add issue/PR template — issue #284 (#285)
  • Changed configuration reference section to headers (#250)

--

--