All Versions
Latest Version
Avg Release Cycle
26 days
Latest Release
254 days ago

Changelog History

  • v0.10.0

    October 26, 2019
    • 👍 Allow event handlers to also use scalar event types (fixes #14)
    • ➕ Add new FinishEventContent(…) function to finish event processing with multiple handlers early
    • 💥 Breaking change: Message handlers registered via Bot.Respond(…) and Bot.RespondRegex(…) now abort early if the pattern matches
      • This allows users to specify a default response when nothing else matches (see #25)
  • v0.9.0

    October 22, 2019
    • ➕ Add Auth.Users() and Auth.UserPermissions(…) functions to allow retrieving all users as well as users permissions.
    • 👍 Allow adapters to implement the optional ReactionAwareAdapter interface if they support emoji reactions
    • ➕ Add new reactions package which contains a compiled list of all officially supported reactions
    • 👍 Components may now return the new ErrNotImplemented if they do not support a feature
    • ➕ Add new reactions.Event that may be emitted by an Adapter so users can listen for it
  • v0.8.0

    April 21, 2019
    • 👉 Make Auth.Grant(…) idempotent and do not unnecessarily add smaller scopes
    • 👌 Support extending permissions via Auth.Grant(…)
    • ➕ Add boolean return value to Auth.Grant(…) to indicate if a new permission was granted
    • ➕ Add Auth.Revoke(…) to remove permissions
    • 🛠 Fix flaky unit test TestBrain_Memory
    • 🛠 Fix flaky TestCLIAdapter_Register test
    • ➕ Add new Storage type which manages encoding/decoding, concurrent access and logging for a Memory
    • Factor out Memory related logic from Brain into new Storage type
      • Removed Brain.SetMemory(…), Brain.Set(…), Brain.Get(…), Brain.Delete(…), Brain.Memories(…), Brain.Close(…)
      • All functions above except Brain.Memories(…) are now available as functions on the Bot.Store field
    • The Auth type no longer uses the Memory interface but instead requires an instance of the new Storage type
    • ✂ Removed the BrainMemoryEvent without replacement
    • ➕ Add joetest.Storage type to streamline making assertions on a bots storage/memory
    • 🔄 Change the Memory interface to treat values as []byte and not string
    • ✂ Remove Memories() function from Memory interface and instead add a Keys() function
    • NewConfig(…) now requires an instance of a Storage
  • v0.7.0

    April 18, 2019
    • ➕ Add ReceiveMessageEvent.Data field to allow using the underlying message type of the adapters
    • ➕ Add ReceiveMessageEvent.AuthorID field to identify the author of the message
    • ➕ Add Message.Data field which contains a copy of the ReceiveMessageEvent.Data value
    • ➕ Add Message.AuthorID field which contains a copy of the ReceiveMessageEvent.AuthorID value
    • ➕ Add Auth.Grant(…) and Auth.CheckPermission(…) functions to allow implementing user permissions
    • ➕ Add Brain.Close() function to let the brain implement the Memory interface
    • ➕ Add Brain.SetMemory(…) function to give more control over a joe.Brain
    • Fix joetest.Bot.Start(…) function to return only when actually all initialization is done
  • v0.6.0

    March 30, 2019
    • 🔧 implement NewConfig function to allow create configuration for unit tests of modules
  • v0.5.0

    March 18, 2019
    • 🛠 Fixed nil pointer panic in slack adapter when context is nil
  • v0.4.0

    March 18, 2019
    • 🔄 Change type of Module from function to interface to allow more flexibility
    • Introduce new ModuleFunc type to migrate old modules to new interface type
  • v0.3.0

    March 17, 2019
    • Event handler functions can now accept interfaces instead of structs
    • ➕ Add new package for unit tests
    • ➕ Add new joetest.Brain type
    • ➕ Add new WithLogger(…) option
    • Switch license from MIT to BSD-3-Clause
    • 📦 Move TestingT type into new joetest package
    • 📦 Move TestBot type into new joetest package and rename to joetest.Bot
    • 🛠 Fixed flaky unit test of CLIAdapter
  • v0.2.0

    March 10, 2019
    • ➕ Add a lot more unit tests
    • ➕ Add TestBot.Start() and TestBot.Stop()to ease synchronously starting and stopping bot in unit tests
    • ➕ Add TestBot.EmitSync(…) to emit events synchronously in unit tests
    • ✂ Remove obsolete context argument from NewTest(…) function
    • Errors from passing invalid expressions to Bot.Respond(…) are now returned in Bot.Run()
    • Events are now processed in the exact same order in which they are emitted
    • All pending events are now processed before the brain event loop returns
    • Replace context argument from Brain.HandleEvents() with new Brain.Shutdown() function
    • Adapter interface was simplified again to directly use the Brain
    • ✂ Remove unnecessary t argument from TestBot.EmitSync(…) function
    • ✂ Deleted Brain.Close() because it was not actually meant to be used to close the brain and is thus confusing
  • v0.1.0

    March 03, 2019

    🎉 Initial release, note that Joe is still in alpha and the API is not yet considered 🚀 stable before the v1.0.0 release.

    🚀 [Unreleased]:

    🚀 [v0.1.0]: