0.58 2024-11-08
        - Cookie path is settable now (hebasta)
        - Fix meta table view for key value pairs (diewald)
        - Fix warning on OAuth public clients (diewald)
        - Introduce navi->list helper (diewald)
        - Guided tour link changed from ID to class (hebasta)
        - Add border to query panel widgets (fixes #225; diewald)
        - Add 'desc' support to embedded widgets
          (fixes #224; diewald)
        - Support setting of query form elements via plugins (diewald)

0.57 2024-10-08
        - Support VCs via URL without queries (diewald)
        - Added translations for regexp and FCSQL (r-wilm)
        - Introduce 'ui-ready' global event (diewald)
        - Don't show random page option for single page
          results (diewald)
        - Move page to top after click on example queries (diewald)
        - Disable sidebar via stash (diewald)
        - Change malt/d for relation default in tour (kupietz)
        - Use 'pubDate eq 2018' as VC example in tour (kupietz)
        - Fix tour when started from a non-root path (hebasta)

0.56 2024-09-23
        - Improve slim test for plugin support
          (korapxml2...; diewald)
        - Fix layerInfo retrieval for relation view. (diewald)
        - Change look of addon logo. (diewald)

0.55 2024-07-03
        - Removed deprecated doc_link_to helper. (diewald)
        - Removed deprecated doc_ext_link_to helper. (diewald)
        - Removed deprecated doc_uc helper. (diewald)
        - Removed deprecated doc_navi helper. (diewald)
        - Removed deprecated doc->url helper. (diewald)
        - Correctly propagate warnings in frontend calls. (diewald)
        - Remove corpusQuery from statistics
          (as per Kudstvakt #758). (diewald)
        - Improve test suite for slim images. (diewald)
        - Add pages to references in snippet view. (diewald)
        - Added category to Piwik calls. (diewald)
        - Add SpaCy with STTS to annotation assistant. (diewald)
        - Support field objects in search responses. (diewald)
        - Add fields to search API (necessary
          for future Kustvakt releases). (diewald)

0.54 2024-06-10
        - Remove deprecated 'matchInfo' API path. (diewald, margaretha)
        - Improve footer responsiveness. (diewald)

        WARNING: This change requires at least Kustvakt v0.61.6.

0.53 2024-05-04
        - Add openapi url to documentation. (hebasta)
        - Solve a potential timing issue in VC rendering. (diewald)
        - Update DeReKo link in corpus specific localization. (hebasta)
        - News and announcements are now displayed in Safari (fixes #208).
          (hebasta) 
        - Translate example query documentation. (diewald)
        - Fix: The content of blockquote is displayed. (hebasta) 
        - Upgrade dependency and remove deprecated
          method. (diewald)
        - Add configuration option for defaults: items_per_page, context.
          (diewald)
        - Support for inline-markers in snippets. (see Krill #132; diewald)
        - Added CQP tutorial (part 1; irimia, hebasta, margaretha, diewald)

0.52 2023-11-29
        - Update Piwik dependency to point to matomo.js. (diewald)
        - Add addon to title and description. (diewald)
        - Improve Dockerfile to enable docker-slim. (diewald)
        - Introduce maintenance tag helper. (diewald)
        - Fix: Remembers the last position in the tutorial. (hebasta)

0.51 2023-09-27
        - Support defined log file in configuration. (diewald)
        - Remove experimental_client_registration setting
          and make client registration mandatory in OAuth
          (diewald)
        - Introduce 'reserved terms' in documentation (diewald)
        - Support CQP in frontend (diewald)
        - Fix support for dot-symbols in (corpus/doc/text)-IDs
          (diewald)
        - Update information regarding CSP in conf (diewald)
        - Support NKJP named entities in annotation helper
          (diewald)
        - Marketplace to install and uninstall plugins (hebasta)

0.50 2023-05-08
        - Improvement of NKJP-annotation helper. (diewald)
        - Add redirect-uri to client view. (diewald)
        - Added german translation for Cosmas-II. (hebasta)
        - Workaround for failing utf8 test in some
          environments (fixes #197). (diewald)
        - Require at least conllu2korapxml v0.6.1. (diewald)
        - Improve redirection on all authorization calls. (diewald)
        - Redirect-URIs are required to be absolute
          by newer versions of Kustvakt. (diewald)
        - Newer versions of Kustvakt disabled default
          scope on authorization requests. (diewald)
        - Introduce logo addon. (diewald)
        - Added ud to default foundries. (diewald)

0.49 2023-02-23
        - Introduce conllu2korapxml command via plugin. (diewald)
        - Introduce korapxml2conllu command via plugin. (diewald)
        - Do not follow redirect links on OAuth authorization
          requests. (diewald)

0.48 2023-01-12
        - Added support for NKJP tagset in annotation
          assistant. (diewald)
        - Remove deprecated 'auth_support' (since 0.31)
          configuration parameter - use 'Auth' plugin instead. (diewald)
        - Support environment variable KALAMAR_CLIENT_FILE for
          client information. (diewald)
        - Support KALAMAR_PLUGINS as a comma-separated environment
          variable to load plugins in addition to the 'plugins'
          parameter in the configuration file. (diewald)
        - Allow popups in plugin widgets. (diewald)
        - Set version via KALAMAR_VERSION environment variable.
          (diewald)
        - Add panel types. (diewald)
        - Add textSigle as a plugin receivable information. (diewald)
        - Introduce krill-indexer command via plugin. (diewald)
        - Introduce start-with-backend command via plugin. (diewald)
        - Update Mojolicious for security reasons. (diewald)
        - Fix terser installation (fixes #182). (diewald)
        - Replaced list with info API request for client information
          in OAuth registration flow. (diewald)
        - Fix tour localization to be overwritable. (diewald)
        - Make scope a requirement for OAuth authorizations.
          (diewald)
        - Improve security of OAuth redirects. (diewald)
        - Improve error handling for non-redirect error responses.
          (diewald)
        - Fix Gruntfile to copy css files after sass.
          (fixes #184; diewald)
        - Redirect to index on authorization failure,
          in case user is not logged in. (fixes #192; diewald)
        - Added annotation helper for UDPipe annotations. (wilm)

        WARNING: Mojolicious 9.31 is a security update -
          updating is highly recommended.

0.47 2022-11-22
        - Add command to generate super_client_info file. (diewald)
        - Support 'client_file' parameter as an alternative to 'client_id'
          and 'client_secret'. (diewald)

0.46 2022-08-08
        - Increased max query length from 1000 to 4096 characters. (kupietz)
        - Fix handling of public clients. (diewald)
        - Improve support for non-latin tokens in annotation table views.
          (Fixes #168; diewald)

0.45 2022-05-20
        - Added confidential client support to OAuth. (diewald)
        - Added OAuth client authorization handling. (diewald)
        - Mark public clients as slightly more insecure. (diewald)
        - Reintroduce email handle support. (fixes #165; diewald)
        - Support plugin declarations on registration. (diewald)
        - Fetch client information before grant request. (diewald)
        - Enable Zooming on mobile clients. (diewald)
        - Auth Plugin sets cookie expiration explicitely
          to 3 days. (diewald)
        - Remove JWT Auth flow, which was deprecated since 0.42.
          (diewald)

0.44 2022-02-31
        - Fixed autosecrets migration. (diewald)
        - Format page numbers in pagination. (diewald)
        - Introduce tei2korapxml command via plugin. (diewald)
        - Introduce korapxml2tei command via plugin. (diewald)
        - Plugin toggle states are now managed by the state
          manager and can therefore survive URL changes. (diewald)
        - Add KorAP::XML::Krill and KorAP::XML::TEI to
          Dockerfile. (diewald)
        - Improve handling of invalid URIs in attachements. (diewald)

0.43 2021-11-05
        - New menu class that has an entry at the very end,
          similar to the input text prefix,
          that is always available. (lerepp)
        - Fix error message in case of server error (500)
          response.
        - Added utility funcition to util that gets all direct
          childNodes of a given element by a tag or class. (lerepp)
        - Remove 'X-Frame-Options' in favor of 'frame-ancestors'
          as a CSP rule.
        - Fix CSS compression for new SASS compiler.
        - Support dynamic menu extensions.
        - Dynamically extend buttongroup menus.
        - Update to menu.js's removeItems function to only delete
          direct childNodes aswell as a specification to test for it. (lerepp)
        - Make actions private in panels and views.
        - Move pagination out of resultinfo.
        - Add support for "adopted" button groups and anchor children
          to prepend to.
        - New menu class that has a container for further
          entries at the very end that is always available. (lerepp)
        - Reorder documentation menu and make query languages the
          default entry point. (hebasta)
        - Fix init of matches.
        - Fix tests on text method to accept undef for Mojo >= 9.21.
        - Plugin::TagHelpers::ContenBlock now on CPAN.
        - Fix navigation behaviour for folded subdirectories.
        - Introduce legacy redirects for tutorial links.
        - Improve QueryParam response.
        - Fold all top-level navigation items.
        - Add plugin service to redirect to a certain location.
        - Add support for pagination information to retrieve by plugins.
        - Buttongroup menus can be opened at different positions.
        - Fix buttongroup anchoring if anchor doesn't exist.
        - Fix blind header titles.
        - Turn "upgradeTo" into an object prototype.
        - Fix QueryParam response to work with Chrome (#149).
        - Added DemoServer plugin.
        - Support CSP disabling.
        - Update intro.js (#109; hebasta)
        - Introduce pagination panel.
        - Support for inactive buttongroup items.
        - Support default values for state.
        - Introduce state manager (#119).
        - Support default value for plugin toggle embeddings.
        - Fix wrong handling of utf8 input in login that can
          lead to server crash.
        - Fix query-by-match for multiple colons.
        - Fix "menu below hint marker" bug.
        - HintMenu is now based on containerMenu instead of regular
          menu (lerepp)
        - Replace deprecated slash division in favor of math
          division in Sass
        - Detailed explanation of vc creation (#147) in guided
          tour (hebasta).
        - Upgrade Sass dependency.
        - Release preparation.

0.42 2021-06-18
        - Added GitHub based CI for perl.
        - Added further methods for communicating JSON Files
          with the server to the APIs (lerepp).
        - Remove ruby-sass requirement (fixes #123).
        - Added support to issue new OAuth2 tokens.
        - Added tests for Mojolicious >= 9.11 compatibility.
        - Replace old Kalamar logo with new KorAP logo
          (designed by Norbert Cußler-Volz)
        - Added large footer.
        - Make KorAP logo stay when side menu is active
          (fixes #133).
        - Change samesite to 'None' to temporarily
          allow for session riding by plugins.
        - Overhaul of menuSpec to use getElementsByClassName
          and getElementsById instead of child accessors
          (lerepp).
        - List tokens of a client.
        - Upgrade Mojolicious dependency to 9.19.
        - Added query reference API.
        - Use AutoSecrets plugin to improve security.
        - Fixed bug where missing documentation pages raise
          exceptions in Mojo >= 9.0.
        - Support revocation of tokens.
        - Disable caching in auth routes.
        - Deprecate JWT flow. In the future only OAuth2
          flow will be supported and will be the default
          option for authentication and authorization.
        - Added settings navigation by default.
        - Fix rendering bug in unauthenticated oauth route.
        - Add option to toggle password fields.
        - Add "copy to clipboard" feature for input fields.
        - Add "copy to clipboard" for client id.
        - Show settings only on demand.

        WARNING: Upgrading to Mojolicious 9.19 will
          invalidate all sessions. This is a security update.
        
        WARNING: Even testing this distribution will rewrite your
          kalamar.secret file to migrate to kalamar.secret.json.
          It will keep kalamar.secret - but you'll advise to
          delete the file after checking the integrity with
          kalamar.secret.json.
        - Separate prefix style from non-item style
          in menus.

0.41 2021-03-01
        - Introduce CORS headers to the proxy.
        - Introduce Content Security Policy.
        - Remove default api endpoint from config to
          enable changes in the 'Kalamar' config environment
          while keeping the api_path.
        - Added advice in Readme regarding scripts in
          Windows Powershell (lerepp).
        - Establish CSP plugin.
        - Added nonce helper to CSP plugin.
        - Remove no-js class in nonced inline script.
        - Introduce HSTS header for https_only conf.
        - Send 'nosniff' header.
        - defer main script.
        - Introduce X-Frame-Options header.
        - Introduce X-XSS-Protection header.
        - Support CSP in notifications framework.
        - Fetch plugin configs from JSON file to be
          CSP compliant.
        - Support CSP in Matomo/Piwik plugin.
        - Removed deprecated default behaviour
          of the Piwik/Matomo plugin.
        - Support CSP in overview SVG image.
        - Fix guided tour to work with CSP.
        - Fix strict-mode in tour.
        - Define resources in Makefile.
        - Support Mojolicious >= 9.
        - Remove deprecated helper methods.
        - Introduce Kalamar::Request and
          kalamar->request helper.
        - Move /js/tracking.js to /settings/asset/tracking.js
          to simplify asset configuration in proxy servers.
        - Fix working directory for plugin configuration.
        - Make mailto: embedding CSP compliant.
        - Add frame-src to Piwik plugin as '*' may be
          overwritten.
        - Fix tutorial queries (reported by margaretha).

0.40 2020-12-17
        - Modernize ES and fix in-loops.
        - add roll() method to state object.
        - Fix wrong hint-mirror behaviour in Firefox.
        - Fix VC fragments for redundant constraints.
        - Modernize ES and improve variable declarations.
        - Improve JS test coverage for Datepicker.
        - Fix character errors in hint helper at position 0.
        - Improve JS test coverage for tutorial.
        - Move "use strict" to file level.
        - Fix bug where event bubbles when prefix is clicked
          in hint menu.
        - Remove email support from login (as is not
          or no longer supported by LDAP) (#99).
        - Fix requirement of KorAP.vc in docgroupref
          (which broke the vc demo).
        - Improve RegEx-Button in vc builder.
        - Added 'Troubleshooting' section to Readme.
        - Update for Mojolicious >= 8.66.

0.39 2020-10-07
        - Add information on secret file to Readme.
        - Change default API endpoint to korap.ids-mannheim.de.
        - Fix label for toggle plugins.
        - Activate plugin registry.
        - Forward 'pipe' parameter to backend.
        - Introduce base css file for plugins.
        - Refactoring of sass files.
        - Added query form API to plugin server.
        - Exclude search results from robot indices.
        - Added responsive 'news' style.
        - Add support for icons in plugin definition (hebasta).
        - Change buttonGroup API to accept class and
          icon definitions.
        - Added query parameter API to plugin server.
        - Minor documentation fix in Koral.
        - Added banner style.
        - Introduced early 'Plugins' plugin to embed external
          services.
        - Introduced *-latest.css/*-latest.js files for plugin
          assets.
        - Add associates() method to state objects.
        - Add minimize() method to views.
        - Add "setWidget" action for plugin registration.
        - Add clear() method to state objects.
        - Fix "setWidget" action when the service was closed
          instead of minimized.
        - Add registrable permissions to widgets and services
          (#112).
        - Fix plugin info box.

        WARNING: If you relied on the former default API endpoint
          being http://localhost:9999/, this will break your
          deployment. Please override the default API endpoint.

0.38 2020-06-16
        - Support X-Forwarded-Host name for proxy.
        - Document API URI.
        - Improve redirect handling in proxy.
        - Added support for OAuth2 client registration.
        - Added support for OAuth2 client listing.
        - Added requestMsg() methods to clients for retrieving
          data from the embedding server.
        - Improve error status codes.
        - Support HTML responses for match information.
        - Reuse failure template.
        - Added support for OAuth2 client unregistration.
        - Remove experimental status of proxy (and therefore
          configuration option 'experimental_proxy') and enable
          proxy by default.
        - Establish 'after_search_results' content part.
        - Establish 'after_search' hook.
        - Recommend log in on zero matches in search results
          in case not logged in (addresses #67).
        - Update Mojolicious requirement for security reasons.
        - Fix order of promises in login handling.
        - Update Test::Mojo::Session to be compatible with latest
          version of Mojolicious.
        - Added Dockerfile.

0.37 2020-01-16
        - Removed deprecated 'kalamar_test_port' helper.
        - Separated KalamarHelpers and KalamarPages.
        - Renamed 'doc_link_to' to 'embedded_link_to'
          and deprecated 'doc_link_to'.
        - Renamed 'doc_ext_link_to' to 'ext_link_to'
          and deprecated 'doc_ext_link_to'.
        - Renamed 'doc_uc' to 'under_construction'
          and deprecated 'doc_uc'.
        - Introduced 'page_title' helper.
        - Simplified documentation routing.
        - Added 'realm' parameter to 'embedded_link_to' helper.
        - Introduced 'navigation' helper with 'realm' parameter.
        - Deprecated 'doc_navi' helper in favor of 'navigation'
          helper.
        - Added 'navi->set' and 'navi->add' helper.
        - Added settings skeleton.
        - Added query panel for query views.
        - Added result panel for plugin registration (hebasta).
        - Added state object.
        - Added toggle button to buttongroup.
        - Added pipe object to implement KoralPipes.
        - Separated "service" from "widget" plugin embeddings.
        - Implemented preliminary host->plugin communication.
        - Fixed matchID transformation to deal with textSigles
          having dashes.
        - Catch timeouts in proxy.
        - Support non-verbal elements in token table view.
        - Refresh corpus statistics by clicking the
          statistics button (#107, hebasta)
        - Fixed links to Leibniz association (hebasta)
        - Make proxy timeouts configurable.
        - Show busy indicator while waiting for query results
          (#104).
        - Update JS dependencies.

0.36 2019-09-19
        - Rename all cookies to be independent
          for different instance (#94).
        - Enable https only via
          configuration option 'https_only'.
        - Make VC replaceable via KorAP.vc.fromJson().
        - Emit 'after_render' in proxy responses
          to make it accessible to post processing
          (such as the Piwik plugin).
        - Fix treatment of legacy "collection" parameter.
        - Fix pagination by not repeating page value in URL.
        - Added auto-refresh of OAuth tokens.
        - Added token revocation on logout.
        - Improve visibility of keyword fields in metadata view.

        WARNING: This requires relogin for all users!

0.35 2019-07-19
        - Added EXPERIMENTAL proxy to API route.
        - Remove deprecated api configuration
          (requires api_path instead now).
        - Deprecated 'collection' parameter in
          favor of 'cq' (#92).
        - Update API for statistics.
        - Introduced documentation on CQL (margaretha).
        - Introduced documentation on Cosmas 2.
        - Improved documentation on APIs.
        - Introduced documentation on FCS-QL (margaretha).
        - Enable experimental proxy via
          configuration option 'experimental_proxy'.
        - Updated documentation on annotations.
        - Introduced documentation on Annis QL (margaretha).
        - Improved documentation on data.
        - Removed documentation stub for wildcards
          (fully integrated in C2 documentation).
        - Improved documentation on regular expressions.

0.34 2019-06-26
        - Introduced guided tour (hebasta, #19).
        - Updated dependency on M::P::Notifications to
          be compatible with recent versions of Mojolicious.
        - Introduce cuts in token views.
        - Improve QueryCreator to single-quote-escape special
          characters in orth-line and include more symbols.
        - Remove deprecated auth_support support.
        - Add OAuth2 password grand flow.

0.33 2019-03-28
        - Fix problem with serialization and deserialization
          of large numerical values (#87).
        - Added command to generate example HTML file
          to pick from JS test suite.

        WARNING: This requires complete recaching, so run
          $ perl script/kalamar chi clear default
          $ perl script/kalamar chi clear user
          in your MOJO_MODE environment after update.

0.32 2019-03-12
        - Support attachements in metadata fields (#77).
        - Added ping request option to Piwik.
        - Fix handling of login errors.
        - Added Statistics reload option (hebasta, #66).
        - Fixed VC query serialization (hebasta).
        - Fix treatment of 'data:,'-attachements.
        - Rename "Institute for the German Language" to
          "Leibniz Institute for the German Language".
        - Fixed "next"-character in paginations.
        - Added new IDS logo.
        - Fix timeout cache (#84).

0.31 2018-11-30
        - Update to Mojolicious >= 8.06.
        - Made Authentication/Authorization a separated Kalamar::Plugin::Auth
          (deprecated most helpers from Kalamar::Plugin::KalamarUser).
        - Introduced abstract 'korap_request' helper.
        - Introduce 'sidebar' content_block.
        - Introduce 'headerButtonGroup' content_block.
        - Added corpusByMatch assistant (#27).
        - Fixed XML fragment serialization in KQ highlighter.

0.30 2018-11-13
        - Rewrote backend:
          - Removed dependency of Mojolicious::Plugin::Search.
          - Removed abstract API.
        - Improved backend error handling.
        - Improved backend test suite.
        - Removed MMap cache from default configuration
          and rely on in-memory cache.
        - Introduced Piwik as a separated plugin
          (no longer a mandatory plugin).

0.29 2018-10-05
        - Deprecated Kalamar.api configuration key
          in favor of Kalamar.api_path.
        - Fix replacement of docs with docGroupRefs in
          VC builder.
        - Improve touch support for menus.
        - Improve touch support for annotation assistant.
        - Move token table view to marked match.
        - Added metadata headers.
        - Update to Mojolicious >= 8.02.

0.28 2018-08-29
        - Introduced Widget based plugin system.
        - Added corpus statistics to VC (hebasta, #25).
        - Introduce center alignment (#63).
        - Change KWIC lines from table style
          to flexbox style (#31).
        - Added doc group reference to VC builder (#62).
        - Show VC name, when a reference is defined.
        - Make close in match view to minimize.
        - Add minimize button to VC.
        - Make unspecified values in VC a button.
        - Fixed KoralQuery view to correctly update session.

0.27 2018-07-23
        - Introduced content blocks to create
          flexible entry lists in the footer
        - Add marker for "cutted" matches.
        - Re-enabled Windows installations.
        - Added buttongroup class.
        - Introduced panel and view system for
          results and matches.
        - Support verbatim keys/values in QueryCreator
          to deal with Koral issue #42.

0.26 2018-04-06
        - Added meta data view.
        - Attach reference line to match bottom.
        - Separate match views and integrate relation menu
          into reference line.
        - Attach querycreator object to annotation table.
        - Update client side dependencies
        - Introduce development mode to client side code.
        - Generalized Poliqarp tutorials and made
          example queries corpus independent.
        - Improve README.
        - Protect login for csrf attacks.
        - Remember app state after login (issue #20).
        - Fixed DRuKoLA annotation assistant data.
        - Fixed server error reporting.
        - Introduced text type in VC creation.
        - Removed "contains" and "containsnot" from
          string type.
        - Added "ne" operation to date meta type.
        - Added Piwik/Matomo integration.

0.25 2018-01-31
        - Make annotation assistant configurable.
        - Support multiple prefixes in menus.
        - Show annotation tooltips in table views.
        - Improve result display when JavaScript is disabled.
        - Improve VC creation tool by supporting "blurring".
        - Make tutorial queries localizable for different default corpora.
        - Update dependencies.
        - Add lwc annotations.
        - Adapt support for new relation serialization by Krill.

0.24 2017-11-22
        - Added support for relation visualization.
        - Added support for FCSQL.

0.23 2017-09-20
        - Added query creator tool.
        - Fix visualization of empty contexts in KWIC.
        - Added announcement template.

0.22 2017-06-26
        - Added user authentification using Kustvakts LDAP
          connection.
        - Added X-Forwarded-For.
        - Introduced proxy_prefix as a configuration option.
        - Added support for more rewrite options in js.
        - Fixed legacy sigle parsing.

0.21 2017-02-01
        - Use textSigle for API communication instead of
          {corpus,doc,text}ID.
        - Added alert to annotation assistant.
        - Improved menu creation.
        - Introduced benchmark system.
        - select elements are now improved menus.
        - Annotation menu do not append menus anymore.
        - Updated dependency for bugfixed Localize.
        - Improved readme for localization generation.
        - Fixed select menus to show selected item on
          initialization.
        - Improved compatibility for new text sigles.
        - Fixed alert to not be correctly hidden.
        - Added download of tree visualizations.
        - Do not show multiple identical annotations
          in table view.
        - Added preliminary support for metadata columns.
        - Added preliminary support for multimenus.
        - Updated to more recent version of Mojolicious (7.23).
        
0.20 2016-05-25
        - Improved menu using sliders.
        - Improved menu to make prefixes chooseable,
          even if list can't be filtered.
        - Improve pageup/pagedown behaviour in menus.
        - Fixed multiple bugs in menu.

0.19 2016-04-28
        - Improved datepicker to enter date strings.
        - Improved menus to have fixed length depending
          on entry list.

0.18 2016-02-29
        - Support for dashes in identifiers.
        - Minor changes to the layout.
        - Simplified configuration file.

0.17 2015-11-13
        - Support a larger template cache.
        - Minor style adjustments.

0.16 2015-06-18
        - Update to new KoralQuery API.
          WARNING! This version is no longer compatible
          with old responses of Krill.
        - Introduced new notifications engine.

0.15 2015-05-21
        - Cleanup for GitHub release
        - First realease on GitHub.

0.14 2015-04-15
        - Redesign of JS and Sass assets
        - Introduced RequireJS
        - Introduced VC
        - Improved tutorial
        - Localized client files

0.13 2015-03-10
        - Project name is now "Kalamar"
        - Removed Mr Crabs - introduced Karl
        - Support semantic markup for KWIC
        - Fixed Click-bug in annotation menu
        - Renamed "KorAP" classes to "Kalamar"
        - Support proxy

0.12 2015-01-28
        - Fixed alignment bug

0.11 2014-01-16
        - Fixed paging bug with the async api
        - Disabled Testing feature in tutorial
        - Improved test suite

0.10 2014-12-21
        - Fixed time_exceeded bug
        - Fixed test_port bug for inspection button

0.09 2014-12-03
        - Added new API module

0.08 2014-11-19
        - Added new suggestion module

0.07 2014-11-03
        - Added API-Response view

0.06 2014-09-22
        - Updated certain Notifications and AssetPack plugins
        - Updated pagination plugin

0.05 2014-07-15
        - Improved tutorial support
        - Added Exception mail system

0.04 2014-07-08
        - Fixed template view
        - Preliminary match view
        - Switched to asset pipeline wth sass
        - Added syntax highlighting to JSON
        - Update to Api 0.1

0.03 2014-06-20
        - Added preliminary autocompletion support (freetime project)

0.02 2014-06-17
        - Added morphological tables

0.01 2014-05-31
        - Simplifications:
          Notifications plugin is at
          https://github.com/Akron/Mojolicious-Plugin-Notifications
          All other plugins can be found at CPAN
