* on "About Mattermost", add notes with links to notice.txt which has list of copyrights of open source components used
* remove apps from link
* Minor UI update
* Add config value EnableXToLeaveChannelsFromLHS that if true displays x to the right of private and public channels on the LHS.
* Displays x to the right of private and public channels on the LHS based on if EnableXToLeaveChannelsFromLHS=true.
* change the tooltip for private and public channels to `Leave channel`
* Add client-side event for when user clicks the "x" button. Different for public, private, DM.
* Be able to make Town Square read-only (Disable typing messages for non admins).
* Do not emit UserTypingEvent when TownSquareIsReadOnly and is Town Square.
* Add unit tests for TownSquareIsReadOnly config value and logic.
* Add TownSquareIsReadOnly to System console>Policy. Added Telemetry.
* Add control for TownSquareIsReadOnly=true only for License Enterprise Edition E10 & E20.
* Update en.json
* Update en.json
* Update policy_settings.jsx
* Change config value from TownSquareIsReadOnly to ExperimentalTownSquareIsReadOnly.
* Refactored to simplify. Avoid code repeat and multiple db calls.
* Implement experimental REST API endpoints for plugins
* Updates per feedback and rebase
* Update tests
* Further updates
* Update extraction of plugins
* Use OS temp dir for plugins instead of search path
* Fail extraction on paths that attempt to traverse upward
* Update pluginenv ActivePlugins()
* PLT-3893: Imported logger work from https://github.com/MusikPolice/platform
* PLT-3893: Integrated logger with system config
* PLT-3893: Integrated Mattermost config with logging solution, modified log message serialization so entire message is serialized as a JSON object
* PLT-3893: Added support for format strings in Debug methods. Added an overload that does not require a Context object for cases when one isn't available
* PLT-3893: Added context and format string support to debug and error methods
* PLT-3893: A few updates from pull request feedback
* PLT-3893: Changed tests to use testify
* Fixed TestAddRemoveConfigListener to no longer assume that there are zero config listeners when the test begins, since other tests could add config listeners
* Updated TestGetDeletedChannelsForTeam so that it doesn't assume state when it begins
* PLT-3893: Changed File property of log message so that it's relative to /mattermost directory, rather than to wherever the user is running the application from on their machine
* Flipped expected/actual assert arguments, added an explicit test for getCallerFilename(...), since it's failing on Jenkins
* Added printlns to debug failing tests on Jenkins
* Relaxed test cases to avoid failure on Jenkins caused by code coverage calculations. Removed printlns.
* Changed the way that caller filename is determined to make it more robust, updated tests to make them more lax, while not choking on the strange paths that Jenkins uses.
* Fixed gofmt issues
* Added debug output to tests to diagnose Jenkins build failures
* Still trying to get some useful debug logging on Jenkins
* Changed getCallerFilename to handle the strange paths that runtime.Caller(...) returns on Jenkins
* Fixing checkstyle issues
* Ensured that DM/GM channel is added to LHS when jump link is clicked in RHS
* Moved sidebar channel loading logic into global_actions so that it happens after the users' channels have been loaded
* Fixing checkstyle issues
* Removed restriction that prevented last occupant of a channel from leaving. Any user can now leave any channel, except for the default Town Square channel
* Also removed last user leave limitation from navbar
* Removed permalink from system messages, general cleanup
* Removed permalink from deleted messages
* Removed permalink from pending messages
* Fixed post_info tests
* Changed permalink logic to remove permalinks from ephemeral messages, but leave them in place for system messages.
* Fixed check style