All notable changes to this project will be documented in this file.
The format is loosely based on Keep a Changelog.
THIS SOFTWARE IS STILL IN ALPHA AND THERE ARE NO GUARANTEES REGARDING API STABILITY YET.
Once we reach the v1.0 release, this project will adhere to Semantic Versioning.
Nothing so far
v0.12.0 - 2024-10-09
- Fix issue on Windows machines #51
v0.11.0 - 2020-07-26
- Use error wrapping from standard library instead of
github.com/pgk/errors - Update Module to Go 1.14
- Change default log level from Debug to Info
- Add
WithLogLevel(…)option for changing the default log level
v0.10.0 - 2019-10-26
- 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(…)andBot.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 - 2019-10-22
- Add
Auth.Users()andAuth.UserPermissions(…)functions to allow retrieving all users as well as users permissions. - Allow adapters to implement the optional
ReactionAwareAdapterinterface if they support emoji reactions - Add new
reactionspackage which contains a compiled list of all officially supported reactions - Components may now return the new
ErrNotImplementedif they do not support a feature - Add new
reactions.Eventthat may be emitted by an Adapter so users can listen for it
v0.8.0 - 2019-04-21
- 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
Storagetype which manages encoding/decoding, concurrent access and logging for aMemory - Factor out
Memoryrelated logic from Brain into newStoragetype- 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 theBot.Storefield
- Removed
- The
Authtype no longer uses theMemoryinterface but instead requires an instance of the newStoragetype - Removed the
BrainMemoryEventwithout replacement - Add
joetest.Storagetype to streamline making assertions on a bots storage/memory - Change the
Memoryinterface to treat values as[]byteand notstring - Remove
Memories()function fromMemoryinterface and instead add aKeys()function NewConfig(…)now requires an instance of aStorage
v0.7.0 - 2019-04-18
- 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 - 2019-03-30
- implement
NewConfigfunction to allow create configuration for unit tests of modules
v0.5.0 - 2019-03-18
- Fixed nil pointer panic in slack adapter when context is nil
v0.4.0 - 2019-03-18
- Change type of
Modulefrom function to interface to allow more flexibility - Introduce new
ModuleFunctype to migrate old modules to new interface type
v0.3.0 - 2019-03-17
- Event handler functions can now accept interfaces instead of structs
- Add new
github.com/go-joe/joe/joetestpackage for unit tests - Add new
joetest.Braintype - Add new
WithLogger(…)option - Switch license from MIT to BSD-3-Clause
- Move
TestingTtype into newjoetestpackage - Move
TestBottype into newjoetestpackage and rename tojoetest.Bot - Fixed flaky unit test of
CLIAdapter
v0.2.0 - 2019-03-10
- Add a lot more unit tests
- Add
TestBot.Start()andTestBot.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 inBot.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 newBrain.Shutdown()function Adapterinterface was simplified again to directly use theBrain- Remove unnecessary
targument fromTestBot.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 - 2019-03-03
Initial release, note that Joe is still in alpha and the API is not yet considered stable before the v1.0.0 release.