marvin v0.3.0 Release Notes

    • ➕ Added optional support for receiving remote files and uploading local files via the SupportsFiles typeclass (see issue #17 and #14
    • ➕ Added files support to the adapters
      • Shell
      • Slack
      • Telegram
    • 🔄 Changed bot runner in IsAdapter to be simpler to implement.
    • 🔄 Changed the IsAdapter API.
      • The new API is lens based. Adapter dependent types are constrained via the requirement for certain lens class instances.
      • Deprecated getUsername and getChannelName, these are now accessible via the lens class instances.
    • 🔄 Changed Util API
      • Marvin.Util.HTTP has been removed (was empty) until an API has been found
      • Marvin.Util.Mutable has been removed as BotReacting now has a MonadBase and MonadBaseControl instance meaning the functions from lifted-base can be used without modification.
    • 🛠 Fixed issue #7 where initializer overwrites files
    • Preprocessor now uses the new external-scripts.json spec from issue #8
    • ➕ Added some generic handlers for file down/upload and version
    • 🔧 Configuration is now abstract and based on a typeclass
      • Added lower level run functions so the user can specify logging and config implementation
    • 📦 Switched to hpack for package management
    • Exporting internal data constructors for adapters per request from @jchildren in #21
    • 🔄 Changed Adapter API, channel names are now optional
    • 🔄 Changed slack channel implementation, channel topic is now optional