From 452b11a1bf5c9024155b8d24fa06e8aaa78d787d Mon Sep 17 00:00:00 2001 From: Amy Blais <29708087+amyblais@users.noreply.github.com> Date: Fri, 10 Nov 2023 08:28:24 -0500 Subject: [PATCH] V9.2 Docs (#6709) * Update conf.py * v9.2 Changelog * Update self-managed-changelog.md * Added inactive details & removed duplicated table (#6736) * Added inactive details & removed duplicated table * updated existing redirect * Added prefetch user preference (#6745) * Added MaxFieldSize logging config option (#6743) * Removed PAGES file format support (#6744) * Docs listening: clarified empty value (#6740) * Removed circular links (#6739) * Added imagery & content to clarify functionality (#6737) * Revert 6724 in product notice updates (#6741) * Elastic Search Docs - Add information about required permissions for Mattermost service account (#6732) * feature/elastic-search-doc-permissions adding documentation about giving permissions to mattermost * feature/elastic-search-doc-permissions adding more concise code block * feature/elastic-search-doc-permissions formatting code bloacks * Update source/scale/elasticsearch.rst * Update source/scale/elasticsearch.rst * feature/elastic-search-doc-permissions correcting indentation --------- Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> * Updated code block formatting (#6734) * Revert "In-product notices can gather user feedback (#6724)" This reverts commit 7b551c8cec6f67776e1d1662016496e80dd27257. --------- Co-authored-by: Tomer Ben-Rachel * Revert 6726 in product config updates (#6742) * Elastic Search Docs - Add information about required permissions for Mattermost service account (#6732) * feature/elastic-search-doc-permissions adding documentation about giving permissions to mattermost * feature/elastic-search-doc-permissions adding more concise code block * feature/elastic-search-doc-permissions formatting code bloacks * Update source/scale/elasticsearch.rst * Update source/scale/elasticsearch.rst * feature/elastic-search-doc-permissions correcting indentation --------- Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> * Updated code block formatting (#6734) * Revert "In-product notices can gather user feedback (#6726)" This reverts commit 91805aa0d09b04f632d1e8a7db502623a5f3c519. --------- Co-authored-by: Tomer Ben-Rachel * Fixed docs build errors/warnings * Combined Changelog: Cloud & Self-Hosted (#6632) * Changelog POC * Upgraded dependencies to get myst-markdown working * New combo changelog, legacy self-hosted & cloud * Consistency updates * Update mattermost-changelog.md * Add bug fix * Add bug fix * Update mattermost-changelog.md * Remove duplicated important upgrade note from the changelog * Update mattermost-changelog.md * Update mattermost-changelog.md --------- Co-authored-by: Amy Blais <29708087+amyblais@users.noreply.github.com> * v9.2 Changelog (#6717) * v9.2 Changelog * Update download-latest-tarball.rst * Update important-upgrade-notes.rst * Update open-source-components.rst * Update release-lifecycle.rst * Update self-managed-changelog.md * Update important-upgrade-notes.rst * Update release-lifecycle.rst * Update version-archive.rst * Update extended-support-release.rst * Update prepare-to-upgrade-mattermost.rst * Update software-hardware-requirements.rst * Update self-managed-changelog.md * Update extended-support-release.rst * Add files via upload * Update self-managed-changelog.md * Update self-managed-changelog.md * Update self-managed-changelog.md * Update important-upgrade-notes.rst * Update self-managed-changelog.md * Add bug fix * Add bug fix * Update self-managed-changelog.md * Update self-managed-changelog.md * Update source/install/self-managed-changelog.md Co-authored-by: Adrian * Update download-latest-tarball.rst * Update self-managed-changelog.md * Update self-managed-changelog.md --------- Co-authored-by: Adrian * Update mattermost-changelog.md * Academy links added contextually (#6733) * Academy links added contextually * Start base setup for Academy badges * Apply edits across academy badges * Fix styles for Academy Badges across viewports * Update Academy Badge hover styles * Add Academy badge to search-for-messages.rst * Fix border radius on Academy badges * Fix typo in Academy badge link --------- Co-authored-by: emdecr * Update download-latest-tarball.rst * Update source/guides/get-help.rst * Update download-latest-tarball.rst * Update mattermost-changelog.md --------- Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com> Co-authored-by: Tomer Ben-Rachel Co-authored-by: Adrian Co-authored-by: emdecr --- Pipfile | 6 +- Pipfile.lock | 590 +++-- source/_static/badges/academy-calls.rst | 12 + .../_static/badges/academy-customize-ui.rst | 12 + .../_static/badges/academy-file-storage.rst | 12 + .../badges/academy-mattermost-database.rst | 12 + .../badges/academy-message-formatting.rst | 12 + source/_static/badges/academy-msteams.rst | 12 + .../_static/badges/academy-notifications.rst | 12 + .../badges/academy-platform-overview.rst | 12 + source/_static/badges/academy-playbooks.rst | 12 + source/_static/badges/academy-search.rst | 12 + .../badges/academy-tarball-deployment.rst | 12 + .../badges/academy-tarball-upgrade.rst | 12 + source/_static/badges/academy-teams.rst | 12 + source/_static/badges/academy.rst | 12 + .../images/badges/academy-callout-image.jpg | Bin 0 -> 6089 bytes .../_static/images/badges/academy-qrcode.png | Bin 0 -> 10474 bytes .../images/badges/lightbulb-outline_F0336.svg | 1 + source/_static/mytheme.css | 1511 ++++++++---- .../about/mattermost-for-microsoft-teams.rst | 3 + .../self-managed-changelog.md | 1 - ...e-using-mattermost-for-microsoft-teams.rst | 3 +- source/collaborate/format-messages.rst | 4 + source/collaborate/install-desktop-app.rst | 2 +- source/collaborate/make-calls.rst | 3 + source/collaborate/message-priority.rst | 14 +- source/collaborate/organize-using-teams.rst | 5 +- source/collaborate/search-for-messages.rst | 7 +- source/conf.py | 26 +- .../database-configuration-settings.rst | 3 + .../file-storage-configuration-settings.rst | 7 +- .../logging-configuration-settings.rst | 76 +- source/configure/optimize-your-workspace.rst | 2 + .../plugins-configuration-settings.rst | 3 + .../rate-limiting-configuration-settings.rst | 1 - .../configure/site-configuration-settings.rst | 27 +- .../deprecated-features.rst | 0 .../desktop-app-changelog.rst | 0 .../legacy-cloud-changelog.md} | 169 +- .../legacy-self-hosted-changelog.md | 2105 ++++++++++++++++- source/deploy/mattermost-changelog.md | 87 + source/deploy/postgres-migration.rst | 4 +- source/guides/changelogs.rst | 20 +- source/guides/deploy-aws.rst | 24 +- source/guides/get-help.rst | 49 +- source/guides/package-aws.rst | 9 +- source/guides/preferences.rst | 3 + source/guides/repeatable-processes.rst | 6 +- source/guides/use-mattermost.rst | 6 + source/images/ESR_update.png | Bin 0 -> 252325 bytes source/images/urgent-message.png | Bin 0 -> 62425 bytes source/install/download-latest-tarball.rst | 2 +- source/install/install-tar.rst | 3 + .../software-hardware-requirements.rst | 2 +- source/manage/in-product-notices.rst | 21 +- source/manage/telemetry.rst | 2 +- .../preferences/manage-advanced-options.rst | 15 + .../preferences/manage-your-notifications.rst | 10 +- .../set-your-status-availability.rst | 20 +- source/scale/scaling-for-enterprise.rst | 2 - source/templates/header.html | 2 +- source/upgrade/extended-support-release.rst | 8 +- source/upgrade/important-upgrade-notes.rst | 8 +- source/upgrade/open-source-components.rst | 2 + .../upgrade/prepare-to-upgrade-mattermost.rst | 2 +- source/upgrade/release-lifecycle.rst | 6 +- .../upgrade/upgrading-mattermost-server.rst | 3 + source/upgrade/version-archive.rst | 2 +- 69 files changed, 4086 insertions(+), 969 deletions(-) create mode 100644 source/_static/badges/academy-calls.rst create mode 100644 source/_static/badges/academy-customize-ui.rst create mode 100644 source/_static/badges/academy-file-storage.rst create mode 100644 source/_static/badges/academy-mattermost-database.rst create mode 100644 source/_static/badges/academy-message-formatting.rst create mode 100644 source/_static/badges/academy-msteams.rst create mode 100644 source/_static/badges/academy-notifications.rst create mode 100644 source/_static/badges/academy-platform-overview.rst create mode 100644 source/_static/badges/academy-playbooks.rst create mode 100644 source/_static/badges/academy-search.rst create mode 100644 source/_static/badges/academy-tarball-deployment.rst create mode 100644 source/_static/badges/academy-tarball-upgrade.rst create mode 100644 source/_static/badges/academy-teams.rst create mode 100644 source/_static/badges/academy.rst create mode 100644 source/_static/images/badges/academy-callout-image.jpg create mode 100644 source/_static/images/badges/academy-qrcode.png create mode 100644 source/_static/images/badges/lightbulb-outline_F0336.svg rename source/{install => archive}/self-managed-changelog.md (99%) rename source/{install => deploy}/deprecated-features.rst (100%) rename source/{install => deploy}/desktop-app-changelog.rst (100%) rename source/{install/cloud-changelog.md => deploy/legacy-cloud-changelog.md} (99%) rename source/{install => deploy}/legacy-self-hosted-changelog.md (82%) create mode 100644 source/deploy/mattermost-changelog.md create mode 100644 source/images/ESR_update.png create mode 100644 source/images/urgent-message.png diff --git a/Pipfile b/Pipfile index 80d99d15914..c24cd6e5820 100644 --- a/Pipfile +++ b/Pipfile @@ -8,7 +8,7 @@ name = "pypi" # Amazon AWS Universal CLI environment (https://aws.amazon.com/cli/) # Release notes: https://github.com/aws/aws-cli/blob/develop/CHANGELOG.rst # Repo: https://github.com/aws/aws-cli -awscli = "==1.20.11" +awscli = "==1.29.38" # # PyTest testing framework (https://docs.pytest.org/en/7.2.x/) pytest = "==7.2.0" @@ -23,7 +23,7 @@ sphinx = "==4.4.0" # ReadTheDocs Theme (https://sphinx-rtd-theme.readthedocs.io/) # Release notes: https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst # Repo: https://github.com/readthedocs/sphinx_rtd_theme -sphinx-rtd-theme = "==0.5.2" +sphinx-rtd-theme = "==1.0.0" # # MyST Parser (https://myst-parser.readthedocs.io/en/latest/) # Release notes: https://myst-parser.readthedocs.io/en/latest/develop/_changelog.html @@ -36,7 +36,7 @@ sphinx-autobuild = "==2021.3.14" # # Tabbed views for Sphinx (https://sphinx-tabs.readthedocs.io/) # Repo: https://github.com/executablebooks/sphinx-tabs -sphinx-tabs = "3.2.0" +sphinx-tabs = "==3.4.0" # # Add a "copy" button to code blocks in Sphinx (https://sphinx-copybutton.readthedocs.io/en/latest/) # Repo: https://github.com/executablebooks/sphinx-copybutton diff --git a/Pipfile.lock b/Pipfile.lock index 9a6b929be90..feff57c7c7e 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "fa338c891875bedd91e90df7b0efb1ce4bf51bfcfca06f547428c2ca67be05cb" + "sha256": "7bb1c5fb9817ad1b4328e262e72a0efc8821e97805f4db82a071506285a296c4" }, "pipfile-spec": 6, "requires": {}, @@ -16,10 +16,11 @@ "default": { "alabaster": { "hashes": [ - "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", - "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" + "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3", + "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2" ], - "version": "==0.7.12" + "markers": "python_version >= '3.6'", + "version": "==0.7.13" }, "attrs": { "hashes": [ @@ -31,27 +32,100 @@ }, "babel": { "hashes": [ - "sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe", - "sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6" + "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610", + "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455" ], - "markers": "python_version >= '3.6'", - "version": "==2.11.0" + "markers": "python_version >= '3.7'", + "version": "==2.12.1" }, "certifi": { "hashes": [ - "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", - "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" + "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", + "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" ], "markers": "python_version >= '3.6'", - "version": "==2022.12.7" + "version": "==2023.7.22" }, "charset-normalizer": { "hashes": [ - "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845", - "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f" - ], - "markers": "python_full_version >= '3.6.0'", - "version": "==2.1.1" + "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", + "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", + "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", + "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", + "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", + "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", + "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", + "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", + "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", + "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", + "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", + "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", + "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", + "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", + "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", + "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", + "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", + "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", + "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", + "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", + "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", + "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", + "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", + "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", + "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", + "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", + "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", + "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", + "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", + "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", + "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", + "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", + "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", + "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", + "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", + "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", + "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", + "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", + "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", + "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", + "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", + "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", + "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", + "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", + "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", + "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", + "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", + "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", + "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", + "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", + "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", + "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", + "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", + "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", + "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", + "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", + "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", + "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", + "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", + "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", + "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", + "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", + "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", + "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", + "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", + "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", + "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", + "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", + "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", + "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", + "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", + "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", + "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", + "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", + "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.2.0" }, "colorama": { "hashes": [ @@ -63,11 +137,11 @@ }, "docutils": { "hashes": [ - "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af", - "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc" + "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125", + "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.16" + "version": "==0.17.1" }, "idna": { "hashes": [ @@ -95,11 +169,11 @@ }, "jinja2": { "hashes": [ - "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", - "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8", + "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7" ], - "markers": "python_version >= '3.7'", - "version": "==3.1.2" + "markers": "python_version >= '3.6'", + "version": "==3.0.3" }, "livereload": { "hashes": [ @@ -118,49 +192,59 @@ }, "markupsafe": { "hashes": [ - "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003", - "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88", - "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5", - "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7", - "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a", - "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603", - "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1", - "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135", - "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247", - "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6", - "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601", - "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77", - "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02", - "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e", - "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63", - "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f", - "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980", - "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b", - "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812", - "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff", - "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96", - "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1", - "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925", - "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a", - "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6", - "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e", - "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f", - "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4", - "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f", - "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3", - "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c", - "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a", - "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417", - "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a", - "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a", - "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37", - "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452", - "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933", - "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a", - "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7" + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" ], "markers": "python_version >= '3.7'", - "version": "==2.1.1" + "version": "==2.1.3" }, "mdit-py-plugins": { "hashes": [ @@ -180,80 +264,83 @@ }, "packaging": { "hashes": [ - "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3", - "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3" + "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", + "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" ], "markers": "python_version >= '3.7'", - "version": "==22.0" + "version": "==23.1" }, "pygments": { "hashes": [ - "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1", - "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42" + "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692", + "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29" ], - "markers": "python_version >= '3.6'", - "version": "==2.13.0" - }, - "pytz": { - "hashes": [ - "sha256:7ccfae7b4b2c067464a6733c6261673fdb8fd1be905460396b97a073e9fa683a", - "sha256:93007def75ae22f7cd991c84e02d434876818661f8df9ad5df9e950ff4e52cfd" - ], - "version": "==2022.7" + "markers": "python_version >= '3.7'", + "version": "==2.16.1" }, "pyyaml": { "hashes": [ - "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", - "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", - "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", - "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", - "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", - "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", - "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", - "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", - "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", - "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", - "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", - "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", - "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", - "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", - "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", - "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", - "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", - "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", - "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", - "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", - "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", - "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", - "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", - "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", - "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", - "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", - "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", - "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", - "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", - "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", - "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", - "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", - "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", - "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", - "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", - "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", - "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", - "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", - "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", - "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" ], "markers": "python_version >= '3.6'", - "version": "==6.0" + "version": "==6.0.1" }, "requests": { "hashes": [ - "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983", - "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349" + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], - "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==2.28.1" + "markers": "python_version >= '3.7'", + "version": "==2.31.0" }, "six": { "hashes": [ @@ -288,35 +375,35 @@ }, "sphinx-copybutton": { "hashes": [ - "sha256:0842851b5955087a7ec7fc870b622cb168618ad408dee42692e9a5c97d071da8", - "sha256:366251e28a6f6041514bfb5439425210418d6c750e98d3a695b73e56866a677a" + "sha256:9684dec7434bd73f0eea58dda93f9bb879d24bff2d8b187b1f2ec08dfe7b5f48", + "sha256:a0c059daadd03c27ba750da534a92a63e7a36a7736dcf684f26ee346199787f6" ], "index": "pypi", - "version": "==0.5.1" + "version": "==0.5.0" }, "sphinx-rtd-theme": { "hashes": [ - "sha256:32bd3b5d13dc8186d7a42fc816a23d32e83a4827d7d9882948e7b837c232da5a", - "sha256:4a05bdbe8b1446d77a01e20a23ebc6777c74f43237035e76be89699308987d6f" + "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8", + "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c" ], "index": "pypi", - "version": "==0.5.2" + "version": "==1.0.0" }, "sphinx-tabs": { "hashes": [ - "sha256:1e1b1846c80137bd81a78e4a69b02664b98b1e1da361beb30600b939dfc75065", - "sha256:33137914ed9b276e6a686d7a337310ee77b1dae316fdcbce60476913a152e0a4" + "sha256:31dbe7594b5ef4cfa76a7960448d4607dca167ff21467000213920572c302072", + "sha256:75e97ce10b74700deaf87b662539a293c8afc9dfa9d21f126b860118064cb0c5" ], "index": "pypi", - "version": "==3.2.0" + "version": "==3.4.0" }, "sphinxcontrib-applehelp": { "hashes": [ - "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a", - "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58" + "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228", + "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e" ], - "markers": "python_version >= '3.5'", - "version": "==1.0.2" + "markers": "python_version >= '3.8'", + "version": "==1.0.4" }, "sphinxcontrib-devhelp": { "hashes": [ @@ -328,11 +415,11 @@ }, "sphinxcontrib-htmlhelp": { "hashes": [ - "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07", - "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2" + "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff", + "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903" ], - "markers": "python_version >= '3.6'", - "version": "==2.0.0" + "markers": "python_version >= '3.8'", + "version": "==2.0.1" }, "sphinxcontrib-jsmath": { "hashes": [ @@ -360,36 +447,36 @@ }, "tornado": { "hashes": [ - "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca", - "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72", - "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23", - "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8", - "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b", - "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9", - "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13", - "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75", - "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac", - "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e", - "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b" + "sha256:1bd19ca6c16882e4d37368e0152f99c099bad93e0950ce55e71daed74045908f", + "sha256:22d3c2fa10b5793da13c807e6fc38ff49a4f6e1e3868b0a6f4164768bb8e20f5", + "sha256:502fba735c84450974fec147340016ad928d29f1e91f49be168c0a4c18181e1d", + "sha256:65ceca9500383fbdf33a98c0087cb975b2ef3bfb874cb35b8de8740cf7f41bd3", + "sha256:71a8db65160a3c55d61839b7302a9a400074c9c753040455494e2af74e2501f2", + "sha256:7ac51f42808cca9b3613f51ffe2a965c8525cb1b00b7b2d56828b8045354f76a", + "sha256:7d01abc57ea0dbb51ddfed477dfe22719d376119844e33c661d873bf9c0e4a16", + "sha256:805d507b1f588320c26f7f097108eb4023bbaa984d63176d1652e184ba24270a", + "sha256:9dc4444c0defcd3929d5c1eb5706cbe1b116e762ff3e0deca8b715d14bf6ec17", + "sha256:ceb917a50cd35882b57600709dd5421a418c29ddc852da8bcdab1f0db33406b0", + "sha256:e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe" ], "markers": "python_version > '2.7'", - "version": "==6.2" + "version": "==6.3.3" }, "urllib3": { "hashes": [ - "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", - "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11", + "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.13" + "markers": "python_version >= '3.7'", + "version": "==2.0.4" }, "zipp": { "hashes": [ - "sha256:83a28fcb75844b5c0cdaf5aa4003c2d728c77e05f5aeabe8e95e56727005fbaa", - "sha256:a7a22e05929290a67401440b39690ae6563279bced5f314609d9d03798f56766" + "sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0", + "sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147" ], - "markers": "python_version >= '3.7'", - "version": "==3.11.0" + "markers": "python_version >= '3.8'", + "version": "==3.16.2" } }, "develop": { @@ -403,19 +490,19 @@ }, "awscli": { "hashes": [ - "sha256:314514e78518ba540afb20ee7d29a3751600b71ad4f205ac16808fa17234e2ff", - "sha256:754b99717904801745115ea1a5cc4c2d0210c7b4c9326b0671271aa5eb228356" + "sha256:4309984b37a7bbc57d08716fdcbf7309bb148d46556876f1a10348866338b427", + "sha256:5b5f4a35070f6a490514a6d353b9acebfc576d3a2ed813d3ec3929f22b6e7bc2" ], "index": "pypi", - "version": "==1.20.11" + "version": "==1.29.38" }, "botocore": { "hashes": [ - "sha256:601f820ed340a85ed62d91b4eaeb768b9ff0529add75a074592fb7c51db7bd00", - "sha256:b5e9128a259fc0fe5a8c2b717f5d7e8a1321321981b5d5679939e12d4142c0f3" + "sha256:86a4c253bba046f775e07f6585ff6c3d75c21a21c171e5bfcf68bc59f29d7b4c", + "sha256:b02de7898f0a7de0f6569be1c87046035a974006c31fd641f4b97a8dba1fad21" ], - "markers": "python_version >= '3.6'", - "version": "==1.21.11" + "markers": "python_version >= '3.7'", + "version": "==1.31.38" }, "colorama": { "hashes": [ @@ -427,68 +514,59 @@ }, "docutils": { "hashes": [ - "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af", - "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc" + "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125", + "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==0.16" + "version": "==0.17.1" }, "exceptiongroup": { "hashes": [ - "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e", - "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23" + "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9", + "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3" ], "markers": "python_version < '3.11'", - "version": "==1.1.0" + "version": "==1.1.3" }, "iniconfig": { "hashes": [ - "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", - "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", + "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" ], - "version": "==1.1.1" + "markers": "python_version >= '3.7'", + "version": "==2.0.0" }, "jmespath": { "hashes": [ - "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9", - "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f" + "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", + "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" ], - "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==0.10.0" + "markers": "python_version >= '3.7'", + "version": "==1.0.1" }, "packaging": { "hashes": [ - "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3", - "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3" + "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", + "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" ], "markers": "python_version >= '3.7'", - "version": "==22.0" + "version": "==23.1" }, "pluggy": { "hashes": [ - "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", - "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12", + "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7" ], - "markers": "python_version >= '3.6'", - "version": "==1.0.0" + "markers": "python_version >= '3.8'", + "version": "==1.3.0" }, "pyasn1": { "hashes": [ - "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359", - "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576", - "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf", - "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7", - "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", - "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00", - "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8", - "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86", - "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12", - "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776", - "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba", - "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2", - "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3" - ], - "version": "==0.4.8" + "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57", + "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==0.5.0" }, "pytest": { "hashes": [ @@ -508,49 +586,59 @@ }, "pyyaml": { "hashes": [ - "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", - "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", - "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", - "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", - "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", - "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", - "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", - "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", - "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", - "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", - "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", - "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", - "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", - "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", - "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", - "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", - "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", - "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", - "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", - "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", - "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", - "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", - "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", - "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", - "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", - "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", - "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", - "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", - "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", - "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", - "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", - "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", - "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", - "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", - "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", - "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", - "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", - "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", - "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", - "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" ], "markers": "python_version >= '3.6'", - "version": "==6.0" + "version": "==6.0.1" }, "rsa": { "hashes": [ @@ -562,11 +650,11 @@ }, "s3transfer": { "hashes": [ - "sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971", - "sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed" + "sha256:b014be3a8a2aab98cfe1abc7229cc5a9a0cf05eb9c1f2b86b230fd8df3f78084", + "sha256:cab66d3380cca3e70939ef2255d01cd8aece6a4907a9528740f668c4b0611861" ], - "markers": "python_version >= '3.6'", - "version": "==0.5.2" + "markers": "python_version >= '3.7'", + "version": "==0.6.2" }, "six": { "hashes": [ @@ -586,11 +674,11 @@ }, "urllib3": { "hashes": [ - "sha256:47cc05d99aaa09c9e72ed5809b60e7ba354e64b59c9c173ac3018642d8bb41fc", - "sha256:c083dd0dce68dbfbe1129d5271cb90f9447dea7d52097c6e0126120c521ddea8" + "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11", + "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", - "version": "==1.26.13" + "markers": "python_version >= '3.7'", + "version": "==2.0.4" } } } diff --git a/source/_static/badges/academy-calls.rst b/source/_static/badges/academy-calls.rst new file mode 100644 index 00000000000..7a7bc979ae5 --- /dev/null +++ b/source/_static/badges/academy-calls.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about Mattermost Calls +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-customize-ui.rst b/source/_static/badges/academy-customize-ui.rst new file mode 100644 index 00000000000..02b3dd9555c --- /dev/null +++ b/source/_static/badges/academy-customize-ui.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn what you can customize +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-file-storage.rst b/source/_static/badges/academy-file-storage.rst new file mode 100644 index 00000000000..d978eab22f2 --- /dev/null +++ b/source/_static/badges/academy-file-storage.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about Mattermost file storage +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-mattermost-database.rst b/source/_static/badges/academy-mattermost-database.rst new file mode 100644 index 00000000000..df7fb94d628 --- /dev/null +++ b/source/_static/badges/academy-mattermost-database.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about setting up the Mattermost database +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-message-formatting.rst b/source/_static/badges/academy-message-formatting.rst new file mode 100644 index 00000000000..65a4457655e --- /dev/null +++ b/source/_static/badges/academy-message-formatting.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about message formatting +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-msteams.rst b/source/_static/badges/academy-msteams.rst new file mode 100644 index 00000000000..6f5d92e5e2e --- /dev/null +++ b/source/_static/badges/academy-msteams.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about integrating with Microsoft Teams +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-notifications.rst b/source/_static/badges/academy-notifications.rst new file mode 100644 index 00000000000..fa2fe669b3f --- /dev/null +++ b/source/_static/badges/academy-notifications.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about notifications +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-platform-overview.rst b/source/_static/badges/academy-platform-overview.rst new file mode 100644 index 00000000000..db9ce646f1a --- /dev/null +++ b/source/_static/badges/academy-platform-overview.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about Mattermost +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-playbooks.rst b/source/_static/badges/academy-playbooks.rst new file mode 100644 index 00000000000..5c33a2cb808 --- /dev/null +++ b/source/_static/badges/academy-playbooks.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about Mattermost Playbooks +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-search.rst b/source/_static/badges/academy-search.rst new file mode 100644 index 00000000000..53deb7837b8 --- /dev/null +++ b/source/_static/badges/academy-search.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about search +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-tarball-deployment.rst b/source/_static/badges/academy-tarball-deployment.rst new file mode 100644 index 00000000000..e8115cac82c --- /dev/null +++ b/source/_static/badges/academy-tarball-deployment.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about deploying Mattermost using a tarball +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-tarball-upgrade.rst b/source/_static/badges/academy-tarball-upgrade.rst new file mode 100644 index 00000000000..a4db34c2bca --- /dev/null +++ b/source/_static/badges/academy-tarball-upgrade.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about upgrading Mattermost using a tarball +
+
\ No newline at end of file diff --git a/source/_static/badges/academy-teams.rst b/source/_static/badges/academy-teams.rst new file mode 100644 index 00000000000..2ea4dce2f98 --- /dev/null +++ b/source/_static/badges/academy-teams.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Learn about teams +
+
\ No newline at end of file diff --git a/source/_static/badges/academy.rst b/source/_static/badges/academy.rst new file mode 100644 index 00000000000..b04fba93d88 --- /dev/null +++ b/source/_static/badges/academy.rst @@ -0,0 +1,12 @@ +:orphan: +:nosearch: + +.. raw:: html + + + +
+ Mattermost Academy + Free online training available +
+
\ No newline at end of file diff --git a/source/_static/images/badges/academy-callout-image.jpg b/source/_static/images/badges/academy-callout-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8c6323df18dca891d2dfae086d998f670d1946c4 GIT binary patch literal 6089 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 E04(td5dZ)H literal 0 HcmV?d00001 diff --git a/source/_static/images/badges/lightbulb-outline_F0336.svg b/source/_static/images/badges/lightbulb-outline_F0336.svg new file mode 100644 index 00000000000..528ee77fd5a --- /dev/null +++ b/source/_static/images/badges/lightbulb-outline_F0336.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/_static/mytheme.css b/source/_static/mytheme.css index f54b31812b4..263e34906cc 100644 --- a/source/_static/mytheme.css +++ b/source/_static/mytheme.css @@ -1,83 +1,420 @@ /* Redesign 2021 - Fonts */ @import url("https://use.typekit.net/hzs0pdc.css"); @import url('https://fonts.googleapis.com/css2?family=Fira+Mono:wght@400;700&family=Noto+Sans:ital,wght@0,400;0,700;1,400;1,700&display=swap'); + +/* Variables */ +:root { + --center-channel-text-64: rgba(61, 60, 64, 0.64); + --center-channel-text: rgba(61, 60, 64, 1); + --neutral-50: #F4F4F6; + --neutral-100: #E8E9ED; + --neutral-600: #767D93; + --neutral-950: #363A45; +} + /* Pygment CSS transfer to reduce CSS assets */ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #eeffcc; } -.highlight .c { color: #408090; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #007020; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #007020 } /* Comment.Preproc */ -.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #333333 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #007020 } /* Keyword.Pseudo */ -.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #902000 } /* Keyword.Type */ -.highlight .m { color: #208050 } /* Literal.Number */ -.highlight .s { color: #4070a0 } /* Literal.String */ -.highlight .na { color: #4070a0 } /* Name.Attribute */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nf { color: #06287e } /* Name.Function */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mb { color: #208050 } /* Literal.Number.Bin */ -.highlight .mf { color: #208050 } /* Literal.Number.Float */ -.highlight .mh { color: #208050 } /* Literal.Number.Hex */ -.highlight .mi { color: #208050 } /* Literal.Number.Integer */ -.highlight .mo { color: #208050 } /* Literal.Number.Oct */ -.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ -.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ -.highlight .sc { color: #4070a0 } /* Literal.String.Char */ -.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ -.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ -.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ -.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: #c65d09 } /* Literal.String.Other */ -.highlight .sr { color: #235388 } /* Literal.String.Regex */ -.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ -.highlight .ss { color: #517918 } /* Literal.String.Symbol */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ +pre { + line-height: 125%; +} + +td.linenos .normal { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} + +span.linenos { + color: inherit; + background-color: transparent; + padding-left: 5px; + padding-right: 5px; +} + +td.linenos .special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} + +span.linenos.special { + color: #000000; + background-color: #ffffc0; + padding-left: 5px; + padding-right: 5px; +} + +.highlight .hll { + background-color: #ffffcc +} + +.highlight { + background: #eeffcc; +} + +.highlight .c { + color: #408090; + font-style: italic +} + +/* Comment */ +.highlight .err { + border: 1px solid #FF0000 +} + +/* Error */ +.highlight .k { + color: #007020; + font-weight: bold +} + +/* Keyword */ +.highlight .o { + color: #666666 +} + +/* Operator */ +.highlight .ch { + color: #408090; + font-style: italic +} + +/* Comment.Hashbang */ +.highlight .cm { + color: #408090; + font-style: italic +} + +/* Comment.Multiline */ +.highlight .cp { + color: #007020 +} + +/* Comment.Preproc */ +.highlight .cpf { + color: #408090; + font-style: italic +} + +/* Comment.PreprocFile */ +.highlight .c1 { + color: #408090; + font-style: italic +} + +/* Comment.Single */ +.highlight .cs { + color: #408090; + background-color: #fff0f0 +} + +/* Comment.Special */ +.highlight .gd { + color: #A00000 +} + +/* Generic.Deleted */ +.highlight .ge { + font-style: italic +} + +/* Generic.Emph */ +.highlight .gr { + color: #FF0000 +} + +/* Generic.Error */ +.highlight .gh { + color: #000080; + font-weight: bold +} + +/* Generic.Heading */ +.highlight .gi { + color: #00A000 +} + +/* Generic.Inserted */ +.highlight .go { + color: #333333 +} + +/* Generic.Output */ +.highlight .gp { + color: #c65d09; + font-weight: bold +} + +/* Generic.Prompt */ +.highlight .gs { + font-weight: bold +} + +/* Generic.Strong */ +.highlight .gu { + color: #800080; + font-weight: bold +} + +/* Generic.Subheading */ +.highlight .gt { + color: #0044DD +} + +/* Generic.Traceback */ +.highlight .kc { + color: #007020; + font-weight: bold +} + +/* Keyword.Constant */ +.highlight .kd { + color: #007020; + font-weight: bold +} + +/* Keyword.Declaration */ +.highlight .kn { + color: #007020; + font-weight: bold +} + +/* Keyword.Namespace */ +.highlight .kp { + color: #007020 +} + +/* Keyword.Pseudo */ +.highlight .kr { + color: #007020; + font-weight: bold +} + +/* Keyword.Reserved */ +.highlight .kt { + color: #902000 +} + +/* Keyword.Type */ +.highlight .m { + color: #208050 +} + +/* Literal.Number */ +.highlight .s { + color: #4070a0 +} + +/* Literal.String */ +.highlight .na { + color: #4070a0 +} + +/* Name.Attribute */ +.highlight .nb { + color: #007020 +} + +/* Name.Builtin */ +.highlight .nc { + color: #0e84b5; + font-weight: bold +} + +/* Name.Class */ +.highlight .no { + color: #60add5 +} + +/* Name.Constant */ +.highlight .nd { + color: #555555; + font-weight: bold +} + +/* Name.Decorator */ +.highlight .ni { + color: #d55537; + font-weight: bold +} + +/* Name.Entity */ +.highlight .ne { + color: #007020 +} + +/* Name.Exception */ +.highlight .nf { + color: #06287e +} + +/* Name.Function */ +.highlight .nl { + color: #002070; + font-weight: bold +} + +/* Name.Label */ +.highlight .nn { + color: #0e84b5; + font-weight: bold +} + +/* Name.Namespace */ +.highlight .nt { + color: #062873; + font-weight: bold +} + +/* Name.Tag */ +.highlight .nv { + color: #bb60d5 +} + +/* Name.Variable */ +.highlight .ow { + color: #007020; + font-weight: bold +} + +/* Operator.Word */ +.highlight .w { + color: #bbbbbb +} + +/* Text.Whitespace */ +.highlight .mb { + color: #208050 +} + +/* Literal.Number.Bin */ +.highlight .mf { + color: #208050 +} + +/* Literal.Number.Float */ +.highlight .mh { + color: #208050 +} + +/* Literal.Number.Hex */ +.highlight .mi { + color: #208050 +} + +/* Literal.Number.Integer */ +.highlight .mo { + color: #208050 +} + +/* Literal.Number.Oct */ +.highlight .sa { + color: #4070a0 +} + +/* Literal.String.Affix */ +.highlight .sb { + color: #4070a0 +} + +/* Literal.String.Backtick */ +.highlight .sc { + color: #4070a0 +} + +/* Literal.String.Char */ +.highlight .dl { + color: #4070a0 +} + +/* Literal.String.Delimiter */ +.highlight .sd { + color: #4070a0; + font-style: italic +} + +/* Literal.String.Doc */ +.highlight .s2 { + color: #4070a0 +} + +/* Literal.String.Double */ +.highlight .se { + color: #4070a0; + font-weight: bold +} + +/* Literal.String.Escape */ +.highlight .sh { + color: #4070a0 +} + +/* Literal.String.Heredoc */ +.highlight .si { + color: #70a0d0; + font-style: italic +} + +/* Literal.String.Interpol */ +.highlight .sx { + color: #c65d09 +} + +/* Literal.String.Other */ +.highlight .sr { + color: #235388 +} + +/* Literal.String.Regex */ +.highlight .s1 { + color: #4070a0 +} + +/* Literal.String.Single */ +.highlight .ss { + color: #517918 +} + +/* Literal.String.Symbol */ +.highlight .bp { + color: #007020 +} + +/* Name.Builtin.Pseudo */ +.highlight .fm { + color: #06287e +} + +/* Name.Function.Magic */ +.highlight .vc { + color: #bb60d5 +} + +/* Name.Variable.Class */ +.highlight .vg { + color: #bb60d5 +} + +/* Name.Variable.Global */ +.highlight .vi { + color: #bb60d5 +} + +/* Name.Variable.Instance */ +.highlight .vm { + color: #bb60d5 +} + +/* Name.Variable.Magic */ +.highlight .il { + color: #208050 +} + +/* Literal.Number.Integer.Long */ /* End Pygment */ + @media screen and (min-width: 1400px) { .wy-nav-content { height: auto; @@ -85,7 +422,8 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: } } -html, body { +html, +body { height: 100%; overflow: hidden; } @@ -94,26 +432,27 @@ html, body { pointer-events: none; } -/* Thermometer */ -:root { - --center-channel-text-64: rgba(61, 60, 64, 0.64); - --center-channel-text: rgba(61, 60, 64, 1); +iframe { + max-width: 100%; } +/* Thermometer */ .c-thermometer { padding: 2rem 0 0; - display: block; - width: 270px; - text-align: center; - position: absolute; - right: -2rem; - top: 0; - border-radius: 20px; + display: block; + width: 270px; + text-align: center; + position: absolute; + right: -2rem; + top: 0; + border-radius: 20px; font-size: 14px; } + .c-thermometer__trigger:hover { filter: grayscale(0); } + .c-thermometer__popup p { margin: 0 2rem; } @@ -124,17 +463,17 @@ html, body { } .c-thermometer__close { - cursor: pointer; - position: absolute; - width: 2rem; - height: 2rem; - display: flex; - align-items: center; - justify-content: center; - color: #999; - font-size: 1.4rem; - right: 0.4rem; - top: 0.4rem; + cursor: pointer; + position: absolute; + width: 2rem; + height: 2rem; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 1.4rem; + right: 0.4rem; + top: 0.4rem; } .c-thermometer__close:hover { @@ -147,14 +486,17 @@ html, body { align-items: center; justify-content: space-between; } + .c-thermometer__emojis p { margin: 0; font-size: inherit; color: var(--center-channel-text-64); } + .c-thermometer__emoji { font-size: 28px; } + .c-thermometer__emojis a { z-index: 2; position: relative; @@ -166,10 +508,13 @@ html, body { filter: grayscale(100%); flex: 1; } -.c-thermometer__emojis a:hover, .c-thermometer__emojis a.selected { + +.c-thermometer__emojis a:hover, +.c-thermometer__emojis a.selected { color: inherit; filter: grayscale(0); } + /* Thermometer ends */ /* Thermometer Modal */ @@ -177,32 +522,32 @@ html, body { .c-thermometer-modal__container { display: none; position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; - z-index: 9999; - background: rgb(0 0 0 / 50%); + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 9999; + background: rgb(0 0 0 / 50%); } -.c-thermometer-modal__container > div { +.c-thermometer-modal__container>div { display: flex; align-items: center; - justify-content: center; + justify-content: center; position: fixed; - left: 0; - top: 0; - width: 100%; - height: 100%; + left: 0; + top: 0; + width: 100%; + height: 100%; padding: 0 24px; } .c-thermometer-modal__content { - background: #fff; - border-radius: 10px; - padding: 24px; - max-width: 368px; - width: 100%; + background: #fff; + border-radius: 10px; + padding: 24px; + max-width: 368px; + width: 100%; } .c-thermometer-modal__content h3 { @@ -246,13 +591,13 @@ html, body { .c-thermometer-modal__content textarea:focus { - border-color:#166DE0; + border-color: #166DE0; } .c-thermometer-modal__footer { display: flex; - justify-content: center; - padding-top: 20px; + justify-content: center; + padding-top: 20px; } .c-thermometer-modal__footer .btn { @@ -271,7 +616,9 @@ html, body { background: #166DE0; } -.c-thermometer-modal__footer .btn-primary:hover, .c-thermometer-modal__footer .btn-primary:focus, .c-thermometer-modal__footer .btn-primary:active { +.c-thermometer-modal__footer .btn-primary:hover, +.c-thermometer-modal__footer .btn-primary:focus, +.c-thermometer-modal__footer .btn-primary:active { background: rgb(19, 93, 190); } @@ -288,9 +635,9 @@ html, body { text-align: center; max-width: 210px; position: absolute; - right: 0; - top: -120px; - background: white; + right: 0; + top: -120px; + background: white; z-index: 9; } @@ -302,8 +649,8 @@ html, body { .c-thermometer-popup p { font-size: 12px; - line-height: 1.5; - text-align: center; + line-height: 1.5; + text-align: center; margin: 0; } @@ -317,11 +664,11 @@ html, body { justify-content: center; border-radius: 4px; right: 8px; - top: 8px; - font-size: 22px; - cursor: pointer; - font-family: sans-serif; - font-weight: 300; + top: 8px; + font-size: 22px; + cursor: pointer; + font-family: sans-serif; + font-weight: 300; } .c-thermometer-popup__close:hover { @@ -332,25 +679,25 @@ html, body { footer:not(.site-footer) { position: relative; - border-top: 1px solid #dedede; - margin-top: 24px; + border-top: 1px solid #dedede; + margin-top: 24px; padding: 24px 0 40px; line-height: 150%; - font-size: 14px; + font-size: 14px; } footer:not(.site-footer) p { line-height: 150%; - font-size: 14px; + font-size: 14px; } .rst-footer-buttons { padding-bottom: 16px; width: 100%; - display: flex; - justify-content: flex-end; - flex-direction: row-reverse; - flex-wrap: wrap; + display: flex; + justify-content: flex-end; + flex-direction: row-reverse; + flex-wrap: wrap; } .rst-footer-buttons a:last-child { @@ -428,7 +775,8 @@ footer hr { .rst-versions { background: #404040 none repeat scroll 0 0; - border-style: none; /* removes the underlying theme's top border */ + border-style: none; + /* removes the underlying theme's top border */ } .rst-versions .rst-current-version .fa-cog { @@ -440,7 +788,9 @@ footer hr { content: "\f107"; } -.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal { +.rst-content tt.literal, +.rst-content tt.literal, +.rst-content code.literal { color: #151515; background: #EEEEEE; } @@ -449,12 +799,12 @@ footer hr { font-size: 105%; } -.rst-content li > *:not(.first).admonition { +.rst-content li>*:not(.first).admonition { margin-top: 12px; margin-bottom: 12px; } -.rst-content li > img:not(.first) { +.rst-content li>img:not(.first) { margin-bottom: 12px; } @@ -469,7 +819,7 @@ footer hr { .wy-nav-content { height: auto; width: 100%; - max-width: 100%; + max-width: 100%; padding-top: 26px; } @@ -478,7 +828,9 @@ footer hr { border: none; } -.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td { +.wy-table td, +.rst-content table.docutils td, +.rst-content table.field-list td { vertical-align: top; } @@ -486,20 +838,21 @@ footer hr { max-width: 1000px; } -.wy-menu-vertical > ul.current { +.wy-menu-vertical>ul.current { display: block; } -.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current >a { - background: #E0E0E0; +.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>a { + background: #E0E0E0; } -.wy-menu-vertical li.toctree-l3.current li.toctree-l4.current > a { +.wy-menu-vertical li.toctree-l3.current li.toctree-l4.current>a { background: #cacaca; } -.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + +.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a { font-weight: bold; - font-size: 0.95em; + font-size: 0.95em; } .wy-menu-vertical li.toctree-l3.current li.toctree-l4>a { @@ -509,9 +862,9 @@ footer hr { text-overflow: ellipsis; } -.wy-menu-vertical li.toctree-l3.current li.toctree-l4> a code { +.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a code { font-size: 1em; - font-family: "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; } .wy-menu-vertical li.toctree-l2.current li.toctree-l3>a { @@ -530,7 +883,8 @@ footer hr { white-space: nowrap; } -.wy-menu-vertical li.on a, .wy-menu-vertical li.current>a { +.wy-menu-vertical li.on a, +.wy-menu-vertical li.current>a { border-bottom: 1px solid #ddd; } @@ -540,7 +894,7 @@ footer hr { margin: 4px 0; height: 33px; background: #CACACA; - cursor:pointer; + cursor: pointer; } .wy-menu-vertical p.caption:first-child { @@ -548,7 +902,9 @@ footer hr { border-top: 0; } -.rst-content tt, .rst-content tt, .rst-content code { +.rst-content tt, +.rst-content tt, +.rst-content code { white-space: normal; } @@ -572,8 +928,15 @@ footer hr { overflow: auto; } -h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { - font-family: "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; +h1, +h2, +.rst-content .toctree-wrapper p.caption, +h3, +h4, +h5, +h6, +legend { + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; } .wy-menu-vertical a { @@ -632,7 +995,8 @@ h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { border-right: 1px solid #ddd; } -.wy-side-nav-search .icon, .wy-side-nav-search .version { +.wy-side-nav-search .icon, +.wy-side-nav-search .version { display: none; } @@ -652,7 +1016,7 @@ h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { position: fixed; padding: 20px 20px 15px; /* border-bottom: 1px solid #ddd; */ - z-index: 10; + z-index: 10; } .search__icon { @@ -671,7 +1035,7 @@ h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { } .search__icon span { - font-family: "trade-gothic-next","Lato","Helvetica Neue","Arial",sans-serif; + font-family: "trade-gothic-next", "Lato", "Helvetica Neue", "Arial", sans-serif; font-size: 16px; } @@ -704,7 +1068,7 @@ header .header__searchbar { padding: 0 5px 0 0; } -@media (max-width: 768px){ +@media (max-width: 768px) { .wy-nav-side { left: -350px; } @@ -712,23 +1076,29 @@ header .header__searchbar { header .links__icon { display: block; } + .wy-nav-top { display: none; } + .wy-side-nav-search { position: relative; } + .wy-menu-vertical { top: 0; } + .wy-nav-content-wrap { margin-left: 0; overflow-y: scroll; -webkit-overflow-scrolling: touch; } + .wy-nav-content-wrap.shift { top: 70px; } + header .search__icon { display: block; position: absolute; @@ -737,6 +1107,7 @@ header .header__searchbar { z-index: 10; padding: 20px; } + /* header .header__container { text-align:center; } @@ -775,15 +1146,18 @@ header .header__searchbar { padding: 15px; width: 100%; } + header .header__searchbar input[type="text"] { width: 100%; border-radius: 50px; border: 1px solid #ddd; padding: 6px 12px; } + header .header__searchbar input:focus { outline: none; } + img { max-width: 100%; width: auto; @@ -792,7 +1166,8 @@ header .header__searchbar { @media screen and (min-width: 1400px) { .wy-nav-content-wrap { - background: #fcfcfc; /* gets rid of the wony gray bottom of the page when viewed on a wide screen */ + background: #fcfcfc; + /* gets rid of the wony gray bottom of the page when viewed on a wide screen */ } } @@ -800,18 +1175,19 @@ header .header__searchbar { /* override table width restrictions */ @media screen and (min-width: 767px) { - .wy-table-responsive table td { - /* !important prevents the common CSS stylesheets from overriding + .wy-table-responsive table td { + /* !important prevents the common CSS stylesheets from overriding this as on RTD they are loaded after this stylesheet */ - white-space: normal !important; - } + white-space: normal !important; + } - .wy-table-responsive { - overflow: visible !important; - } + .wy-table-responsive { + overflow: visible !important; + } } @media print { + body, div.wy-grid-for-nav, section.wy-nav-content-wrap { @@ -830,7 +1206,7 @@ header .header__searchbar { position: absolute; } - .header__container > :not(.header__logo) { + .header__container> :not(.header__logo) { display: none; } @@ -843,82 +1219,82 @@ header .header__searchbar { .notification-bar { color: #1B1D22; - text-align: center; - display: none; - width: 100%; - align-items: center; - justify-content: center; - height: 45px; + text-align: center; + display: none; + width: 100%; + align-items: center; + justify-content: center; + height: 45px; background-color: #FFBC1F; - position: fixed; - z-index: 9999; + position: fixed; + z-index: 9999; } @media (max-width: 770px) { - .notification-bar { - text-align: left; - /* TEMP FOR LONG COPY */ - height: 70px; - } + .notification-bar { + text-align: left; + /* TEMP FOR LONG COPY */ + height: 70px; + } } .notification-bar.closed { - display: none; + display: none; } .notification-bar__content { - padding: 0.5rem 3rem 0.5rem 1rem; - font-family: "trade-gothic-next","Lato","Helvetica Neue","Arial",sans-serif; + padding: 0.5rem 3rem 0.5rem 1rem; + font-family: "trade-gothic-next", "Lato", "Helvetica Neue", "Arial", sans-serif; font-weight: 700; - font-size: 15px; + font-size: 15px; line-height: 1.2; - width: 100%; + width: 100%; } -.notification-bar__content > div { +.notification-bar__content>div { overflow: hidden; - text-overflow: ellipsis; + text-overflow: ellipsis; display: flex; align-items: center; justify-content: center; } .notification-bar__wrapper { - display: flex; - align-items: center; + display: flex; + align-items: center; } -.notification-bar__content > div img { +.notification-bar__content>div img { display: none; } .notification-bar a { - color: #1B1D22; + color: #1B1D22; } .notification-bar__close { - font-size: 36px; - font-weight: 300; - position: absolute; - cursor: pointer; - right: -5px; - opacity: .3; - top: 0; - width: 64px; - line-height: 35px; + font-size: 36px; + font-weight: 300; + position: absolute; + cursor: pointer; + right: -5px; + opacity: .3; + top: 0; + width: 64px; + line-height: 35px; } @media (max-width: 770px) { - .notification-bar__close { - /* TEMP FOR LONG COPY */ - right: -25px; - top: 10px; - } + .notification-bar__close { + /* TEMP FOR LONG COPY */ + right: -25px; + top: 10px; + } } .notification-bar-hide:hover { - opacity: .5; + opacity: .5; } .with-notification .wy-side-scroll { @@ -934,10 +1310,10 @@ header .header__searchbar { } @media (max-width: 770px) { - .with-notification header { - /* TEMP FOR LONG COPY */ - top: 70px; - } + .with-notification header { + /* TEMP FOR LONG COPY */ + top: 70px; + } } .with-notification .wy-grid-for-nav { @@ -946,14 +1322,19 @@ header .header__searchbar { /* Redesign 2021 - BASE */ body { - font-family: 'Noto Sans','Helvetica Neue',Arial,sans-serif; + font-family: 'Noto Sans', 'Helvetica Neue', Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; color: #363A45; } -h1,h2,h3,h4,h5,h6 { - font-family: 'trade-gothic-next',sans-serif; +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'trade-gothic-next', sans-serif; font-weight: 800; } @@ -971,7 +1352,7 @@ a:hover { } pre { - font-family: 'Fira Mono','Courier New',Courier,monospace; + font-family: 'Fira Mono', 'Courier New', Courier, monospace; } /* Redesign 2021 - NAV */ @@ -986,7 +1367,7 @@ pre { .wy-menu, .wy-breadcrumbs, .header__links { - font-family: 'trade-gothic-next',sans-serif; + font-family: 'trade-gothic-next', sans-serif; } .wy-breadcrumbs li.wy-breadcrumbs-aside { @@ -998,6 +1379,7 @@ pre { .wy-breadcrumbs li.wy-breadcrumbs-aside { margin-top: 20px; } + .wy-breadcrumbs li.wy-breadcrumbs-aside .search__icon { padding: 0 20px 0 0; } @@ -1014,7 +1396,7 @@ pre { color: #888; } -.wy-menu > ul > li.current >a { +.wy-menu>ul>li.current>a { font-weight: 800; font-size: 16px; line-height: 152.7%; @@ -1025,6 +1407,7 @@ pre { .document ol { padding-left: 10px; } + .document ul li, .document ol li { margin-bottom: 5px; @@ -1047,7 +1430,7 @@ pre { background-color: #EBEBEF !important; } -.document .admonition.note p:not(.admonition-title ) { +.document .admonition.note p:not(.admonition-title) { padding-left: 15px; padding-right: 15px; } @@ -1056,64 +1439,76 @@ pre { *, :after, :before { - box-sizing: border-box; + box-sizing: border-box; } + .nav-container { - width: 100%; - max-width: 1100px; - margin-right: auto; - margin-left: auto; + width: 100%; + max-width: 1100px; + margin-right: auto; + margin-left: auto; } + .site-header--not-home .nav-container { - max-width: 1900px; + max-width: 1900px; } + @media (max-width: 1199.98px) { - .nav-container { - padding: 0 40px; - } + .nav-container { + padding: 0 40px; + } } + @media (max-width: 991.98px) { - .nav-container { - padding: 0 32px; - } + .nav-container { + padding: 0 32px; + } } + @media (max-width: 767.98px) { - .nav-container { - padding: 0 24px ; - } + .nav-container { + padding: 0 24px; + } + div:not(.site-header--not-home) .nav-container .site-header__col--logo { padding-left: 50px; } } + @media (min-width: 991.98px) { - .notification-bar__content > div img { + .notification-bar__content>div img { display: inline-block; margin-right: 10px; - width: auto; - height: 25px; + width: auto; + height: 25px; } + .site-header--not-home .nav-container { padding-left: 50px; padding-right: 50px; } } + @media (min-width: 1400px) { .site-header--not-home .nav-container { padding-right: 20vw; } } + .row { - display: flex; - flex-wrap: wrap; - margin-right: -24px; - margin-left: -24px; + display: flex; + flex-wrap: wrap; + margin-right: -24px; + margin-left: -24px; } + @media (max-width: 767.98px) { - .row { - margin-left: -24px; - margin-right: -24px; - } + .row { + margin-left: -24px; + margin-right: -24px; + } } + .col, .col-3, .col-9, @@ -1122,64 +1517,75 @@ pre { .col-lg-10, .col-md-3, .col-md-9 { - position: relative; - width: 100%; - padding-right: 24px; - padding-left: 24px; + position: relative; + width: 100%; + padding-right: 24px; + padding-left: 24px; } + .col { - flex-basis: 0; - flex-grow: 1; - max-width: 100%; + flex-basis: 0; + flex-grow: 1; + max-width: 100%; } + .col-3 { - flex: 0 0 25%; - max-width: 25%; + flex: 0 0 25%; + max-width: 25%; } + .col-9 { - flex: 0 0 75%; - max-width: 75%; + flex: 0 0 75%; + max-width: 75%; } + .col-12 { - flex: 0 0 100%; - max-width: 100%; + flex: 0 0 100%; + max-width: 100%; } + @media (min-width: 768px) { - .col-md-3 { - flex: 0 0 25%; - max-width: 25%; - } - .col-md-9 { - flex: 0 0 75%; - max-width: 75%; - } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } } + @media (min-width: 992px) { - .col-lg-2 { - flex: 0 0 16.666667%; - max-width: 16.666667%; - } - .col-lg-10 { - flex: 0 0 83.333333%; - max-width: 83.333333%; - } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } } + @media (max-width: 991.98px) { - .nav-open header { - position: fixed; - height: 100vh; - overflow-x: hidden; - } - .nav-open .site-header { - bottom: 0; - overflow-x: hidden; - } - .nav-open .site-header__col--menu { - height: calc(100vh - 75px); - overflow-y: scroll; - overflow-x: hidden; - padding-bottom: 100px; - } + .nav-open header { + position: fixed; + height: 100vh; + overflow-x: hidden; + } + + .nav-open .site-header { + bottom: 0; + overflow-x: hidden; + } + + .nav-open .site-header__col--menu { + height: calc(100vh - 75px); + overflow-y: scroll; + overflow-x: hidden; + padding-bottom: 100px; + } } /* START NEW NAV */ @@ -1196,7 +1602,7 @@ pre { } .site-header { - font-family: 'trade-gothic-next',sans-serif; + font-family: 'trade-gothic-next', sans-serif; background: #fff; box-shadow: 0 4px 15px rgba(0, 0, 0, .1); position: -webkit-sticky; @@ -1521,7 +1927,7 @@ pre { display: none !important; } - .site-header__col--menu .site-nav__hassubnav.is-active > a svg { + .site-header__col--menu .site-nav__hassubnav.is-active>a svg { transform: rotate(0); } @@ -2022,7 +2428,7 @@ pre { padding: 50px 60px 20px; } - .site-header__col--menu .site-nav__hassubnav .sub-menu__developers .sub-menu__developers-grid-wrapper { + .site-header__col--menu .site-nav__hassubnav .sub-menu__developers .sub-menu__developers-grid-wrapper { display: grid; grid-template-columns: 75px 95px; -moz-column-gap: 70px; @@ -2072,9 +2478,9 @@ pre { } @media (max-width:991.98px) { - .site-header__col--menu { - padding: 0; - } + .site-header__col--menu { + padding: 0; + } .site-header__col--menu .site-nav__hassubnav .sub-menu__col--title { margin-bottom: 0; @@ -2150,6 +2556,7 @@ pre { } @media (min-width:992px) { + .site-header__col--menu .site-nav__hassubnav .sub-menu__platform-mobile, .site-header__col--menu .site-nav__hassubnav .sub-menu__solutions-mobile { display: none !important; @@ -2162,6 +2569,7 @@ pre { } @media (min-width:992px) { + .site-header__col--menu .site-nav__hassubnav .sub-menu__platform-desktop, .site-header__col--menu .site-nav__hassubnav .sub-menu__solutions-desktop { padding: 60px 0; @@ -2210,6 +2618,7 @@ pre { } @media (min-width:1200px) { + .site-header__col--menu .site-nav__hassubnav .sub-menu__platform-desktop .sub-menu__platform-desktop-wrapper, .site-header__col--menu .site-nav__hassubnav .sub-menu__solutions-desktop .sub-menu__platform-desktop-wrapper { margin-right: 110px; @@ -2337,62 +2746,69 @@ footer.site-footer { .mm-button { - display: inline-block; - text-align: center; - font-family: Fira Mono, monospace; - font-weight: 700; - border-radius: 30px; - border: 3px solid transparent; - cursor: pointer; - background: transparent; - font-size: 14px; - line-height: 21px; - padding: 11px 30px; - transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out, border-color 0.3s ease-in-out; + display: inline-block; + text-align: center; + font-family: Fira Mono, monospace; + font-weight: 700; + border-radius: 30px; + border: 3px solid transparent; + cursor: pointer; + background: transparent; + font-size: 14px; + line-height: 21px; + padding: 11px 30px; + transition: color 0.3s ease-in-out, background-color 0.3s ease-in-out, border-color 0.3s ease-in-out; } + @media (min-width: 768px) { - .mm-button { - font-size: 17px; - line-height: 25.5px; - padding: 12px 35px; - } + .mm-button { + font-size: 17px; + line-height: 25.5px; + padding: 12px 35px; + } } + .mm-button.mm-button-solid.mm-button-blue { - background-color: #1c58d9; - border-color: #1c58d9; - color: #fff; + background-color: #1c58d9; + border-color: #1c58d9; + color: #fff; } + @media (min-width: 768px) { - .mm-button.mm-button-solid.mm-button-blue:focus, - .mm-button.mm-button-solid.mm-button-blue:hover { - background-color: #043cb5; - border-color: #043cb5; - } + + .mm-button.mm-button-solid.mm-button-blue:focus, + .mm-button.mm-button-solid.mm-button-blue:hover { + background-color: #043cb5; + border-color: #043cb5; + } } .site-nav__button .mm-button { - border-width: 1px !important; - transition: none !important; + border-width: 1px !important; + transition: none !important; } .mm-button-outline--thin.mm-button-outline--thin-blue { - color: #043cb5 !important; - border: 1px solid #043cb5; + color: #043cb5 !important; + border: 1px solid #043cb5; } @media (max-width: 767px) { - .mm-button-outline--thin.mm-button-outline--thin-blue:hover, - .mm-button-outline--thin.mm-button-outline--thin-blue:focus { - color: #043cb5 !important; - } + + .mm-button-outline--thin.mm-button-outline--thin-blue:hover, + .mm-button-outline--thin.mm-button-outline--thin-blue:focus { + color: #043cb5 !important; + } } + @media (min-width: 768px) { - .mm-button-outline--thin.mm-button-outline--thin-blue:hover, - .mm-button-outline--thin.mm-button-outline--thin-blue:focus { - color: white !important; - background-color: #043CB5; - border: 1px solid #043CB5; - } + + .mm-button-outline--thin.mm-button-outline--thin-blue:hover, + .mm-button-outline--thin.mm-button-outline--thin-blue:focus { + color: white !important; + background-color: #043CB5; + border: 1px solid #043CB5; + } } /* Redesign 2021 - SEARCH */ @@ -2401,140 +2817,206 @@ footer.site-footer { } kbd { - display: inline-block; - border: 1px solid #ccc; - border-radius: 4px; - padding: 0.1em 0.5em; - margin: 0 0.2em; - box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2), 0 0 0 2px #fff inset; - background-color: #f7f7f7; + display: inline-block; + border: 1px solid #ccc; + border-radius: 4px; + padding: 0.1em 0.5em; + margin: 0 0.2em; + box-shadow: 0 1px 0px rgba(0, 0, 0, 0.2), 0 0 0 2px #fff inset; + background-color: #f7f7f7; } -/* 2022 Badges */ +/* Badges */ .mm-badge { - display: inline-block; - border: 1px solid #BABEC9; - border-radius: 6px; - padding: 14px; - margin-bottom: 30px; + display: inline-block; + border: 1px solid #BABEC9; + border-radius: 6px; + padding: 14px; + margin-bottom: 30px; +} + +.mm-badge--academy { + padding: 0; + border: 1px solid var(--neutral-100, #E8E9ED); + background: var(--neutral-50, #F4F4F6); +} + +@media (max-width: 960px) { + .mm-badge--academy { + display: flex; + align-items: center; + } +} + +.mm-badge--academy:hover { + background: var(--neutral-100, #E8E9ED); + border-color: #DDDFE4; +} + +.mm-badge.mm-badge--academy img { + height: 75px; + width: auto; + margin: 0 !important; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; +} + +@media (min-width: 769px) and (max-width: 960px) { + .mm-badge.mm-badge--academy img { + height: 85px; + } +} + +.mm-badge--academy span { + display: block; +} + +.mm-badge--academy > * { + display: inline-block; +} + +.mm-badge__copy { + vertical-align: middle; + padding: 0 16px; +} + +.mm-badge__accent-text { + color: var(--neutral-600, #767D93); + font-size: 10px; + font-style: normal; + font-weight: 500; + line-height: normal; + letter-spacing: 0.7px; + text-transform: uppercase; + margin-bottom: 3px; +} + +.mm-badge__title { + color: var(--neutral-950, #363A45); + font-family: 'trade-gothic-next', sans-serif; + font-size: 16px; + font-style: normal; + font-weight: 800; + line-height: normal; + flex: 0 0 auto; } .mm-badge p, .mm-badge ul { - font-size: 12px; - margin: 0; + font-size: 12px; + margin: 0; } @media (max-width: 760px) { - .mm-badge ul { - padding: 0; - } + .mm-badge ul { + padding: 0; + } } .mm-badge ul { - margin-bottom: 0 !important; + margin-bottom: 0 !important; } .mm-badge ul li { - line-height: 1.3; - margin: 0; + line-height: 1.3; + margin: 0; } .mm-badge h3 { - font-size: 12px; - font-weight: 700; + font-size: 12px; + font-weight: 700; } @media (min-width: 960px) { - .mm-badge h3 { - margin-bottom: 0; - } + .mm-badge h3 { + margin-bottom: 0; + } } /* Version */ .mm-badge p:first-child { - font-style: italic; - margin-bottom: 5px; + font-style: italic; + margin-bottom: 5px; } .mm-badge p:last-child { - margin-top: 2px; + margin-top: 2px; } .mm-badge a { - font-weight: bold; + font-weight: bold; } .mm-badge img { - width: 16px; - height: auto; - margin-right: 5px; + width: 16px; + height: auto; + margin-right: 5px; } .mm-badge.mm-badge--note { - border: 1px solid rgba(255, 188, 31, 1); - background-color:rgba(255, 212, 112, 0.25); + border: 1px solid rgba(255, 188, 31, 1); + background-color: rgba(255, 212, 112, 0.25); } .mm-badge.mm-badge--note p:first-child { - font-style: normal; - font-weight: bold; + font-style: normal; + font-weight: bold; } img.mm-badge-flag { - width: 13px; - margin-right: 3px; + width: 13px; + margin-right: 3px; } .mm-badge.mm-badge--combo { - padding: 15px; + padding: 15px; } @media (min-width: 960px) { - .mm-badge.mm-badge--combo { - display: flex; - } + .mm-badge.mm-badge--combo { + display: flex; + } } .mm-badge__plan-deploy { - border-bottom: 1px solid #BABEC9; - padding: 0px 0px 20px 0px; - display: flex; - justify-content: space-between; - align-items: center; + border-bottom: 1px solid #BABEC9; + padding: 0px 0px 20px 0px; + display: flex; + justify-content: space-between; + align-items: center; } @media (max-width: 959px) { - .mm-badge__plan-deploy p { - width: 45%; - margin-bottom: 0 !important; - } + .mm-badge__plan-deploy p { + width: 45%; + margin-bottom: 0 !important; + } } @media (min-width: 960px) { - .mm-badge__plan-deploy { - display: block; - border-right: 1px solid #BABEC9; - border-bottom: none; - padding: 5px 15px 0px 0px; - } + .mm-badge__plan-deploy { + display: block; + border-right: 1px solid #BABEC9; + border-bottom: none; + padding: 5px 15px 0px 0px; + } - .mm-badge__plan-deploy p:first-child { - margin-right: 0px; - margin-bottom: 5px; - } + .mm-badge__plan-deploy p:first-child { + margin-right: 0px; + margin-bottom: 5px; + } } .mm-badge__reqs { - padding: 20px 0px 0px 0px; + padding: 20px 0px 0px 0px; } @media (min-width: 960px) { - .mm-badge__reqs { - display: flex; - padding: 5px 0px 0px 15px; - } + .mm-badge__reqs { + display: flex; + padding: 5px 0px 0px 15px; + } } /* Config Settings */ @@ -2573,183 +3055,183 @@ mark { /* Click to copy buttons */ .mm-code-copy { - margin-top: 30px; - margin-bottom: 50px; - display: flex; - flex-direction: column-reverse; + margin-top: 30px; + margin-bottom: 50px; + display: flex; + flex-direction: column-reverse; } @media (min-width: 1000px) and (max-width: 1280px) { - .mm-code-copy.mm-code-copy--long { - display: grid; - column-gap: 20px; - grid-template-columns: 1fr 220px; - } + .mm-code-copy.mm-code-copy--long { + display: grid; + column-gap: 20px; + grid-template-columns: 1fr 220px; + } - .mm-code-copy.mm-code-copy--long .mm-button { - margin-left: 0px; - line-height: 1.3; - } + .mm-code-copy.mm-code-copy--long .mm-button { + margin-left: 0px; + line-height: 1.3; + } } @media (min-width: 960px) { - .mm-code-copy { - flex-direction: row; - } + .mm-code-copy { + flex-direction: row; + } } .mm-code-copy__wrapper { - position: relative; - align-self: flex-start; - max-width: 670px; + position: relative; + align-self: flex-start; + max-width: 670px; } .mm-code-copy__copied-notice { - font-size: 16px; - text-align: center; - color: #fff; - background: #162645; - padding: 10px 12px; - border-bottom-left-radius: 0.5rem; - border-bottom-right-radius: 0.5rem; - position: absolute; - right: calc(50% - 100px); - z-index: 0; - width: 200px; - opacity: 0; - visibility: hidden; - transition: all .2s; - font-family: trade-gothic-next,sans-serif; - bottom: -40px; + font-size: 16px; + text-align: center; + color: #fff; + background: #162645; + padding: 10px 12px; + border-bottom-left-radius: 0.5rem; + border-bottom-right-radius: 0.5rem; + position: absolute; + right: calc(50% - 100px); + z-index: 0; + width: 200px; + opacity: 0; + visibility: hidden; + transition: all .2s; + font-family: trade-gothic-next, sans-serif; + bottom: -40px; } .mm-code-copy__copied-notice.show { - opacity: 1; - visibility: visible; - top: unset; - bottom: -35px; + opacity: 1; + visibility: visible; + top: unset; + bottom: -35px; } @media (min-width: 960px) { - .mm-code-copy__copied-notice { - /* top: 50px; */ - } + .mm-code-copy__copied-notice { + /* top: 50px; */ + } - .mm-code-copy__copied-notice.show { - /* top: 54px; */ - /* bottom: unset; */ - } + .mm-code-copy__copied-notice.show { + /* top: 54px; */ + /* bottom: unset; */ + } } .install-hidden-field { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - border: none; - opacity: 0; + position: absolute; + width: 1px; + height: 1px; + padding: 0; + border: none; + opacity: 0; } .mm-code-copy code { - background-color: #ECF0F9 !important; - border-radius: 5px; - padding: 18px 10px; - border: none !important; - color: #1C58D9 !important; - font-size: 13px !important; - font-family: Fira Mono, monospace !important; - display: inline-block; + background-color: #ECF0F9 !important; + border-radius: 5px; + padding: 18px 10px; + border: none !important; + color: #1C58D9 !important; + font-size: 13px !important; + font-family: Fira Mono, monospace !important; + display: inline-block; } .mm-code-copy code:hover { - cursor: pointer; + cursor: pointer; } @media (min-width: 1400px) { - .mm-code-copy code { - padding: 18px; - font-size: 15px !important; - } + .mm-code-copy code { + padding: 18px; + font-size: 15px !important; + } } .mm-code-copy button.mm-button { - font-size: 13px; - background-color: #4A69AB; - display: flex; - align-items: center; - line-height: 1; - padding: 13px 25px; - align-self: flex-start; - margin-bottom: 20px; + font-size: 13px; + background-color: #4A69AB; + display: flex; + align-items: center; + line-height: 1; + padding: 13px 25px; + align-self: flex-start; + margin-bottom: 20px; } @media (min-width: 960px) { - .mm-code-copy button.mm-button { - margin-left: 20px; - margin-bottom: 0px; - } + .mm-code-copy button.mm-button { + margin-left: 20px; + margin-bottom: 0px; + } } @media (min-width: 1400px) { - .mm-code-copy button.mm-button { - padding: 15px 25px; - font-size: 17px; - } + .mm-code-copy button.mm-button { + padding: 15px 25px; + font-size: 17px; + } } .mm-code-copy button.mm-button:hover { - background-color: #2C4987 !important; + background-color: #2C4987 !important; } .mm-code-copy button.mm-button svg { - margin-right: 10px; + margin-right: 10px; } .mm-code-copy button.mm-button span { - color: #ffffff; - font-weight: 700; + color: #ffffff; + font-weight: 700; } /* mm-code-block */ .mm-code-block .highlight { - background-color: #ECF0F9 !important; - border-radius: 5px; - padding: 18px 15px; - border: none !important; - display: inline-block; + background-color: #ECF0F9 !important; + border-radius: 5px; + padding: 18px 15px; + border: none !important; + display: inline-block; } @media (max-width: 720px) { - .mm-code-block .highlight { - width: 100%; - } + .mm-code-block .highlight { + width: 100%; + } } @media (min-width: 1400px) { - .mm-code-block .highlight { - padding: 18px; - } + .mm-code-block .highlight { + padding: 18px; + } } .mm-code-block .highlight pre { - color: #1C58D9 !important; - font-family: Fira Mono, monospace !important; - font-size: 13px !important; - white-space: pre-line !important; + color: #1C58D9 !important; + font-family: Fira Mono, monospace !important; + font-size: 13px !important; + white-space: pre-line !important; } @media (min-width: 1400px) { - .mm-code-block .highlight pre { - font-size: 15px !important; - } + .mm-code-block .highlight pre { + font-size: 15px !important; + } } .mm-code-block pre { - padding: 0 !important; + padding: 0 !important; } .mm-code-block pre span { - color: #1C58D9 !important; + color: #1C58D9 !important; } /* Inline code for install-mattermost-omnibus */ @@ -2771,12 +3253,13 @@ mark { } @media (max-width: 959px) { - #install-mattermost-omnibus p code, - #install-mattermost-omnibus h3 code, - #install-mattermost-server-using-the-tarball p code, - #install-mattermost-server-using-the-tarball h3 code, - #install-mattermost-server-on-ubuntu p code, - #install-mattermost-server-on-ubuntu h3 code { - word-break: break-all; - } + + #install-mattermost-omnibus p code, + #install-mattermost-omnibus h3 code, + #install-mattermost-server-using-the-tarball p code, + #install-mattermost-server-using-the-tarball h3 code, + #install-mattermost-server-on-ubuntu p code, + #install-mattermost-server-on-ubuntu h3 code { + word-break: break-all; + } } \ No newline at end of file diff --git a/source/about/mattermost-for-microsoft-teams.rst b/source/about/mattermost-for-microsoft-teams.rst index 59ce3107e6e..8465f695460 100644 --- a/source/about/mattermost-for-microsoft-teams.rst +++ b/source/about/mattermost-for-microsoft-teams.rst @@ -9,6 +9,9 @@ Mattermost for Microsoft Teams enables you to collaborate with technical & opera - A Mattermost plugin that enables direct message, group message, and chat synchronization as well as the ability to link and synchronize channel-based collaboration. - A Mattermost app for Microsoft Teams embedded within a Microsoft Teams workspace across desktop and web clients that enables Central IT organizations to provide an extended customization experience for technical and operational teams while staying firmly integrated into the Microsoft 365 all-employee platform. +.. include:: ../_static/badges/academy-msteams.rst + :start-after: :nosearch: + See the following product documentation to install and use Mattermost for Microsoft Teams: - `Install the Mattermost for Microsoft Teams plugin `__ diff --git a/source/install/self-managed-changelog.md b/source/archive/self-managed-changelog.md similarity index 99% rename from source/install/self-managed-changelog.md rename to source/archive/self-managed-changelog.md index 976155ca2a3..f6ebb63af80 100644 --- a/source/install/self-managed-changelog.md +++ b/source/archive/self-managed-changelog.md @@ -9,7 +9,6 @@ Latest Mattermost Releases: - [Release v9.1 - Feature Release](#release-v9-1-feature-release) - [Release v9.0 - Major Release](#release-v9-0-major-release) - [Release v8.1 - Extended Support Release](#release-v8-1-extended-support-release) -- [Release v8.0 - Major Release](#release-v8-0-major-release) - [Release v7.8 - Extended Support Release](#release-v7-8-extended-support-release) ## Release v9.1 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) diff --git a/source/collaborate/collaborate-using-mattermost-for-microsoft-teams.rst b/source/collaborate/collaborate-using-mattermost-for-microsoft-teams.rst index b4998d40be3..13b64b2da11 100644 --- a/source/collaborate/collaborate-using-mattermost-for-microsoft-teams.rst +++ b/source/collaborate/collaborate-using-mattermost-for-microsoft-teams.rst @@ -9,7 +9,8 @@ Collaborate using Mattermost for MS Teams `Mattermost for Microsoft Teams `__ enables you to collaborate with technical & operations teams seamlessly through the Mattermost app, without leaving Microsoft Teams. -Join us on `Mattermost Academy `__ to enroll in the `Mattermost for Microsoft Teams `__ training course where you'll learn how to start collaborating with colleagues across both systems. +.. include:: ../_static/badges/academy-msteams.rst + :start-after: :nosearch: Connect your Mattermost account to your MS Teams account --------------------------------------------------------- diff --git a/source/collaborate/format-messages.rst b/source/collaborate/format-messages.rst index 4c14d2a517e..56cda02a444 100644 --- a/source/collaborate/format-messages.rst +++ b/source/collaborate/format-messages.rst @@ -54,6 +54,9 @@ Format messages :local: :depth: 2 +.. include:: ../_static/badges/academy-message-formatting.rst + :start-after: :nosearch: + Use the messaging formatting toolbar ------------------------------------ @@ -118,6 +121,7 @@ You can use either ``_`` or ``*`` around a word or phrase to make it italic, or .. |bold_italics| image:: ../images/bold_italics.png :width: 100px :alt: Bold Italics + .. |strikethrough| image:: ../images/strikethrough.png :width: 100px :alt: Strike Through diff --git a/source/collaborate/install-desktop-app.rst b/source/collaborate/install-desktop-app.rst index 6a2d2fbcd17..c1e733eba12 100644 --- a/source/collaborate/install-desktop-app.rst +++ b/source/collaborate/install-desktop-app.rst @@ -193,7 +193,7 @@ Additional documentation resources The following additional documentation resources are also available for the Mattermost desktop app: -- `Desktop App changelog `__ +- `Desktop App changelog `__ - `Configure your Desktop App experience `__ - `Source code `__ - `Contributor’s guide `__ diff --git a/source/collaborate/make-calls.rst b/source/collaborate/make-calls.rst index a243a4dee59..084f4610ec1 100644 --- a/source/collaborate/make-calls.rst +++ b/source/collaborate/make-calls.rst @@ -16,6 +16,9 @@ On this page: - `Troubleshooting <#troubleshooting>`__ - `Debugging <#debugging>`__ +.. include:: ../_static/badges/academy-calls.rst + :start-after: :nosearch: + From Mattermost v7.0, you can: - Start or join a call from desktop and mobile apps in addition to web browsers. diff --git a/source/collaborate/message-priority.rst b/source/collaborate/message-priority.rst index 56c06cd5620..539a0ef9662 100644 --- a/source/collaborate/message-priority.rst +++ b/source/collaborate/message-priority.rst @@ -45,12 +45,20 @@ To enable persistent notifications for a message: .. note:: - - Recipients must have Mattermost desktop and/or mobile push notifications enabled to receive persistent notifications. - @channel, @all and @here mentions don't send persistent notifications. - - You're notified depending on your `notifications preferences `__ for desktop and mobile push notifications. You won't be notified when your availability is set to Do Not Disturb, or if you're `Out of Office `__. - System admins can customize the maximum number of @mentions permitted, how frequently and how many persistent notifications are sent, as well as disable persistent notifications for all users, if preferred. By default, users are notified every 5 minutes for a total of 30 minutes. See the `configuration `__ documentation for details. -Stop a persistent notification by replying to the thread, selecting the **Acknowlege** icon (when present), or reacting to the thread with an emoji. Persistent notifications also stop being sent if the original message is deleted, or if the maximum number of persistent notifications are sent. +Receive persistent notifications +-------------------------------- + +You must have desktop and/or mobile push notifications enabled to receive persistent notifications. How you're notified depends on your `notifications preferences `__ for desktop and mobile push notifications. You won't be notified when your availability is set to **Do Not Disturb**, or if you're `Out of Office `__. Learn more about customizing how you receive notifications by visiting the `get notified `__ documentation. + +Urgent messages show a red mention badge which remains visibible until you view the message. Selecting the **Acknowledge** icon (when present) won't impact the urgent red mention badge. + +.. image:: ../images/urgent-message.png + :alt: Example of the channel sidebar with both regular and urgent unread messages. + +To stop receiving persistent notifications, you can reply to the thread, select the **Acknowlege** icon (when present), or react to the thread with an emoji. Persistent notifications also stop if the original message is deleted, or if the maximum number of persistent notifications are sent. Request acknowledgements ------------------------ diff --git a/source/collaborate/organize-using-teams.rst b/source/collaborate/organize-using-teams.rst index 693524fd0d4..9aaa94a76f1 100644 --- a/source/collaborate/organize-using-teams.rst +++ b/source/collaborate/organize-using-teams.rst @@ -22,7 +22,10 @@ Organize using teams A team is a digital workspace where you and your teammates can collaborate in Mattermost. Depending on how Mattermost is set up in your organization, you can belong to one team or multiple teams. -Only users with the **Create Teams** permission can `create new teams <#create-a-team>`__ and `manage team settings `__ for existing teams. +Users with the **Create Teams** permission can `create new teams <#create-a-team>`__ and `manage team settings `__ for existing teams. + +.. include:: ../_static/badges/academy-teams.rst + :start-after: :nosearch: Single team versus multiple teams ---------------------------------- diff --git a/source/collaborate/search-for-messages.rst b/source/collaborate/search-for-messages.rst index d28af29a15b..cb7e11d6f2f 100644 --- a/source/collaborate/search-for-messages.rst +++ b/source/collaborate/search-for-messages.rst @@ -18,6 +18,9 @@ Search for messages Use Mattermost search to find messages, replies, and the contents of files shared across all channels you're a member of in your team's conversation history. You can also search by `hashtags <#hashtags>`__ or perform more advanced searches using `search modifiers <#search-modifiers>`__. +.. include:: ../_static/badges/academy-search.rst + :start-after: :nosearch: + Search for message and files ----------------------------- @@ -46,7 +49,7 @@ Search for message and files File contents that match on file name, or contain matching text content within supported document types, are returned in the Search Results pane. Each search result includes file name, extension, and size details, as well as details about when and where the file was originally shared. - - For Mattermost Cloud workspaces, supported document file formats include PDF, PPTX, DOCX, ODT, HTML, and plain text documents. DOC, RTF, and PAGES file formats, as well as the contents of ZIP files, are not supported. + - For Mattermost Cloud workspaces, supported document file formats include PDF, PPTX, DOCX, ODT, HTML, and plain text documents. DOC and RTF file formats, as well as the contents of ZIP files, are not supported. - For Mattermost self-hosted deployments, supported document file formats include PDF, PPTX, DOCX, ODT, HTML, and plain text documents. .. note:: @@ -54,7 +57,7 @@ Search for message and files System admins can extend file content search support for self-hosted deployments to include: - `files shared before upgrading to Mattermost Server v5.35 `__. - - `DOC, RTF, and PAGES file formats `__. + - `DOC and RTF file formats `__. - `documents within ZIP files `__. **Filter results by file type** diff --git a/source/conf.py b/source/conf.py index b9ecbcdcde7..058e4cfc197 100644 --- a/source/conf.py +++ b/source/conf.py @@ -48,6 +48,8 @@ def setup(_: Sphinx): sphinx_tabs_disable_tab_closing = True sphinx_tabs_disable_css_loading = False +myst_enable_extensions = ["colon_fence",] + # Prefix document path to section labels, otherwise autogenerated labels would look like 'heading' # rather than 'path/to/file:heading' autosectionlabel_prefix_document = True @@ -103,11 +105,7 @@ def setup(_: Sphinx): "administration/bulk-export.html": "https://docs.mattermost.com/manage/bulk-export-tool.html", "administration/changelog.html": - "https://docs.mattermost.com/install/self-managed-changelog.html", -"administration/changelog.html": - "https://docs.mattermost.com/install/self-managed-changelog.html", -"administration/changelog.html#database-changes-from-v3-4-to-v3-5": - "https://docs.mattermost.com/install/self-managed-changelog.html#id41", + "https://docs.mattermost.com/deploy/mattermost-changelog.html", "administration/command-line-tools.html": "https://docs.mattermost.com/manage/command-line-tools.html", "administration/command-line-tools.html#mattermost-user-delete": @@ -755,7 +753,7 @@ def setup(_: Sphinx): # Cloud redirects "cloud/cloud-administration/cloud-changelog.html": - "https://docs.mattermost.com/install/cloud-changelog.html", + "https://docs.mattermost.com/deploy/legacy-cloud-changelog.html", "cloud/cloud-administration/cloud-compliance.html": "https://docs.mattermost.com/comply/cloud-compliance-and-oversight.html", "cloud/cloud-integrations/cloud-slash-commands.html": @@ -2024,7 +2022,7 @@ def setup(_: Sphinx): # Help redirects resulting from the June 2021 docs reorganization project. "help/apps/desktop-changelog.html": - "https://docs.mattermost.com/install/desktop-app-changelog.html", + "https://docs.mattermost.com/deploy/desktop-app-changelog.html", "help/apps/desktop-guide.html": "https://docs.mattermost.com/welcome/manage-desktop-app-server-connections.html", "help/apps/desktop-mvp.html": @@ -2197,6 +2195,12 @@ def setup(_: Sphinx): "https://docs.mattermost.com/install/desktop-custom-dictionaries.html#configure-the-desktop-app", "install/desktop-custom-dictionaries.html#removing-customized-dictionaries": "https://docs.mattermost.com/install/desktop-custom-dictionaries.html#remove-custom-dictionaries", +"install/self-managed-changelog.html": + "https://docs.mattermost.com/deploy/legacy-mattermost-changelog.html", +"install/legacy-self-hosted-changelog.html": + "https://docs.mattermost.com/deploy/legacy-mattermost-changelog.html", +"install/cloud-changelog.html": + "https://docs.mattermost.com/deploy/legacy-cloud-changelog.html", # Important Note: The following guide files were reorg'd in FY23 Q3. "install/desktop-app-install.html": "https://docs.mattermost.com/collaborate/install-desktop-app.html", @@ -3132,7 +3136,7 @@ def setup(_: Sphinx): "welcome/manage-desktop-app-server-connections.html": "https://docs.mattermost.com/welcome/manage-multiple-server-connections.html", "welcome/insights.html": - "https://docs.mattermost.com/install/deprecated-features.html#mattermost-server-v9-0-0", + "https://docs.mattermost.com/deploy/deprecated-features.html#mattermost-server-v9-0-0", "welcome/log-in.html": "https://docs.mattermost.com/collaborate/access-your-workspace.html", "welcome/keyboard-shortcuts.html": @@ -3204,7 +3208,7 @@ def setup(_: Sphinx): "welcome/set-your-status-availability.html#set-your-availability-as-do-not-disturb": "https://docs.mattermost.com/preferences/set-your-status-availability.html#set-your-availability-as-do-not-disturb", "welcome/set-your-status-availability.html#how-mattermost-determines-your-availability": - "https://docs.mattermost.com/preferences/set-your-status-availability.html#how-mattermost-determines-your-availability", + "https://docs.mattermost.com/preferences/set-your-status-availability.html#set-your-availability", "welcome/customize-your-theme.html": "https://docs.mattermost.com/preferences/customize-your-theme.html", "welcome/customize-your-theme.html#import-theme-from-slack": @@ -3287,9 +3291,9 @@ def setup(_: Sphinx): # built documents. # # The short X.Y version. -# version = '9.1' +# version = '9.2' # The full version, including alpha/beta/rc tags. -# release = '9.1' +# release = '9.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/source/configure/database-configuration-settings.rst b/source/configure/database-configuration-settings.rst index 459940fe114..cef7a36313f 100644 --- a/source/configure/database-configuration-settings.rst +++ b/source/configure/database-configuration-settings.rst @@ -3,6 +3,9 @@ Configure the database environment in which Mattermost is deployed by going to **System Console > Environment > Database**, or by editing the ``config.json`` file as described in the following tables. Changes to configuration settings in this section require a server restart before taking effect. +.. include:: ../_static/badges/academy-mattermost-database.rst + :start-after: :nosearch: + .. config:setting:: database-drivername :displayname: Driver name (Database) :systemconsole: N/A diff --git a/source/configure/file-storage-configuration-settings.rst b/source/configure/file-storage-configuration-settings.rst index 31b158d7a8b..3cadfc15684 100644 --- a/source/configure/file-storage-configuration-settings.rst +++ b/source/configure/file-storage-configuration-settings.rst @@ -3,6 +3,9 @@ Configure file storage settings by going to **System Console > Environment > File Storage**, or by editing the ``config.json`` file as described in the following tables. +.. include:: ../_static/badges/academy-file-storage.rst + :start-after: :nosearch: + .. note:: Mattermost currently supports storing files on the local filesystem and Amazon S3 or S3-compatible containers. We have tested Mattermost with `MinIO `__ and `Digital Ocean Spaces `__ products, but not all S3-compatible containers on the market. If you are looking to use other S3-compatible containers, we recommend completing your own testing. @@ -116,9 +119,9 @@ Enable document search by content | If this command is not run, users can search older files based on file name only. | | | | You can optionally install the following `dependencies `__ to extend content searching support in | -| Mattermost to include file formats beyond PDF, DOCX, and ODT, such as DOC, RTF, XML, HTML, and PAGES: | +| Mattermost to include file formats beyond PDF, DOCX, and ODT, such as DOC, RTF, XML, and HTML: | | | -| - **tidy**: Used to search the contents of HTML and PAGES documents. | +| - **tidy**: Used to search the contents of HTML documents. | | - **wv**: Used to search the contents of DOC documents. | | - **popplerutils**: Used to significantly improve server performance when extracting the contents of PDF documents. | | - **unrtf**: Used to search the contents of RTF documents. | diff --git a/source/configure/logging-configuration-settings.rst b/source/configure/logging-configuration-settings.rst index 0cfada08456..275de2d867e 100644 --- a/source/configure/logging-configuration-settings.rst +++ b/source/configure/logging-configuration-settings.rst @@ -80,10 +80,12 @@ Output console logs as JSON | | - Environment variable: ``MM_LOGSETTINGS_CONSOLEJSON`` | | - **true**: **(Default)** Logged events are | | | written in a machine-readable JSON format. | | -| Typically set to **true** in production. | | | - **false**: Logged events are written in | | | plain text. | | +-----------------------------------------------+---------------------------------------------------------------------+ +| **Note**: Typically set to **true** in a production environment. | ++-----------------------------------------------+---------------------------------------------------------------------+ + .. config:setting:: log-enablefile :displayname: Output logs to file (Logging) @@ -109,11 +111,12 @@ Output logs to file | `file log level <#file-log-level>`__ | | | configuration to a ``mattermost.log`` file | | | located in the directory configured via | | -| file location. Typically set to **true** | | -| in production. | | +| ``file location``. | | | - **false**: Logged events aren’t written to | | | a file. | | +-----------------------------------------------+---------------------------------------------------------------------+ +| **Note**: Typically set to **true** in a production environment. | ++-----------------------------------------------+---------------------------------------------------------------------+ .. config:setting:: log-filelevel :displayname: File log level (Logging) @@ -164,10 +167,11 @@ Output file logs as JSON | | - Environment variable: ``MM_LOGSETTINGS_FILEJSON`` | | - **true**: **(Default)** Logged events are | | | written in a machine-readable JSON format. | | -| Typically set to **true** in production. | | | - **false**: Logged events are written in | | | plain text. | | +-----------------------------------------------+---------------------------------------------------------------------+ +| **Note**: Typically set to **true** in a production environment. | ++-----------------------------------------------+---------------------------------------------------------------------+ .. config:setting:: log-filelocation :displayname: File log directory (Logging) @@ -258,7 +262,7 @@ Output logs to multiple targets +-----------------------------------------------+---------------------------------------------------------------------------+ | Configure Mattermost to allow any combination | - System Config path: **Environment > Logging** | -| of console, local file, syslog, and TCP | - ``config.json setting``: ``".LogSettings.AdvancedLoggingJSON": "",`` | +| of console, local file, syslog, and TCP | - ``config.json setting``: ``".LogSettings.AdvancedLoggingJSON":: "",`` | | socket targets, and send log records to | - Environment variable: ``MM_LOGSETTINGS_ADVANCEDLOGGINGJSON`` | | multiple targets. | | | | | @@ -279,12 +283,12 @@ Output logs to multiple targets .. config:setting:: log-lockteammatenamedisplay :displayname: Teammate name display (Logging) :systemconsole: N/A - :configjson: LockTeammateNameDisplay + :configjson: TeamSettings.LockTeammateNameDisplay :environment: N/A - :description: Control Teammate Name Display at the system level. + :description: Enables system admins to control Teammate Name Display at the system level. - **true**: Allows System Admins to control Teammate Name Display at the system level. - - **false**: System Admins cannot control Teammate Name Display at the system level. + - **false**: **(Default)** System Admins cannot control Teammate Name Display at the system level. Teammate name display ~~~~~~~~~~~~~~~~~~~~~~ @@ -294,23 +298,23 @@ Teammate name display *Available in legacy Enterprise Edition E20* -This setting isn't available in the System Console and can only be set in ``config.json``. - -Control Teammate Name Display at the system level. - -**True**: Allows System Admins to control Teammate Name Display at the system level. - -**False**: System Admins cannot control Teammate Name Display at the system level. - -+------------------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"LockTeammateNameDisplay"`` with options ``true`` and ``false``. | -+------------------------------------------------------------------------------------------------------------------+ ++----------------------------------------------------+--------------------------------------------------------------------------------+ +| Enable system admins to control Teammate Name | - System Config path: N/A | +| Display at the system level. | - ``config.json setting``: ``".TeamSettings.LockTeammateNameDisplay": false",``| +| | - Environment variable: ``MM_TEAMSETTINGS_LOCKTEAMMATENAMEDISPLAY`` | +| - **true**: System admins can control Teammate | | +| Name Display at the system level. | | +| - **false**: **(Default)** System admins can't | | +| control Teammate Name Display at the system | | +| level. | | ++----------------------------------------------------+--------------------------------------------------------------------------------+ .. config:setting:: log-enablecolor - :displayname: Colorize plain text console logs + :displayname: Colorize plain text console logs (Logging) :systemconsole: N/A :configjson: .LogSettings.EnableColor :environment: MM_LOGSETTINGS_ENABLECOLOR + :description: Enables system admins to display plain text log level details in color. - **true**: When logged events are output to the console as plain text, colorize log levels details. - **false**: **(Default)** Plain text log details aren't colorized in the console. @@ -318,12 +322,30 @@ Control Teammate Name Display at the system level. Colorize plain text console logs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This setting isn't available in the System Console and can only be set in ``config.json``. - -**True**: When logged events are output to the console as plain text, colorize log levels details. ++-----------------------------------------------+----------------------------------------------------------------------+ +| Enables system admins to display plain text | - System Config path: N/A | +| log level details in color. | - ``config.json setting``: ``".LogSettings.ENABLECOLOR": false",`` | +| | - Environment variable: ``MM_LOGSETTINGS_ENABLECOLOR`` | +| - **true**: When logged events are output to | | +| the console as plain text, colorize log | | +| levels details. | | +| - **false**: **(Default)** Plain text log | | +| details aren't colorized in the console. | | ++-----------------------------------------------+----------------------------------------------------------------------+ + +.. config:setting:: log-maxfieldsize + :displayname: Maximum field size (Logging) + :systemconsole: N/A + :configjson: .LogSettings.MaxFieldSize + :environment: MM_LOGSETTINGS_MAXFIELDSIZE + :description: Enables system admins to limit the size of log fields during logging. Default is **2048**. -**False**: Plain text log details aren't colorized in the console. +Maximum field size +~~~~~~~~~~~~~~~~~~ -+---------------------------------------------------------------------------------------------------------+ -| This feature's ``config.json`` setting is ``"EnableColor": false`` with options ``true`` and ``false``. | -+---------------------------------------------------------------------------------------------------------+ ++-----------------------------------------------+----------------------------------------------------------------------+ +| Enables system admins to limit the size of | - System Config path: N/A | +| log fields during logging. | - ``config.json setting``: ``".LogSettings.MaxFieldSize": 2048",`` | +| | - Environment variable: ``MM_LOGSETTINGS_MAXFIELDSIZE`` | +| Numerical value. Default is **2048**. | | ++-----------------------------------------------+----------------------------------------------------------------------+ \ No newline at end of file diff --git a/source/configure/optimize-your-workspace.rst b/source/configure/optimize-your-workspace.rst index d7a35c0fb04..18466b6105b 100644 --- a/source/configure/optimize-your-workspace.rst +++ b/source/configure/optimize-your-workspace.rst @@ -8,6 +8,8 @@ With workspace optimizations, System Admins can review their workspace health an System Admins can access their workspace optimization page in the System Console by going to **Reporting > Workspace Optimization**. + + .. image:: ../images/workspace-optimization.png :alt: Review your workspace health and growth scores, then take advantage of recommended optimizations. diff --git a/source/configure/plugins-configuration-settings.rst b/source/configure/plugins-configuration-settings.rst index d12692427f0..1ddac63c7a8 100644 --- a/source/configure/plugins-configuration-settings.rst +++ b/source/configure/plugins-configuration-settings.rst @@ -919,6 +919,9 @@ Mattermost for Microsoft Teams enables you to collaborate with technical & opera Access the following configuration settings in the System Console by going to **Plugins > MS Teams Sync**. +.. include:: ../_static/badges/academy-msteams.rst + :start-after: :nosearch: + .. config:setting:: plugins-msteamssyncenable :displayname: Enable plugin (Plugins - MS Teams Sync) :systemconsole: Plugins > MS Teams Sync diff --git a/source/configure/rate-limiting-configuration-settings.rst b/source/configure/rate-limiting-configuration-settings.rst index 52b39618cc8..1c3da19242c 100644 --- a/source/configure/rate-limiting-configuration-settings.rst +++ b/source/configure/rate-limiting-configuration-settings.rst @@ -100,7 +100,6 @@ Memory store size | users. A higher value may result in underutilized resources, | | | and a lower value may result in user sessions/tokens expiring | | | too frequently. | | -| | | | +-----------------------------------------------------------------+----------------------------------------------------------------------------+ .. config:setting:: ratelimit-varybyremoteaddress diff --git a/source/configure/site-configuration-settings.rst b/source/configure/site-configuration-settings.rst index b24fe568df7..76d496ce20b 100644 --- a/source/configure/site-configuration-settings.rst +++ b/source/configure/site-configuration-settings.rst @@ -140,16 +140,18 @@ Enable Ask Community link :environment: MM_SUPPORTSETTINGS_HELPLINK This field sets the URL for the Help link on the login and sign-up pages, as well as the **Help Resources** link under the **Help** menu in the channel header. - If this field is empty, those links do not appear. Default value is **https://about.mattermost.com/default-help/**. + Default value is **https://about.mattermost.com/default-help/**. Help link ~~~~~~~~~ -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ -| This field sets the URL for the Help link on the login and sign-up pages, as well as the **Help Resources** link under the **Help** menu in the channel header. If this field is empty, those links do not appear. | - System Config path: **Site Configuration > Customization** | -| | - ``config.json`` setting: ``.SupportSettings.HelpLink`` | -| String input. Default is ``https://about.mattermost.com/default-help/``. | - Environment variable: ``MM_SUPPORTSETTINGS_HELPLINK`` | -+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ ++------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ +| This field sets the URL for the Help link on the login and sign up pages, as well as the **Help Resources** link under the **Help** menu in the channel header. | - System Config path: **Site Configuration > Customization** | +| | - ``config.json`` setting: ``.SupportSettings.HelpLink`` | +| String input. Default is ``https://about.mattermost.com/default-help/``. | - Environment variable: ``MM_SUPPORTSETTINGS_HELPLINK`` | ++------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ +| **Note**: If this value is empty, the Help link is hidden on the login and sign up pages. However, the **Help Resources** link remains available under the **Help** menu. | ++------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------+ .. config:setting:: custom-termsofuselink :displayname: Terms of Use link (Customization) @@ -1556,10 +1558,9 @@ Enable admin notices ~~~~~~~~~~~~~~~~~~~~ +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ -| - **true**: **(Default)** System admins will receive `in-product notices `__ about available server upgrades, relevant | - System Config path: **Site Configuration > Notices** - | -| administration features and external dependencies, and to gather user feedback to improve the product and user experience. | - ``config.json`` setting: ``.AnnouncementSettings.AdminNoticesEnabled: true`` | -| | - Environment variable: ``MM_ANNOUNCEMENTSETTINGS_ADMINNOTICESENABLED`` | -| - **false**: System admins will not receive specific notices. Admins will still receive notices for all users See **Enable end user notices** below. | | +| - **true**: **(Default)** System Admins will receive `in-product notices `__ about server upgrades and administration features. | - System Config path: **Site Configuration > Notices** - | +| | - ``config.json`` setting: ``.AnnouncementSettings.AdminNoticesEnabled: true`` | +| - **false**: System Admins will not receive specific notices. Admins will still receive notices for all users (see **Enable end user notices**) | - Environment variable: ``MM_ANNOUNCEMENTSETTINGS_ADMINNOTICESENABLED`` | +---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ .. config:setting:: notices-enableendusernotices @@ -1575,7 +1576,7 @@ Enable end user notices ~~~~~~~~~~~~~~~~~~~~~~~ +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ -| - **true**: **(Default)** All users receive `in-product notices `__ about client upgrades, relevant end user | - System Config path: **Site Configuration > Notices** | -| features, and to gather user feedback to improve the product and user experience. | - ``config.json`` setting: ``.AnnouncementSettings.UserNoticesEnabled: true`` | -| - **false**: Users will not receive in-product notices. | - Environment variable: ``MM_ANNOUNCEMENTSETTINGS_USERNOTICESENABLED`` | +| - **true**: **(Default)** All users receive `in-product notices `__ about client upgrades and end user features. | - System Config path: **Site Configuration > Notices** | +| - **false**: Users will not receive in-product notices. | - ``config.json`` setting: ``.AnnouncementSettings.UserNoticesEnabled: true`` | +| | - Environment variable: ``MM_ANNOUNCEMENTSETTINGS_USERNOTICESENABLED`` | +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+ diff --git a/source/install/deprecated-features.rst b/source/deploy/deprecated-features.rst similarity index 100% rename from source/install/deprecated-features.rst rename to source/deploy/deprecated-features.rst diff --git a/source/install/desktop-app-changelog.rst b/source/deploy/desktop-app-changelog.rst similarity index 100% rename from source/install/desktop-app-changelog.rst rename to source/deploy/desktop-app-changelog.rst diff --git a/source/install/cloud-changelog.md b/source/deploy/legacy-cloud-changelog.md similarity index 99% rename from source/install/cloud-changelog.md rename to source/deploy/legacy-cloud-changelog.md index 21ede2ef432..c6e7531ee91 100644 --- a/source/install/cloud-changelog.md +++ b/source/deploy/legacy-cloud-changelog.md @@ -1,15 +1,18 @@ -# Mattermost Cloud changelog +# Mattermost legacy cloud changelog This changelog summarizes updates to [Mattermost Cloud](https://mattermost.com/get-started/), an enterprise-grade SaaS offering hosted by Mattermost. -Latest Mattermost Cloud releases: +```{Important} +From Mattermost v9.2, see the [Mattermost Changelog](/deploy/mattermost-changelog) page for details on the latest cloud and self-hosted versions of Mattermost to be [deployed and upgraded on infrastructure you control](https://docs.mattermost.com/guides/deployment.html). -- [Release 2023-11-01](#release-2023-11-01) -- [Release 2023-10-10](#release-2023-10-10) -- [Release 2023-09-26](#release-2023-09-26) -- [Release 2023-09-12](#release-2023-09-12) -- [Release 2023-08-29](#release-2023-08-29) -- [Release 2023-08-09](#release-2023-08-09) +- See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) documentation for details on upgrading. +- See the [changelog in progress](https://bit.ly/2nK3cVf) for details about the upcoming release. +- **Self-Hosted Releases Prior to v9.2**: See the [Mattermost Legacy Self-Hosted Changelog](/deploy/legacy-self-hosted-changelog) for details. +``` + +```{contents} On ths page +:depth: 2 +``` ## Release 2023-11-01 @@ -153,6 +156,8 @@ Latest Mattermost Cloud releases: ### Known Issues - Text overlaps when opening the Playbook RHS panel [MM-54261](https://mattermost.atlassian.net/browse/MM-54261). +---- + ## Release 2023-08-09 ### Improvements @@ -176,12 +181,16 @@ Latest Mattermost Cloud releases: ### Known Issues - Boards public links that follow the URL schema `/boards/public/...` no longer work. They can either be regenerated through the application by going to the board and selecting the **Share** button at the top right, or they can be obtained by replacing the `/boards/public/` part of the URL with `/plugins/focalboard/`. +---- + ## Release 2023-08-03 ### Bug Fixes - Fixed an issue where ``FileExportBackend`` should not use Bifrost. - Fixed an issue related to the export configuration settings. +---- + ## Release 2023-07-26 ### Improvements @@ -212,16 +221,22 @@ Latest Mattermost Cloud releases: - Boards public links that follow the URL schema `/boards/public/...` will not work after this update. They can either be regenerated through the application by going to the board and selecting the **Share** button at the top right, or they can be obtained by replacing the `/boards/public/` part of the URL with `/plugins/focalboard/`. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-07-20 ### Bug Fixes - Added support for a new Cloud Export storage and a presigned URL generation. +---- + ## Release 2023-07-19 ### Bug Fixes - Fixed an issue where a "Seeker can't seek" error was displayed when viewing older image attachments. +---- + ## Release 2023-07-11 ### Highlights @@ -249,6 +264,8 @@ Latest Mattermost Cloud releases: - Boards public links that follow the URL schema `/boards/public/...` will not work after this update. They can either be regenerated through the application by going to the board and selecting the **Share** button at the top right, or they can be obtained by replacing the `/boards/public/` part of the URL with `/plugins/focalboard/`. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-06-26 ### Highlights @@ -298,6 +315,8 @@ Latest Mattermost Cloud releases: - Boards public links that follow the URL schema `/boards/public/...` will not work after this update. They can either be regenerated through the application by going to the board and selecting the **Share** button at the top right, or they can be obtained by replacing the `/boards/public/` part of the URL with `/plugins/focalboard/`. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-06-13 ### Compatibility @@ -321,6 +340,8 @@ Latest Mattermost Cloud releases: - Using the "link" button puts the URL after ``[url]`` instead of replacing ``[url]`` when pasting [MM-53006](https://mattermost.atlassian.net/browse/MM-53006). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-05-31 ### Improvements @@ -382,6 +403,8 @@ Latest Mattermost Cloud releases: - The URL of the post in a reminder post for direct and group messages have a double slash on mobile [MM-51026](https://mattermost.atlassian.net/browse/MM-51026). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-05-01 ### Highlights @@ -421,6 +444,8 @@ Latest Mattermost Cloud releases: - The URL of the post in a reminder post for direct and group messages have a double slash on mobile [MM-51026](https://mattermost.atlassian.net/browse/MM-51026). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-04-21 ### Improvements @@ -454,6 +479,8 @@ Latest Mattermost Cloud releases: - A user gets scrolled to the bottom of the post editor after pasting long text in the right-hand pane [MM-51302](https://mattermost.atlassian.net/browse/MM-51302). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-03-29 ### Improvements @@ -477,6 +504,8 @@ Latest Mattermost Cloud releases: - A user gets scrolled to the bottom of the post editor after pasting long text in the right-hand side [MM-51302](https://mattermost.atlassian.net/browse/MM-51302). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-03-20 ### Compatibility @@ -574,6 +603,8 @@ Latest Mattermost Cloud releases: - A user gets scrolled to the bottom of the post editor after pasting long text in the right-hand side [MM-51302](https://mattermost.atlassian.net/browse/MM-51302). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2023-01-26 ### Highlights @@ -636,6 +667,8 @@ Latest Mattermost Cloud releases: - Publicly shared boards lead to a "Team not found" error page. See [issue-focalboard-4450](https://github.com/mattermost/focalboard/issues/4450) for more details. - If a user is not a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels or remove those channels from the run configuration. +---- + ## Release 2023-01-16 ### Highlights @@ -738,12 +771,16 @@ Latest Mattermost Cloud releases: - The message box flashes controls while typing in the right-hand side [MM-49266](https://mattermost.atlassian.net/browse/MM-49266). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-12-20 ### Bug Fixes - Fixed a deadlock in the export job which caused export jobs to hang forever. - Uploading exports to S3 no longer times out. +---- + ## Release 2022-12-01 ### Improvements @@ -785,6 +822,8 @@ Latest Mattermost Cloud releases: - Boards linked to a channel you're a member of don't automatically appear on your sidebar unless you're an explicit member of the board. As a workaround, you can access the board from the channel RHS, or by searching for the board via the board switcher (Ctrl/Cmd+K). Alternatively, you can ask the board admin to add you to the board as an explicit member. See the [issue-focalboard-4179](https://github.com/mattermost/focalboard/issues/4179) for more details. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-11-24 ### Improvements @@ -806,6 +845,8 @@ Latest Mattermost Cloud releases: - Boards linked to a channel you're a member of doesn't automatically appear on your sidebar unless you're an explicit member of the board. As a workaround, you can access the board from the channel RHS, or by searching for the board via the board switcher (Ctrl/Cmd+K). Alternatively, you can ask the board admin to add you to the board as an explicit member. See the [issue-focalboard-4179](https://github.com/mattermost/focalboard/issues/4179) for more details. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-11-17 ### Highlights @@ -852,6 +893,8 @@ Latest Mattermost Cloud releases: - Boards linked to a channel you're a member of do not automatically appear on your sidebar unless you're an explicit member of the board. As a workaround, you can access the board from the channel RHS or by searching for the board via the board switcher (Ctrl/Cmd+K). Alternatively, you can ask the board Admin to add you to the board as an explicit member. See the [issue-focalboard-4179](https://github.com/mattermost/focalboard/issues/4179) for more details. - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-11-10 ### Improvements @@ -884,6 +927,8 @@ Latest Mattermost Cloud releases: ### Known Issues - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-10-27 ### Improvements @@ -939,6 +984,8 @@ Latest Mattermost Cloud releases: ### Known Issues - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-10-13 ### Highlights @@ -989,6 +1036,8 @@ Latest Mattermost Cloud releases: - "More" menu for Pinned posts on the right-hand side is cut-off [MM-46987](https://mattermost.atlassian.net/browse/MM-46987). - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. +---- + ## Release 2022-10-06 ### Improvements @@ -1030,6 +1079,8 @@ Latest Mattermost Cloud releases: - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. - On the new Boards RHS from the channel Apps Bar, channel members who are not board Admins are incorrectly able to see the **Unlink** board button. However, selecting the button doesn't actually unlink the board unless the user is a board Admin [issue-focalboard-3600](https://github.com/mattermost/focalboard/issues/3600). +---- + ## Release 2022-09-15 ### Highlights @@ -1078,6 +1129,8 @@ Latest Mattermost Cloud releases: - The runs and playbooks in the Playbooks left-hand sidebar don't have dot-menus that allow interaction with each item [MM-44752](https://mattermost.atlassian.net/browse/MM-44752). - On the new Boards RHS from the channel Apps Bar, channel members who are not board admins are incorrectly able to see the **Unlink** board button. However, selecting the button doesn't actually unlink the board unless the user is a board admin [issue-focalboard-3600](https://github.com/mattermost/focalboard/issues/3600). +---- + ## Release 2022-09-01 ### Improvements @@ -1114,6 +1167,8 @@ Latest Mattermost Cloud releases: - The runs and playbooks in the Playbooks left-hand sidebar don't have dot-menus that allow interaction with each item [MM-44752](https://mattermost.atlassian.net/browse/MM-44752). - On the new Boards RHS from the channel Apps Bar, channel members who are not board admins are incorrectly able to see the **Unlink** board button. However, selecting the button doesn't actually unlink the board unless the user is a board admin [issue-focalboard-3600](https://github.com/mattermost/focalboard/issues/3600). +---- + ## Release 2022-08-25 ### Improvements @@ -1139,6 +1194,8 @@ Latest Mattermost Cloud releases: - On the new Boards RHS from the channel Apps Bar, channel members who are not board admins are incorrectly able to see the **Unlink** board button. However, selecting the button doesn't actually unlink the board unless the user is a board admin [issue-focalboard-3600](https://github.com/mattermost/focalboard/issues/3600). - On Boards, selecting the **+ New** button below a column on the Kanban view doesn't always create a new card. As a workaround, set a new default card template by going to the dropdown menu from the blue **New** button on the header of the board, opening the **Options** menu on any card template, and selecting **Set as default** [issue-focalboard-3676](https://github.com/mattermost/focalboard/issues/3676). +---- + ## Release 2022-08-18 ### Highlights @@ -1182,6 +1239,8 @@ Latest Mattermost Cloud releases: - On the new Boards RHS from the channel Apps Bar, channel members who are not admins of the board are incorrectly able to see the "unlink" board button. However, clicking on the button will not actually unlink the board unless the user is a board admin [issue-focalboard-3600](https://github.com/mattermost/focalboard/issues/3600). - On Boards, clicking on `+ New` button below a column on the Kanban view does not always create a new card. As a workaround, set a new default card template by going to the dropdown menu from the blue `New` button on the header of the board, then open the Options Menu on any card template and select "Set as default" [issue-focalboard-3676](https://github.com/mattermost/focalboard/issues/3676). +---- + ## Release 2022-08-10 ### Improvements @@ -1199,6 +1258,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-08-03 ### Improvements @@ -1225,6 +1286,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-07-28 ### Improvements @@ -1251,6 +1314,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-07-20 ### Improvements @@ -1280,6 +1345,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-07-13 ### Highlights @@ -1316,6 +1383,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-06-29 ### Improvements @@ -1347,6 +1416,8 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-06-22 ### Improvements @@ -1373,11 +1444,15 @@ Latest Mattermost Cloud releases: - Mentions incorrectly shows users as not in a channel [MM-44157](https://mattermost.atlassian.net/browse/MM-44157). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-06-15 ### Bug Fixes - Fixed an issue where multiple backend errors displayed when file storage usage got fetched if no files had been uploaded. +---- + ## Release 2022-06-14 ### Highlights @@ -1444,6 +1519,8 @@ Latest Mattermost Cloud releases: - Channel switcher does not show cross team unreads on refresh [MM-44073](https://mattermost.atlassian.net/browse/MM-44073). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-05-26 ### Highlights @@ -1480,6 +1557,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-05-12 ### Improvements @@ -1505,6 +1584,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-04-28 ### Improvements @@ -1540,6 +1621,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-04-13 ### Improvements @@ -1571,6 +1654,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-03-30 ### Improvements @@ -1607,6 +1692,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-03-16 ### Compatibility @@ -1657,6 +1744,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-03-08 ### Bug Fixes @@ -1705,6 +1794,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-02-16 ### Compatibility @@ -1752,6 +1843,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-02-10 ### Bug Fixes @@ -1788,6 +1881,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-01-27 ### Bug Fixes @@ -1832,6 +1927,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2022-01-11 ### Bug Fixes @@ -1867,6 +1964,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-12-01 ### Improvements @@ -1893,6 +1992,8 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-11-23 ### Improvements @@ -1925,11 +2026,15 @@ Latest Mattermost Cloud releases: - Known issues related to the new Collapsed Reply Threads (Beta) are [listed here](/messaging/organizing-conversations.html#known-issues). - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-11-11 ### Bug Fixes - Fixed an issue with panics in a ``patchChannel`` function [MM-40014](https://mattermost.atlassian.net/browse/MM-40014). +---- + ## Release 2021-11-10 ### Improvements @@ -1959,6 +2064,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-10-27 ### Highlights @@ -2014,6 +2121,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-10-13 ### Highlights @@ -2088,6 +2197,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-09-29 ### Highlights @@ -2157,6 +2268,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-08-12 ### Highlights @@ -2199,6 +2312,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-07-29 ### Improvements @@ -2243,6 +2358,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-07-15 ### Highlights @@ -2267,6 +2384,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-07-01 ### Highlights @@ -2302,6 +2421,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-06-16 ### Improvements @@ -2325,6 +2446,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-06-02 ### Improvements @@ -2353,6 +2476,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-05-21 ### Improvements @@ -2386,6 +2511,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-05-05 ### Improvements @@ -2417,6 +2544,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-04-22 ### Highlights @@ -2465,6 +2594,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-04-07 ### Improvements @@ -2502,6 +2633,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-03-24 ### Improvements @@ -2533,6 +2666,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-03-12 ### Highlights @@ -2570,6 +2705,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-02-25 ### Highlights @@ -2613,6 +2750,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-02-10 ### Highlights @@ -2653,6 +2792,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-01-26 ### Highlights @@ -2695,6 +2836,8 @@ Latest Mattermost Cloud releases: - **Cloud > "Tips & Next Steps"** should not show an "Explore channels" section for guest users. - System Roles shows **License** and **Environment** as possible permissions, but they are always hidden in Cloud. +---- + ## Release 2021-01-12 ### Highlights @@ -2731,12 +2874,16 @@ Latest Mattermost Cloud releases: - Cloud > "Tips & Next Steps" should not show an "Explore channels" section for guest users. - System Roles shows License and Environment as possible permissions but they are always hidden in Cloud. +---- + ## Release 2020-12-18 ### Bug Fixes - Fixed a performance issue related to typing lag. - Fixed an issue where YouTube previews did not display sometimes. +---- + ## Release 2020-12-09 ### Improvements @@ -2763,11 +2910,15 @@ Latest Mattermost Cloud releases: - Cloud > "Tips & Next Steps" should not show an "Explore channels" section for guest users. - System Roles shows License and Environment as possible permissions but they are always hidden in Cloud. +---- + ## Release 2020-12-03 ### Bug Fixes - Disabled the xmlsec1-based SAML library in favor of the re-enabled and improved SAML library. +---- + ## Release 2020-11-24 ### Highlights @@ -2818,4 +2969,4 @@ Latest Mattermost Cloud releases: ### Known Issues - System Managers do not have access to the Billing section and see a blank screen. - Cloud > "Tips & Next Steps" should not show an "Explore channels" section for guest users. - - System Roles shows License and Environment as possible permissions but they are always hidden in Cloud. + - System Roles shows License and Environment as possible permissions but they are always hidden in Cloud. \ No newline at end of file diff --git a/source/install/legacy-self-hosted-changelog.md b/source/deploy/legacy-self-hosted-changelog.md similarity index 82% rename from source/install/legacy-self-hosted-changelog.md rename to source/deploy/legacy-self-hosted-changelog.md index 2fcda7397a1..67654e7b0b0 100644 --- a/source/install/legacy-self-hosted-changelog.md +++ b/source/deploy/legacy-self-hosted-changelog.md @@ -1,9 +1,1808 @@ # Mattermost legacy self-hosted changelog -[Mattermost](https://mattermost.com) is an open source platform for secure collaboration across the entire software development lifecycle. This changelog summarizes updates for all self-hosted versions of Mattermost prior to v7.1. +[Mattermost](https://mattermost.com) is an open source platform for secure collaboration across the entire software development lifecycle. -## Latest Mattermost releases -See [changelog in progress](https://bit.ly/2nK3cVf) for the upcoming release, and see the [Mattermost Self-Hosted Changelog](self-hosted-changelog) for details on the latest self-hosted versions of Mattermost including the most recent [Extended Support Release (ESR)](/upgrade/extended-support-release.html). +```{Important} +From Mattermost v9.2, see the [Mattermost Changelog](/deploy/mattermost-changelog) page for details on the latest cloud and self-hosted versions of Mattermost to be [deployed and upgraded on infrastructure you control](https://docs.mattermost.com/guides/deployment.html). + +- See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) documentation for details on upgrading. +- See the [changelog in progress](https://bit.ly/2nK3cVf) for details about the upcoming release. +- **Cloud Releases Prior to v9.2**: See the [Mattermost Legacy Cloud Changelog](/deploy/legacy-cloud-changelog) for details. +``` + +```{contents} On ths page +:depth: 2 +``` + +---- + +## Release v9.1 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +**Release day: October 16, 2023** + +### Important Upgrade Notes + - Improved performance on data retention ``DeleteOrphanedRows`` queries. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for notes on a new migration that was added. Removed feature flag ``DataRetentionConcurrencyEnabled``. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting ``DataRetentionSettings.RetentionIdsBatchSize``, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100. + - Minimum supported Desktop App version is now v5.3. OAuth/SAML flows were modified to include ``desktop_login`` which makes earlier versions incompatible. + +```{Important} +If you upgrade from a release earlier than v9.0, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated Chromium minimum supported version to 116+. + +### Highlights + +#### Never Miss Group Messages Again + - Group messages (GMs) now behave like direct messages (DMs). [The badge count increases for every new message](https://docs.mattermost.com/collaborate/channel-types.html#group-messages). + +#### Convert Group Messages to Private Channels + - Added the ability to [convert a group message to a private channel](https://docs.mattermost.com/collaborate/convert-group-messages.html). + +See this walkthrough video on the highlights and some of the below improvements in our latest release: https://www.youtube.com/watch?v=dbHg-63J9dA + +### Improvements + +#### User Interface (UI) + - Added a **Cancel** button to the **Delete category** modal. + - Added the ability to resize the channel sidebar and right-hand sidebar. + - Added two new filtering options (show all channel types and show private channels) to the **Browse channels** modal. + - Pre-packaged GitLab plugin version [v1.7.0](https://github.com/mattermost/mattermost-plugin-gitlab/releases/tag/v1.7.0). + - Pre-packaged Calls plugin version [v0.20.0](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.20.0). + - Pre-packaged Playbooks version [v1.39.0](https://github.com/mattermost/mattermost-plugin-playbooks/releases/tag/v1.39.0). + - Added additional reaction options when viewing threads or messages when the sidebar is larger than its minimum width. + - Added a link to [notification documentation](https://docs.mattermost.com/preferences/manage-your-notifications.html) in the **Notification Settings** modal. + - Updated the post textbox measurement code to be more reliable. + - The ``/invite`` slash command now supports custom user groups. + - Re-enabled the remote marketplace functionality, when configured as per ``PluginSettings.EnableRemoteMarketplace`` [documentation](https://docs.mattermost.com/configure/plugins-configuration-settings.html#plugins-enableremotemarketplace). + +#### Administration + - Added ``mattermost-plugin-api`` into the ``mattermost`` GitHub repository. + - Updated the public server module version to v0.0.9. + - Added 2 new URL parameters to ``GET /api/v4/groups``: ``include_archived`` and ``filter_archived``. Added the ability to restore archived groups from the user groups modal. + - Added file storage information to the support package. + - A ``user_id`` is now included in all HTTP logs (debug level) to help determine who is generating unexpected traffic. + - Added new URL parameter to ``GET /api/v4/groups`` and ``GET /api/v4/groups/:group_id``. ``include_member_ids`` will add all the members ``user_ids`` to the group response objects. You can now also add group members to a channel, any members that are not part of the team can be added to the team through this flow and subsequently added the channel. + +#### Plugin Changes + - Added new frontend plugin extension point for the new messages separator bar. + - Added a new plugin extensibility point to add actions to the code blocks. + - Added the plugin hook ``UserHasBeenDeactivated``. + - Added a new server side plugin API method to set the searchable content for file info (``SetFileSearchableContent``). The ``MessageHasBeenPosted`` plugin hook is now executed after the attachments are linked to the post. + +### Bug Fixes + - Fixed keyboard support for the left-hand side channel menu, the left-hand side category menu, and the post dot menu. + - Fixed display name in the ``comment_on`` component. + - Fixed an issue with keyboard support for some menus with submenus. + - Fixed an issue with disappearing punctuation when following a group mention. + - Fixed an issue where compliance export jobs were not able to start after disabling and enabling the compliance export. + - Fixed a potential read after write issue when loading a license. + - Fixed the API to block any changes to direct and group messages names, display name, or purpose. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Removed ``ServiceSettingsDefaultGfycatAPISecret`` and ``ServiceSettingsDefaultGfycatAPIKey`` configuration settings. + - Under ``TeamSettings`` in ``config.json``: + - Added a new config setting ``EnableJoinLeaveMessageByDefault`` that sets the default value for ``UserSetting``, ``ADVANCED_FILTER_JOIN_LEAVE``. + - Under ``DisplaySettings`` in ``config.json``: + - Added a setting ``MaxMarkdownNodes`` to limit the maximum complexity of markdown text on mobile. + + #### Changes to Enterprise plan: + - Under ``DataRetentionSettings`` in ``config.json``: + - Added a new configuration setting ``RetentionIdsBatchSize``, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100. + +### API Changes + - Added the ``X-Forwarded-For`` request header to the audit stream for all Rest API calls. + - Added API endpoint ``POST /api/v4/user/login/desktop_login``. Modified OAuth/SAML flows to include ``desktop_login`` where applicable. + - Added new API endpoint ``GET`` ``/api/v4/channels//common_teams`` to fetch list of teams common between members of a group message. + - Added new API endpoint ``POST`` ``/api/v4/channels//convert_to_channel`` to convert a group message to a private channel. + - Added a new ``MessageHasBeenDeleted`` hook to the plugin API. + - Moved the ``request`` package into the public shared folder. + +### Go Version + - v9.1 is built with Go ``v1.20.7``. + +### Known Issues + - Converting a group message to a channel should show an error "A channel with that name already exists on the same team" for duplicate channel names [MM-54713](https://mattermost.atlassian.net/browse/MM-54713). + - Marking a group message as unread doesn't resurface the numbered notification badge [MM-54778](https://mattermost.atlassian.net/browse/MM-54778). + - Thread/posts jump when switching to and from preview mode [MM-54758](https://mattermost.atlassian.net/browse/MM-54758). + - Desktop UI doesn't show all content when the right-hand side thread is opened [MM-54696](https://mattermost.atlassian.net/browse/MM-54696). + - Left-hand side resize option overrides the **Browse/Create Channel** menu if To-Do plugin is installed [MM-54367](https://mattermost.atlassian.net/browse/MM-54367). + - Copy pasting images from Chrome fails [MM-54486](https://mattermost.atlassian.net/browse/MM-54486). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [abhinav700](https://github.com/abhinav700), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [alexdecamillo](https://github.com/alexdecamillo), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [AsisRout](https://github.com/AsisRout), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [cedarice](https://translate.mattermost.com/user/cedarice), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [Crere89](https://translate.mattermost.com/user/Crere89), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fmartingr](https://github.com/fmartingr), [FokinAleksandr](https://github.com/FokinAleksandr), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hibou.sage](https://translate.mattermost.com/user/hibou.sage), [hmhealey](https://github.com/hmhealey), [homerCOD](https://translate.mattermost.com/user/homerCOD), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [intdev32](https://github.com/intdev32), [IronOnet](https://github.com/IronOnet), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [limod](https://github.com/limod), [linkvn](https://github.com/linkvn), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marie0394](https://translate.mattermost.com/user/marie0394), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [MohammedElansary-dev](https://translate.mattermost.com/user/MohammedElansary-dev), [mornaistar](https://github.com/mornaistar), [mt26691](https://translate.mattermost.com/user/mt26691), [mvitale1989](https://github.com/mvitale1989), [Navystack](https://translate.mattermost.com/user/Navystack), [nickmisasi](https://github.com/nickmisasi), [pvev](https://github.com/pvev), [RayYH](https://github.com/RayYH), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sinansonmez](https://github.com/sinansonmez), [speedhs](https://github.com/speedhs), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [teamzamong](https://github.com/teamzamong), [TheRealJoeFriel](https://github.com/TheRealJoeFriel), [ThrRip](https://github.com/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [varghese.jose](https://github.com/varghesejose2020), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [y4aniv](https://github.com/y4aniv), [yasserfaraazkhan](https://github.com/yasserfaraazkhan) + +---- + +## Release v9.0 - [Major Release](https://docs.mattermost.com/upgrade/release-definitions.html#major-release) + +- **9.0.1, released 2023-10-06** + - Mattermost v9.0.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v9.0.1 contains no database or functional changes. +- **9.0.0, released 2023-09-15** + - Original 9.0.0 release + +### Important Upgrade Notes + - Removed the deprecated Insights feature. + - Mattermost Boards and various other plugins have transitioned to being fully community supported. See this [forum post](https://forum.mattermost.com/t/upcoming-product-changes-to-boards-and-various-plugins/16669) for more details. + - The ``channel_viewed`` websocket event was changed to ``multiple_channels_viewed``, and is now only triggered for channels that actually have unread messages. + +```{Important} +If you upgrade from a release earlier than v8.1, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Dev/Sec/ChatOps in Strict Security Environments with Jira, Confluence, and Mattermost + - Accelerate mission-critical workflows that keep your team aligned and your data secure on [the Mattermost and Atlassian platforms](https://mattermost.com/atlassian/). + +#### Air-Gapped, Edge-Ready Generative AI with Defense Unicorn's LeapfrogAI + - Deploy and utilize local GenAI models in edge, air-gapped, and zero-trust environments with [LeapfrogAI and Mattermost](https://leapfrog.ai/). + +#### AI-Accelerated Collaboration + - Mattermost partner Mobius Logic has enhanced the MS Teams Connector for the Microsoft 365 platform by embedding Mattermost directly inside [Microsoft Teams](https://docs.mattermost.com/about/mattermost-for-microsoft-teams.html). + +#### MLOps and Secure Federation with Customer Compliance + - Our partnership with SOS International (SOSi) enables the integration of advanced military-grade federation using XMPP. Read the [exoINSIGHT announcement from Exovera](https://exovera.com/press-release/exovera-unveils-exoinsight/). + +#### Improving Your Organization’s Core Collaboration + - To optimize the core platform experience, we are reinforcing the fundamentals to ensure Mattermost continues being resilient, stable, and best-in-breed for your critical operations. + +### Improvements + +#### User Interface (UI) + - The number of channel members is now shown in the **Browse channels** modal. + - An error is now displayed if a post edit history fails to load. + - Added functionality to bulk mark a whole channel category as read. + - Removed Boards product tour code. + - Replaced Gfycat with Giphy in the gif picker. + - Pre-packaged Calls version v0.19.0. + - Updated Focalboard plugin version to 7.11.3. + - Pre-packaged Playbooks version 1.38.1. + - Upgraded prepackaged Zoom plugin to v1.6.2. + - Upgraded prepackaged Antivirus plugin version to 1.0.0. + +#### Administration + - API examples are now updated to reflect latest Go API conventions, deprecating older code samples. + - Updated the public server module version to v0.0.8. + - Added a ``Post Action`` plugin hook to allow plugins to register new items in the post menu. + - Added a ``Post Editor Action`` plugin hook to allow plugins to register new items in the post editor menu. + - Improved logging on plugin initialization, activation, and removal. + - Removed the deprecated ``ManifestExecutables`` struct. + - Removed the deprecated ``UserAuth.Password`` field. + - [Remote users](https://docs.mattermost.com/onboard/shared-channels.html) are no longer counted as part of the license. + - Improved data retention logs. + - Removed ``/opengraph`` endpoint as it was unused. + - Transitionally prepackaged plugins are now installed to the filestore for continuity when a future release stops prepackaging those plugins. + - Removed the deprecated ``Manifest.RequiredConfig`` field. + - Added a ``NotificationWillBePushed`` plugin hook invoked before the push notification is processed and sent to the notification service. Plugins may modify or reject the push notification. + - Added a `SendPushNotification` plugin api method which allows plugins to send push notifications to a specific user's mobile sessions. + - Disabled ``PluginSettings.EnableRemoteMarketplace`` functionality. + +### Bug Fixes + - Fixed the error returned by ``PUT /api/v4/channels/{channelid}`` when the provided name already existed in the team. + - Fixed an issue where CRLF line endings passed to mmctl commands were not being stripped from commands. + - Fixed an issue where text copied from Microsoft OneNote is pasted as an image. + - Fixed an issue preventing successful activation of trial licenses. + - Fixed an issue where a custom group wouldn't get marked as a mention if it was not part of the webapp's local state. + - Fixed an issue with the in-product marketplace theming. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Under ``ServiceSettings`` in the ``config.json``: + - Added ``GiphySdkKey`` to replace Gfycat with Giphy in the gif picker. + +### Go Version + - v9.0 is built with Go ``v1.19.5``. + +### Open Source Components + - Added ``@giphy/js-fetch-api`` and ``@giphy/react-components`` to https://github.com/mattermost/mattermost/. + - Added ``@react-native/eslint-config``, ``@react-native/metro-config``, and ``@tsconfig/react-native`` to https://github.com/mattermost/mattermost-mobile/. + +### Known Issues + - Copy pasting images from Chrome fails [MM-54486](https://mattermost.atlassian.net/browse/MM-54486). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [abdulsmapara](https://github.com/abdulsmapara), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaravashkin](https://github.com/akaravashkin), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apollo13](https://github.com/apollo13), [aqurilla](https://github.com/aqurilla), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [Benjamin-Loison](https://github.com/Benjamin-Loison), [calebroseland](https://github.com/calebroseland), [cdmwebs](https://github.com/cdmwebs), [chumano](https://github.com/chumano), [CI-YU](https://github.com/CI-YU), [Coelho](https://translate.mattermost.com/user/Coelho), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [deivisonrpg](https://github.com/deivisonrpg), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [douglasstasiak](https://github.com/douglasstasiak), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [esethna](https://github.com/esethna), [gabrieljackson](https://github.com/gabrieljackson), [gary-sixgen](https://github.com/gary-sixgen), [Gobbit69](https://translate.mattermost.com/user/Gobbit69), [grubbins](https://github.com/grubbins), [guneshsji](https://github.com/guneshsji), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hpkhanh1610](https://github.com/hpkhanh1610), [ifoukarakis](https://github.com/ifoukarakis), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivakorin](https://github.com/ivakorin), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [lieut-data](https://github.com/lieut-data), [LimJiAn](https://github.com/LimJiAn), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahmoudfarouq](https://github.com/mahmoudfarouq), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [MatthewDorner](https://github.com/MatthewDorner), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://translate.mattermost.com/user/milotype), [mvitale1989](https://github.com/mvitale1989), [nickmisasi](https://github.com/nickmisasi), [panoramix360](https://github.com/panoramix360), [Partizann](https://github.com/Partizann), [penghao_chn](https://translate.mattermost.com/user/penghao_chn), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [RichardScottOZ](https://github.com/RichardScottOZ), [robinsdm](https://github.com/robinsdm), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShrootBuck](https://github.com/ShrootBuck), [sinansonmez](https://github.com/sinansonmez), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [StreakInTheSky](https://github.com/StreakInTheSky), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [tasawar-hussain](https://github.com/tasawar-hussain), [TealWater](https://github.com/TealWater), [thinkGeist](https://github.com/thinkGeist), [ThrRip](https://translate.mattermost.com/user/ThrRip), [timmycheng](https://translate.mattermost.com/user/timmycheng), [toninis](https://github.com/toninis), [tschuyebuhl](https://github.com/tschuyebuhl), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [y4aniv](https://translate.mattermost.com/user/y4aniv), [yash2189](https://github.com/yash2189), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [ZubairImtiaz3](https://github.com/ZubairImtiaz3) + +---- + +## Release v8.1 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) + +- **8.1.3, released 2023-10-06** + - Mattermost v8.1.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.1.3 contains no database or functional changes. + - Fixed a potential read after write issue when loading license. + - Prepackaged Calls plugin version [v0.18.2](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.18.2). + - Fixed a panic where a simple worker would crash if it failed to get a job. +- **8.1.2, released 2023-09-08** + - Mattermost v8.1.2 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.1.2 contains the following database changes: + - Improved performance on data retention ``DeleteOrphanedRows`` queries. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for notes on a new migration that was added. Removed feature flag ``DataRetentionConcurrencyEnabled``. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting ``DataRetentionSettings.RetentionIdsBatchSize``, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100. +- **8.1.1, released 2023-09-01** + - Mattermost v8.1.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.1.1 contains no database or functional changes. + - Fixed an issue preventing successful activation of trial licenses. + - Fixed several issues with loading of licenses. + - Fixed an issue where text copied from Microsoft OneNote pasted it as an image. + - Replaced Gfycat with Giphy in the gif picker. + - Fixed an issue where compliance export jobs were not able to start after disabling and enabling the compliance export. +- **8.1.0, released 2023-08-24** + - Original 8.1.0 release + +### Improvements + +#### User Interface (UI) + - Updated the user interface for the **Browse channels** modal. + - Increased the nickname field in the user interface from 22 to 64 characters. + - Updated links to documentation in the **System Console**. + - Emoji size is now in scale with the text size in the channel header. + - The emoji picker view modal is now displayed on mobile browsers. + - Prepackaged v1.2.2 of the Apps plugin. + - Prepackaged Focalboard plugin version 7.11.2. + - Prepackaged Playbooks version 1.38.0. + - Prepackaged Calls plugin version 0.18.0. + +#### Administration + - Added support for a separate Export storage and S3 presigned URLs generation for downloading the export files. + - Using ``https://github.com/reduxjs/redux-devtools`` in production builds is now allowed for webapp. + - Added a new feature flag, ``DataRetentionConcurrencyEnabled``, to enable/disable concurrency for data retention batch deletion. Also added a new configuration setting ``DataRetentionSettings.TimeBetweenBatchesMilliseconds`` to control the sleep time between batch deletions. + - Added a setting under **System Console > Authentication > Guest Access > Show Guest Tag** to remove the **Guest** badges from within the product. +- Added Apache 2.0 license to the public submodule, explicitly signalling to [pkg.go.dev](https://pkg.go.dev/github.com/mattermost/mattermost/server/public@v0.0.6) the license in play for this source code. + - Added the ability for admins to hide or customize the **Forgot password** link on the login page. + - The ``mattermost database reset`` command no longer starts the application server. It will only start the store layer and truncate the tables excluding the migrations table. + +### Bug Fixes + - Fixed an issue where scrollbars were not visible enough on the **File Preview** screen. + - Fixed an issue where SAML Admin Attribute only compared the first value instead of looping through the assertion values array. + - Fixed an issue where updates to recent emojis were not batched when multiple emojis were posted at once. + - Reverted a change that could cause the webapp to forget the current user's authentication method. + - Fixed an issue where drafts would persist after sending an ``@here`` mention in the right-hand side. + - Fixed an issue where the **New messages** toast appeared on channels that were completely visible. + - Fixed an UI issue related to profile popover on channel member search in the right hand pane. + - Fixed an issue where the multi-line channel header preview was too narrow on mobile web view. + - Fixed the render of the **Add Slash Command** page in the backstage area. + - Fixed an issue where user's timezone affected the date selection in the calendar. + - Fixed the clickable area of post textboxes being too small. + - Fixed an UI bug in the bot profile popover. + - Fixed an issue with missing time zone metadata in the Docker container. + - Fixed an issue with the ``registerMessageWillBeUpdatedHook`` plugin hook. + - Fixed an issue where the **Saved Posts** section would not show channel and team names. + - Fixed accessibility issues: tab support at login, reset and signup pages, and controls at the Apps bar. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Under ``PasswordSettings`` in ``config.json``: + - Added ``EnableForgotLink`` to add the ability for admins to hide or customize the **Forgot password** link on the login page. + - Under ``FileSettings`` + - Added various export store settings to add support for a new Export storage. + +#### Changes to Professional and Enterprise plans: + - Under ``GuestAccountsSettings`` in ``config.json``: + - Added ``HideTags`` to add the ability to remove the **Guest** badges from within the product. + +#### Changes to Enterprise plan: + - ``DataRetentionSettings`` in ``config.json``: + - Added ``TimeBetweenBatchesMilliseconds`` setting to control the sleep time between batch deletions. + +### Go Version + - v8.1 is built with Go ``v1.19.5``. + +### Known Issues + - Copy pasting images from Chrome fails [MM-54486](https://mattermost.atlassian.net/browse/MM-54486). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [3kami3](https://github.com/3kami3), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaMrDC](https://github.com/akaMrDC), [Alanchen](https://translate.mattermost.com/user/Alanchen), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [austin-denoble](https://github.com/austin-denoble), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [azistellar](https://translate.mattermost.com/user/azistellar), [bartoszpijet](https://github.com/bartoszpijet), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BodhiHu](https://github.com/BodhiHu), [CI-YU](https://translate.mattermost.com/user/CI-YU), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielcw-fortuna](https://github.com/danielcw-fortuna), [devinbinnie](https://github.com/devinbinnie), [dirosv-eden](https://translate.mattermost.com/user/dirosv-eden), [dsharma522](https://github.com/dsharma522), [EduardoSellanes](https://github.com/EduardoSellanes), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esarafianou](https://github.com/esarafianou), [esethna](https://github.com/esethna), [fmartingr](https://github.com/fmartingr), [gabrieljackson](https://github.com/gabrieljackson), [guuw](https://translate.mattermost.com/user/guuw), [hanh.h.pham](https://translate.mattermost.com/user/hanh.h.pham), [harshal2030](https://github.com/harshal2030), [harshilsharma63](https://github.com/harshilsharma63), [hchorfispiria](https://github.com/hchorfispiria), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [invalid-email-address](https://github.com/invalid-email-address), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [janostgren](https://github.com/janostgren), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jlandells](https://github.com/jlandells), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [kaakaa](https://github.com/kaakaa), [karan2704](https://github.com/karan2704), [kayazeren](https://github.com/kayazeren), [komoon8934](https://github.com/komoon8934), [krmh04](https://github.com/krmh04), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [linkvn](https://github.com/linkvn), [loganrosen](https://github.com/loganrosen), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahaker](https://github.com/mahaker), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matinzd](https://github.com/matinzd), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [mkdbns](https://github.com/mkdbns), [morgancz](https://github.com/morgancz), [mustdiechik](https://github.com/mustdiechik), [mvitale1989](https://github.com/mvitale1989), [namanh-asher](https://github.com/namanh-asher), [nickmisasi](https://github.com/nickmisasi), [notlelouch](https://github.com/notlelouch), [orta-contrib](https://github.com/orta-contrib), [panoramix360](https://github.com/panoramix360), [PedroHmaker](https://github.com/PedroHmaker), [phoinix-mm-test](https://github.com/phoinix-mm-test), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://github.com/pjenicot), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [qryptdev](https://github.com/qryptdev), [ridwankabeer435](https://github.com/ridwankabeer435), [roadt](https://github.com/roadt), [saideepesh000](https://github.com/saideepesh000), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [ShrootBuck](https://github.com/ShrootBuck), [sinansonmez](https://github.com/sinansonmez), [sonichigo](https://github.com/sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [thefourcraft](https://github.com/thefourcraft), [thinkGeist](https://github.com/thinkGeist), [ThrRip](https://github.com/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [veronicadip](https://github.com/veronicadip), [vish9812](https://github.com/vish9812), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yigitcan-prospr](https://github.com/yigitcan-prospr), [yomiadetutu1](https://github.com/yomiadetutu1) + +---- + +## Release v8.0 - [Major Release](https://docs.mattermost.com/upgrade/release-definitions.html#major-release) + +- **8.0.4, released 2023-10-06** + - Mattermost v8.0.4 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.0.4 contains no database or functional changes. + - Prepackaged Calls plugin version [v0.17.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.17.1). +- **v8.0.3, released 2023-09-08** + - Mattermost v8.0.3 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.0.3 contains no database or functional changes. +- **v8.0.2, released 2023-09-01** + - Mattermost v8.0.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.0.2 contains no database or functional changes. + - Fixed an issue with missing time zone metadata in the Docker container. + - Fixed an issue preventing successful activation of trial licenses. + - Replaced Gfycat with Giphy in the gif picker. +- **v8.0.1, released 2023-07-26** + - Mattermost v8.0.1 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v8.0.1 contains no database or functional changes. + - Added support for embedding Mattermost in a Microsoft Teams iframe. + - Fixed an issue where the v8.0.0 **About Mattermost** dialog reported an incorrect server version in the Free Plan [MM-53681](https://mattermost.atlassian.net/browse/MM-53681). + - Prepackaged Focalboard plugin version 7.11.2. +- **8.0.0, released 2023-07-14** + - Original 8.0.0 release + +### Important Upgrade Notes + + - Insights has been deprecated for all new instances and for existing servers that upgrade to v8.0. See more details in [this forum post](https://forum.mattermost.com/t/proposal-to-revise-our-insights-feature-due-to-known-performance-issues/16212) on why Insights has been deprecated. + - The Focalboard plugin is now disabled by default for all new instances and can be enabled in the **System Console > Plugin settings**. + - The Channel Export and Apps plugins are now disabled by default. + - Apps Bar is now enabled by default for on-prem servers. ``ExperimentalSettings.EnableAppBar`` was also renamed to ``ExperimentalSettings.DisableAppBar``. See more details at: + - https://docs.mattermost.com/configure/experimental-configuration-settings.html#disable-app-bar + - https://forum.mattermost.com/t/channel-header-plugin-changes/13551 + - Introduced the [public](https://github.com/mattermost/mattermost/tree/master/server/public) submodule, housing the familiar `model` and `plugin` packages, but now discretely versioned from the server. It is no longer necessary to `go get` a particular commit hash, as Go programs and plugins can now opt-in to importing `github.com/mattermost/mattermost-server/server/public` and managing versions idiomatically. While this submodule has not yet shipped a v1 and will introduce breaking changes before stabilizing the API, it remains both forwards and backwards compatible with the Mattermost server itself. + - In the main `server package`, the Go module path has changed from ``github.com/mattermost/mattermost-server/server/v8`` to ``github.com/mattermost/mattermost/server/v8``. But with the introduction of the `public` submodule, it should no longer be necessary for third-party code to import this `server` package. + - As part of the `public` submodule above, a ``context.Context`` is now passed to ``model.Client4`` methods. + - Removed support for PostgreSQL v10. The new minimum PostgreSQL version is now v11. + - The Mattermost public API for Go is now available as a distinctly versioned package. Instead of pinning a particular commit hash, use idiomatic Go to add this package as a dependency: go get ``github.com/mattermost/mattermost-server/server/public``. This relocated Go API maintains backwards compatibility with Mattermost v7. Furthermore, the existing Go API previously at github.com/mattermost/mattermost-server/v6/model remains forward compatible with Mattermost v8, but may not contain newer features. Plugins do not need to be recompiled, but developers may opt in to using the new package to simplify their build process. The new public package is shipping alongside Mattermost v8 as version 0.5.0 to allow for some additional code refactoring before releasing as v1 later this year. + - Three configuration fields have been added, ``LogSettings.AdvancedLoggingJSON``, ``ExperimentalAuditSettings.AdvancedLoggingJSON``, and ``NotificationLogSettings.AdvancedLoggingJSON`` which support multi-line JSON, escaped JSON as a string, or a filename that points to a file containing JSON. The ``AdvancedLoggingConfig`` fields have been deprecated. + - The Go MySQL driver has changed the ``maxAllowedPacket`` size from 4MiB to 64MiB. This is to make it consistent with the change in the server side default value from MySQL 5.7 to MySQL 8.0. If your ``max_allowed_packet`` setting is not 64MiB, then please update the MySQL config DSN with an additional param of ``maxAllowedPacket`` to match with the server side value. Alternatively, a value of 0 can be set to to automatically fetch the server side value, on every new connection, which has a performance overhead. + - Removed ``ExperimentalSettings.PatchPluginsReactDOM``. If this setting was previously enabled, confirm that: + + 1. All Mattermost-supported plugins are updated to the latest versions. + 2. Any other plugins have been updated to support React 17. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for v7.7 for more information. + + - Removed deprecated ``PermissionUseSlashCommands``. + - Removed deprecated ``model.CommandArgs.Session``. + - Pass a ``context.Context`` to Client4 methods. + - For servers wanting to allow websockets to connect from origins other than the origin of the site URL, please set the ``ServiceSettings.AllowCorsFrom`` [configuration setting](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-cross-origin-requests-from). Also ensure that the ``siteURL`` is set correctly. + - In v8.0, the following repositories are merged into one: ``mattermost-server``, ``mattermost-webapp`` and ``mmctl``. Developers should read the updated [Developer Guide](https://developers.mattermost.com/contribute/developer-setup/) for details. + - Fixed an issue caused by a migration in the previous release. Query takes around 11ms on a PostgreSQL 14 DB t3.medium RDS instance. Locks on the preferences table will only be acquired if there are rows to delete, but the time taken is negligible. + - Fixed an issue where a user would still see threads in the threads view of channels they have left. Migration execution time in PostgreSQL: Execution time: 58.11 sec, DELETE 2766690. Migration execution time in MySQL: Query OK, 2766769 rows affected (4 min 47.57 sec). + - The file info stats query is now optimized by denormalizing the ``channelID`` column into the table itself. This will speed up the query to get the file count for a channel when selecting the right-hand pane. Migration times: + + - On a PostgreSQL 12.14 DB with 1731 rows in FileInfo and 11M posts, it took around 0.27s + - On a MySQL 8.0.31 DB with 1405 rows in FileInfo and 11M posts, it took around 0.3s + +```{Important} +If you upgrade from a release earlier than v7.10, please read the other [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Private cloud LLMs, Azure AI, and OpenAI integrations + - Mattermost provides an OpenOps framework to integrate with private cloud LLMs, Azure AI, and OpenAI models to embed generative AI assistance in collaborative workflows and automation. [Learn more about OpenOps here](https://github.com/mattermost/openops). + +#### Mattermost for Microsoft Teams + - We’re extending our integration with the Microsoft 365 platform with a new embedded experience directly inside Microsoft Teams, as well as our updated MS Teams Connector. + +#### Mattermost for Atlassian Suite + - Uplevel your workflows within Mattermost using your Atlassian toolset. [Learn more about Mattermost for Atlassian Suite here](https://mattermost.com/atlassian/). + +#### Performance and efficiency with PostgreSQL + - To simplify management and scalability challenges, Mattermost 8.0 recommends deploying PostgreSQL over MySQL. + +#### New End User Training + - We’re introducing [9 new training modules](https://academy.mattermost.com/p/mattermost-end-user-onboarding) dedicated to educating users on the key components of the Mattermost platform and an additional [10 new use case modules](https://academy.mattermost.com/courses/category/use-case-training) tackling technical scenarios within DevOps, Security Ops, and Incident Management. + +### Improvements + +#### User Interface (UI) + - Persistent notifications (Professional and Enterprise Plans) allow users to notify recipients repeatedly until action is taken on an urgent message. Check out [our documentation](https://docs.mattermost.com/channels/message-priority.html#send-persistent-notifications) for more details. + - The apps bar is now enabled by default for on-prem servers. ``ExperimentalSettings.EnableAppBar`` was also renamed to ``ExperimentalSettings.DisableAppBar``. See more details at: + - https://docs.mattermost.com/configure/experimental-configuration-settings.html#disable-app-bar + - https://forum.mattermost.com/t/channel-header-plugin-changes/13551 + - Added a **Mattermost Marketplace** option to the bottom of the apps bar. The option is visible when the Marketplace is enabled, and the user has ``SYSCONSOLE_WRITE_PLUGINS`` permissions. + - Calls v0.17.0 introduces a new ringing feature (Beta): Calls in Direct and Group Message channels will ring and pop up a visual notification for the incoming call. Check out the Calls v0.17.0 release notes and [Calls documentation](https://docs.mattermost.com/channels/make-calls.html) for more details. + - Added an **Add channels** button to the bottom of the left-hand sidebar to make the action more obvious for users who want to create or join channels. + - Removed the Webapp Build Hash from **Main Menu > About Mattermost** since it is now identical to Server Build Hash. + - Replaced the ``compass-components`` icon component with ``compass-icons``. + - Added **hours ahead** timezone details to the user profile popover. + - Added an experimental feature to disable re-fetching of channel and channel members on browser focus. + - Bot users are now hidden in the user selector in apps forms. + - Removed the fetching of archived channels on page load. + - The **Channel Type** dropdown within the **Browse Channels** modal can now be focused. + - Removed in-app help pages that were no longer accessible. + - Removed system join/leave messages from thread replies and post them instead in the main channel. + - Added [an experimental setting](https://docs.mattermost.com/configure/experimental-configuration-settings.html#delay-channel-autocomplete) to make the channel autocomplete only appear after typing two characters instead of immediately after the tilde (~). + - Default user profile pictures will now regenerate a new picture when the username changes. + - Implemented URL auto generation on channel creation for when there's no URL-safe characters on its name. + - Added a new option to auto-follow all threads in the channel **Notification Preference** settings. + - ``CTRL/CMD + K`` shortcut can now be used to insert link formatting when text is selected. + - ``pas`` and ``pascal`` code blocks are now higlighted. + - Removed websocket state effects for the collapse/expand state of categories. + - Pre-packaged Jira plugin version 3.2.5. + - Pre-packaged GitHub plugin version 2.1.6. + - Pre-packaged Autolink plugin version 1.4.0. + - Pre-packaged Welcomebot plugin version 1.3.0. + - Pre-packaged NPS plugin version 1.3.2. + - Prepackaged Focalboard plugin version 7.11.0. + - Prepackaged Playbooks plugin version 1.37.0. + - Added support to specify different desktop notification sounds per channel. + - Calls: Ringing sounds can be enabled/disabled and selected in the **Desktop Notifications** preferences panel. + +#### Administration + - Added a new ``ConfigurationWillBeSaved`` plugin hook which is invoked before the configuration object is committed to the backing store. + - Admins can now specify index names to ignore while purging indexes from Elasticsearch with the ``ElasticsearchSettings.IgnoredPurgeIndexes`` setting. + - Added an option to use the German HPNS notification proxy. + - New flags were added to the [database migrate command](https://docs.mattermost.com/manage/command-line-tools.html#mattermost-db-migrate) as following: + + - ``auto-recover``: If the migration plan receives an error during migrations, this command will try to rollback migrations already applied within the plan. This option is not recommended to be added without reviewing migration plan. You can review the plan by combining ``--save-plan`` and ``--dry-run`` flags. + - ``save-plan``: The plan for the migration will be saved into the file store so that it can be used for reviewing the plan or to be used for downgrading. + - ``dry-run``: Does not apply the migrations, but it validates how the migration would run with the given conditions. + + - A new [database subcommand](https://docs.mattermost.com/manage/command-line-tools.html#mattermost-db-downgrade) "downgrade" was added to be able to rollback database migrations. The command either requires an update plan to rollback, or comma separated version numbers. + - Removed ``/api/v4/users/stats`` network request from ``InviteMembersButton``. + - Self-hosted admins can now define a separate shipping address during in-product license purchase. + - Added updates to the trial request forms to allow for a more tailored trial experience. + - First admins will now have an onboarding experience that includes first team creation based on company name and invite members link steps. + - Adds the ability to expand seats in-product for self-hosted servers. + - Added the ability to search a partial first name, last name, nickname, or username on the **System Console > Users** page. + - **Contact Support** now redirects users to Zendesk and pre-fills known information. + - Added a mechanism for public routes on products and used it to support publicly shared Board links. + - The database section in the **System Console** now has an additional read-only section which shows the active search backend in use. This can be helpful to confirm which search engine is currently active when there are multiple configured. + - Updated Docker Base Image from Debian to Ubuntu 22.04 LTS. + - Type-generated settings will now be generated (only for future generations) with a URL-safe version of base64 encoding. + - Mattermost is now resilient against database replica outages and will dynamically choose a replica if it's alive. Also a config parameter ``ReplicaMonitorIntervalSeconds`` was added and the default value is 5. This controls how frequently unhealthy replicas will be monitored for liveness check. + +#### Performance + - Improved the performance of webapp related to timezone calculations. + - Improved performance of code used for post list screen reader support. + +### API Changes + - An underscore is now used in the timeline API (``event-id`` -> ``event_id``) for consistency with other API arguments. + +### Bug Fixes + - Fixed a scrolling issue in the purchase modals. + - Fixed an issue where the experimental Shared Channels feature failed to synchronize if a previously removed table column was still present. + - Fixed an issue where clicking on a channel link (for a channel the user was not a part of) caused the webapp to refresh, dropping the user from a call. + - Fixed an issue with PDF preview rendering for certain Japanese characters. + - Fixed an issue where the screen reader did not announce the action of copying the link in the invite modal. + - Fixed an issue with post metadata not generating correctly for images due to missing content-type in response. This would result in certain embedded images not to display on mobile clients. + - Fixed an issue where edits to messages persisted after canceling. + - Added a condition for bot tags for webhook posts when a bot account is used for webhooks. + - Fixed the sorting value of categories in ``CreateSidebarCategoryForTeamForUser``. + - Fixed a potential crash when opening the user profile popover. + - Fixed permalink and thread reply navigation between teams. + - Fixed an issue with the installation of pre-packaged plugins that are not in the Marketplace. + - Fixed an issue caused by a migration in a previous release. The query takes around 11ms on a PostgreSQL 14 DB t3.medium RDS instance. Locks on the preferences table will only be acquired if there are rows to delete, but the time taken is negligible. + - Fixed an issue where modals did not close when clicking below them on certain screen sizes. + - Fixed an issue with a few translation labels that couldn't be translated. + - Fixed an issue where the server log UI for plain text formatting was unexpectedly removed in a previous release. + - Fixed an issue where combined system messages did not display in chronological order. + - Fixed an issue where the current user and status were not updated on WebSocket reconnect. + - Fixed an issue where certain hashtags were not searchable when using database search. + - Fixed the **New Messages** line overlapping date lines in the post list. + - Fixed an issue where post reactions disappeared when the search sidebar was open. + - Fixed an issue with broken "medical_symbol", "male_sign", and "female_sign" emojis. + - Fixed a panic where a JSON null value was passed as a channel update. + - Fixed an issue where the draft counter badge remained in cases where a deleted parent post was removed. + - Fixed an issue where posts were not fully sanitized for audit output when a link preview was included. + - Fixed an issue where the footer with **Save/Cancel** buttons did not get anchored properly in the System Console. + - Fixed an issue where the undo history was erased when links, tables, or code was pasted into the textbox. + - Fixed an issue where Elasticsearch didn't properly start on startup when enabled. Also added a missing ``IsEnabled`` method to Elasticsearch. + - Fixed an issue where text couldn't be copied from the post textbox. + - Fixed an issue where using **SHIFT+TAB** with a screen reader placed the cursor focus at the bottom of the channel rather than at the post that was linked to. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Removed ``EnableInactivityEmail`` config setting. + - Added a new config setting section ``ProductSettings``. + - Under ``ExperimentalSettings`` in ``config.json``: + - Added ``DelayChannelAutocomplete``, to make the channel autocomplete only appear after typing a couple letters instead of immediately after a tilde. + - Added ``DisableRefetchingOnBrowserFocus``, to disable re-fetching of channel and channel members on browser focus. + - Added ``DisableAppBar`` to enable apps bar by default. + - Three configuration fields have been added, ``LogSettings.AdvancedLoggingJSON``, ``ExperimentalAuditSettings.AdvancedLoggingJSON``, and ``NotificationLogSettings.AdvancedLoggingJSON`` which support multi-line JSON, escaped JSON as a string, or a filename that points to a file containing JSON. The ``AdvancedLoggingConfig`` fields have been deprecated. + +#### Changes to Professional and Enterprise plans: + - Under ``ServiceSettings`` in ``config.json``: + - Added new configuration settings ``AllowPersistentNotifications``, ``PersistentNotificationIntervalMinutes``, ``PersistentNotificationMaxCount``, ``PersistentNotificationMaxRecipients``, to add a persistent notification option when sending urgent priority posts. + +#### Changes to Enterprise plan: + - Under ``ElasticsearchSettings`` in ``config.json``: + - Now you can specify index names to ignore while purging indexes from Elasticsearch with the ``IgnoredPurgeIndexes`` setting. + +### Go Version + - v8.0 is built with Go ``v1.19.5``. + +### Open Source Components: + - Added ``date-fns`` to https://github.com/mattermost/mattermost/. + +### Known Issues + - White screen might appear when creating a slash command [MM-53665](https://mattermost.atlassian.net/browse/MM-53665). + - When sending a draft message in a Thread, the message is not cleared if the thread is open in the right-hand side [MM-53520](https://mattermost.atlassian.net/browse/MM-53520). + - Channel and team names are missing from **Saved Posts** in the right-hand side [MM-53636](https://mattermost.atlassian.net/browse/MM-53636). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akaMrDC](https://translate.mattermost.com/user/akaMrDC), [akaravashkin](https://github.com/akaravashkin), [amyblais](https://github.com/amyblais), [andriusbal](https://github.com/andriusbal), [andrleite](https://github.com/andrleite), [aqurilla](https://github.com/aqurilla), [asaadmahmood](https://github.com/asaadmahmood), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [chumano](https://translate.mattermost.com/user/chumano), [CI-YU](https://translate.mattermost.com/user/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [creeper-0910](https://translate.mattermost.com/user/creeper-0910), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [diciwall](https://translate.mattermost.com/user/diciwall), [DieAkuteSense](https://github.com/DieAkuteSense), [dirosv-eden](https://github.com/dirosv-eden), [Ele7o](https://translate.mattermost.com/user/Ele7o), [Eleferen](https://translate.mattermost.com/user/Eleferen), [enahum](https://github.com/enahum), [Esterjudith](https://github.com/Esterjudith), [fmartingr](https://github.com/fmartingr), [fnogcps](https://github.com/fnogcps), [gabrieljackson](https://github.com/gabrieljackson), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ifoukarakis](https://github.com/ifoukarakis), [ilies-bel](https://github.com/ilies-bel), [invalid-email-address](https://github.com/invalid-email-address), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivalkshfoeif](https://github.com/ivalkshfoeif), [iyampaul](https://github.com/iyampaul), [janostgren](https://github.com/janostgren), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [kaakaa](https://translate.mattermost.com/user/kaakaa), [karan2704](https://github.com/karan2704), [kayazeren](https://github.com/kayazeren), [kostaspt](https://github.com/kostaspt), [krmh04](https://github.com/krmh04), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [leonambeez](https://github.com/leonambeez), [LeonardJouve](https://github.com/LeonardJouve), [lieut-data](https://github.com/lieut-data), [lmedoshvili](https://translate.mattermost.com/user/lmedoshvili), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [mahaker](https://github.com/mahaker), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [MattSilvaa](https://github.com/MattSilvaa), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [morgancz](https://github.com/morgancz), [muratbayan](https://translate.mattermost.com/user/muratbayan), [mvitale1989](https://github.com/mvitale1989), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://translate.mattermost.com/user/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nihaldivyam](https://github.com/nihaldivyam), [pablo-suazo](https://github.com/pablo-suazo), [panklobouk](https://translate.mattermost.com/user/panklobouk), [Partizann](https://github.com/Partizann), [phoinix-mm-test](https://github.com/phoinix-mm-test), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://translate.mattermost.com/user/pjenicot), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [ridwankabeer435](https://github.com/ridwankabeer435), [rOt779kVceSgL](https://translate.mattermost.com/user/rOt779kVceSgL), [RoyI99](https://github.com/RoyI99), [saideepesh000](https://github.com/saideepesh000), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shivamjosh](https://github.com/shivamjosh), [sinansonmez](https://github.com/sinansonmez), [SkyLuke91](https://translate.mattermost.com/user/SkyLuke91), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [tejaskarelia17](https://github.com/tejaskarelia17), [tfromont](https://translate.mattermost.com/user/tfromont), [ThrRip](https://translate.mattermost.com/user/ThrRip), [timmycheng](https://github.com/timmycheng), [toninis](https://github.com/toninis), [tsabi](https://translate.mattermost.com/user/tsabi), [ujwalkumar1995](https://github.com/ujwalkumar1995), [vish9812](https://github.com/vish9812), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1), [zhsj](https://github.com/zhsj) + +---- + +## Release v7.11 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + + - The Mattermost v7.11 release has been canceled as we are working on architectural changes for the Mattermost platform. The next scheduled release is v8.0 this summer. + +## Release v7.10 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **v7.10.5, released 2023-07-26** + - Mattermost v7.10.5 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.10.5 contains no database or functional changes. + - Fixed an issue where line breaks were introduced when pasting hyperlinks in the chat. + - Prepackaged Focalboard plugin version 7.10.5. +- **v7.10.4, released 2023-07-12** + - Mattermost v7.10.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.10.4 contains no database or functional changes. + - Fixed an issue where posts were not fully sanitized for audit output when a link preview was included. + - Updated prepackaged Playbooks plugin version to 1.36.2. +- **v7.10.3, released 2023-06-15** + - Mattermost v7.10.3 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Updated prepackaged Boards to v7.10.4. + - Included prepackaged Welcomebot plugin v1.3.0. + - For servers wanting to allow websockets to connect from origins other than the origin of the site URL, please set the ``ServiceSettings.AllowCorsFrom`` [configuration setting](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-cross-origin-requests-from). Also ensure that the ``siteURL`` is set correctly. +- **v7.10.2, released 2023-05-18** + - Fixed an issue where v7.10 reported an incorrect mmctl version. +- **v7.10.1, released 2023-05-16** + - Mattermost v7.10.1 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where a user would still see threads in the threads view of channels they have left. Migration execution time in MySQL: Query OK, 2766769 rows affected (4 min 47.57 sec). Migration execution time in PostgreSQL: 58.11 sec, DELETE 2766690. + - Prepackaged version 1.2.1 of the Apps plugin. + - Prepackaged version 2.1.5 of the GitHub plugin. + - Updated prepackaged Playbooks v1.36.1. + - Fixed an issue where true-up review submissions always failed. + - Fixed an issue caused by a migration in the previous release. Query takes around 11ms on a PostgreSQL 14 DB t3.medium RDS instance. Locks on the preferences table will only be acquired if there are rows to delete, but the time taken is negligible. +- **v7.10.0, released 2023-04-14** + - Original 7.10.0 release + +Mattermost v7.10.0 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + + - In the next release, v7.11, the following repositories will be merged into one: ``mattermost-server``, ``mattermost-webapp``, ``focalboard`` and ``mattermost-plugin-playbooks``. Developers should read the updated [Developer Guide](https://developers.mattermost.com/contribute/developer-setup/) for details. **Playbooks and Boards will be core parts of the product that cannot be disabled**. + +```{Important} +If you upgrade from a release earlier than v7.9, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Improvements + +#### User Interface (UI) + - Added the ability to set a reminder to read a message at a specific time via the **More** menu in messages. + - Mentions from muted channels are no longer shown or counted on the browser and desktop tabs. + - Updated descriptions for **Environment > Developer** settings in the **System Console** to clarify that changes require a server restart to take effect. + - The custom user status is now shown in the right-hand side **Members** pane and in **System Console > Users**. + - Added the ability to invite multiple people at a time by email to a Mattermost instance. + - Added accessibility support to the date picker. + - System admins are prompted to complete a feedback survey during a workspace downgrade process from Cloud Professional to Cloud Free. + - Migrated the message (...) **More** option to a Material UI (MUI) menu. + - Updated pre-packaged Boards to v7.10.0. + - Updated pre-packaged Calls to v0.15.1. + +#### Administration + - The ``ServiceSettings.PostEditTimeLimit`` config setting no longer affects Plugins, Shared Channels, Integration Actions, or Mattermost Products. + - The app server no longer starts if the telemetry ID in the systems table doesn't exist. Although there is no action required by the administrators, it may be good to be aware of this change. If the ID doesn't exist, administrators can read the error log and take action against it. + - Added additional values to the support packet. + - Self-hosted instances will now show invoices in **System Console > Billing & Account > Billing History*** for prior self-serve purchases. + - A 404 error is now returned if an invoice could not be fetched for a self-hosted deployment. + +#### Performance + - Writes to websocket now take 13% less memory and happen 22% faster per message. + +### API Changes + - Added a ``exclude_files_count`` parameter to exclude file counts from channel stats API. + +### Bug Fixes + - Fixed an issue where Shared Channels wasn't properly added to the Professional license. + - Fixed new teams to use the updated translation for default channels after a config change. + - Fixed issues with spacing in the channel categories and maintained the same spacing in the left-hand side. + - Fixed disproportionate height issues for tall single images. + - Fixed an issue where a single WebSocket reconnect could be handled multiple times which would negatively affect performance. + - Fixed an issue in **Top DM Insights**, where a deleted participant caused DM Insights to fail. + - Fixed an issue where Cloud limits would briefly flash in the System Console before disappearing. + - Fixed an issue with the compact message mode. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``ServiceSettings`` in the ``config.json``: + - ``SelfHostedExpansion`` config setting was added to support incremental additions/changes to this feature. + +### Go Version + - v7.10 is built with Go ``v1.19.5``. + +### Open Source Components + - Added ``date-fns`` to https://github.com/mattermost/mattermost-webapp/. + +### Known Issues + - Updating from v7.9.x to Focalboard 7.10.4 causes Boards attachments to be lost [MM-53240](https://mattermost.atlassian.net/browse/MM-53240). + - Users have trouble logging into Mattermost mobile app when the DiagnosticId is not properly stored in cache after startup [MM-53195](https://mattermost.atlassian.net/browse/MM-53195). + - Users are unexpectedly forced to enable JSON logging [MM-51453](https://mattermost.atlassian.net/browse/MM-51453). + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. See the `Insights `__ documentation for details. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [11sma](https://github.com/11sma), [adj2908](https://github.com/adj2908), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [andrius.balsevicius](https://translate.mattermost.com/user/andrius.balsevicius), [angeloskyratzakos](https://github.com/angeloskyratzakos), [AntalaFilip](https://github.com/AntalaFilip), [anx-ag](https://github.com/anx-ag), [aputtu](https://github.com/aputtu), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [ayusht2810](https://github.com/ayusht2810), [BenCookie95](https://github.com/BenCookie95), [bfontaine](https://github.com/bfontaine), [byigorv](https://github.com/byigorv), [calebroseland](https://github.com/calebroseland), [coltoneshaw](https://github.com/coltoneshaw), [ConorMacpherson](https://github.com/ConorMacpherson), [cpoile](https://github.com/cpoile), [creeper-0910](https://translate.mattermost.com/user/creeper-0910), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [d-wierdsma](https://github.com/d-wierdsma), [DaDummy](https://github.com/DaDummy), [devinbinnie](https://github.com/devinbinnie), [Dmitry](https://translate.mattermost.com/user/Dmitry), [dylanrichards](https://github.com/dylanrichards), [EduardoSellanes](https://github.com/EduardoSellanes), [Eleferen](https://translate.mattermost.com/user/Eleferen), [Elpunical](https://github.com/Elpunical), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [ericgaspar](https://github.com/ericgaspar), [esarafianou](https://github.com/esarafianou), [ewwollesen](https://github.com/ewwollesen), [fmartingr](https://github.com/fmartingr), [fnogcps](https://github.com/fnogcps), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gitstart](https://github.com/gitstart), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hattori611](https://github.com/hattori611), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [ifoukarakis](https://github.com/ifoukarakis), [isaacbegit](https://github.com/isaacbegit), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jnsgruk](https://github.com/jnsgruk), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kaykayehnn](https://github.com/kaykayehnn), [KBeDevel](https://github.com/KBeDevel), [khoipro](https://github.com/khoipro), [kmaed](https://github.com/kmaed), [komoon8934](https://translate.mattermost.com/user/komoon8934), [koox00](https://github.com/koox00), [kostaspt](https://github.com/kostaspt), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kwiersgalla](https://github.com/kwiersgalla), [larkox](https://github.com/larkox), [leonambeez](https://translate.mattermost.com/user/leonambeez), [lieut-data](https://github.com/lieut-data), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [MatthewDorner](https://github.com/MatthewDorner), [MattSilvaa](https://github.com/MattSilvaa), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michael_kim](https://translate.mattermost.com/user/michael_kim), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mini-bomba](https://github.com/mini-bomba), [mirshahriar](https://github.com/mirshahriar), [moatasim](https://translate.mattermost.com/user/moatasim), [MoatazMuhammad51](https://github.com/MoatazMuhammad51), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [muratbayan](https://translate.mattermost.com/user/muratbayan), [mvitale1989](https://github.com/mvitale1989), [natalie-hub](https://github.com/natalie-hub), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [NixemDEV](https://translate.mattermost.com/user/NixemDEV), [oraliahdz](https://github.com/oraliahdz), [paolo-rossi](https://github.com/paolo-rossi), [Peytob](https://github.com/Peytob), [phoinixgrr](https://github.com/phoinixgrr), [pjenicot](https://translate.mattermost.com/user/pjenicot), [plant99](https://github.com/plant99), [plut0s](https://translate.mattermost.com/user/plut0s), [potatogim](https://translate.mattermost.com/user/potatogim), [pureiris](https://github.com/pureiris), [pvev](https://github.com/pvev), [Qui3t0wL](https://github.com/Qui3t0wL), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [roadt](https://github.com/roadt), [Rutboy](https://translate.mattermost.com/user/Rutboy), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [Sharuru](https://github.com/Sharuru), [sibasankarnayak](https://github.com/sibasankarnayak), [simcard0000](https://github.com/simcard0000), [sinansonmez](https://github.com/sinansonmez), [Sjazz](https://github.com/Sjazz), [smallcms](https://github.com/smallcms), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [stevemudie](https://github.com/stevemudie), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [tanmay-des](https://github.com/tanmay-des), [tanmaythole](https://github.com/tanmaythole), [Tasy218](https://translate.mattermost.com/user/Tasy218), [toninis](https://github.com/toninis), [trilopin](https://github.com/trilopin), [varghesejose2020](https://github.com/varghesejose2020), [Wainwright0830](https://github.com/Wainwright0830), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wuwinson](https://github.com/wuwinson), [xiao](https://translate.mattermost.com/user/xiao), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yomiadetutu1](https://github.com/yomiadetutu1) + +---- + +## Release v7.9 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **v7.9.6, released 2023-07-12** + - Mattermost v7.9.6 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.9.6 contains no database or functional changes. + - Fixed an issue where posts were not fully sanitized for audit output when a link preview was included. + - Updated prepackaged Playbooks plugin version to 1.36.2. +- **v7.9.5, released 2023-06-15** + - Mattermost v7.9.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Updated prepackaged Boards to v7.9.6. + - For servers wanting to allow websockets to connect from origins other than the origin of the site URL, please set the ``ServiceSettings.AllowCorsFrom`` [configuration setting](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-cross-origin-requests-from). Also ensure that the ``siteURL`` is set correctly. +- **v7.9.4, released 2023-05-16** + - Mattermost v7.9.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where a user would still see threads in the threads view of channels they have left. Migration execution time in MySQL: Query OK, 2766769 rows affected (4 min 47.57 sec). Migration execution time in PostgreSQL: 58.11 sec, DELETE 2766690. + - Prepackaged version 1.2.1 of the Apps plugin. + - Prepackaged version 2.1.5 of the GitHub plugin. + - Backporting fix for oauth 2. Query times depend on if you have rows to delete or not. Please see the [important upgrade notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for more details. +- **v7.9.3, released 2023-04-27** + - Mattermost v7.9.3 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where true-up review submissions always failed. +- **v7.9.2, released 2023-04-12** + - Mattermost v7.9.2 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Updated prepackaged Boards to v7.9.3. + - Updated prepackaged Playbooks to v1.36.1. + - Fixed an issue with compact message mode. + - Fixed an issue where ``NotifyAdmin`` job reported an error for unlicensed servers. +- **v7.9.1, released 2023-03-17** + - Mattermost v7.9.1 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.9.0, released 2023-03-16** + - Original 7.9.0 release + +Mattermost v7.9.0 contains a low severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + +- Added a new index on ``Posts(OriginalId)``. For a database with 11.8 million posts, on a machine with a i7-11800H CPU (8 cores, 16 threads), 32GiB of RAM and SSD, the index creation takes 98.51s on MYSQL and 2.6s on PostgreSQL. +- In PostgreSQL databases, the ``Posts`` table will be locked during index creation. To avoid locking this table, admins can create the index manually before performing the upgrade using the following non-blocking query: ``CREATE INDEX CONCURRENTLY idx_posts_original_id ON Posts(OriginalId);``. +- Admins managing PostgreSQL deployments containing fewer posts may prefer that the migration process creates the index, and accept that ``Posts`` table will remain locked until the migration is complete. + +```{Important} +If you upgrade from a release earlier than v7.8, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated Firefox minimum supported version to 102+. + - Updated Safari minimum supported version to 16.2+. + - Updated Windows minimum supported version to 10+. + - Updated Chromium minimum supported version to 110+. + - Updated Edge minimum supported version to 110+. + +### Highlights + +#### Boards + - System and team admins are now able to join any board on the team as a board admin via the board URL. + - Additional Compliance APIs to return the history of boards and blocks, including deleted items (available in Mattermost Enterprise Edition and above). + +### Improvements + +#### User Interface (UI) + - Prepackaged Calls v0.14.0. + - All post components were removed in favor of a unified approach. + - App bindings are now refreshed when a App plugin-enabled event gets triggered. + - Improvements were added to the sidebar channel and category menus. + - Removed right-click hijacking on code blocks in messages. + - The order of the Leave Channel and Archive Channel settings were updated to match the mobile app. + - Added the condition to remove unread styling for archived channels and to filter archived channels from local data. + - Changed the collapsed post fade out effect to be less buggy. + - Users now have the ability to see the history of edited messages and to restore an old message version with the current version. + - Improved the user interface of the user profile popover. + +#### Administration + - Boards cards are no longer mentioned as being limited in the **System Console**, the limits usage modal, the downgrade modal, or the left-hand side menu. + - Removed unused ``ProductLimits.Integrations``. + - Export files now contain the read and unread status for channels. + - Added an error message when running an LDAP sync with ``SyncEnabled`` set to ``false``. + - Added Admin log table filtering and sorting. + - GraphQL APIs are now correctly counted when measuring performance telemetry. + - Added a dynamic call-to-action under **System Console > Site Statistics and > Team Statistics** for air-gapped and non-air-gapped systems. The banner reminding about true-up follows the schedule [outlined here](https://docs.mattermost.com/about/self-hosted-subscriptions.html#quarterly-true-up-report). + - Screened self-hosted purchases now block the Admin from re-attempting a purchase for three days. + +#### Performance + - Reduced the rate that unreads are resynced when the window is focused from ten seconds to two minutes. + - The center channel is no longer shown as loading when switching teams. + - Added logging fixes: empty ``short_message`` for Gelf formatter is no longer allowed and ``params.Host`` is now used over ``params.IP`` for syslog config. + +### Bug Fixes + - Fixed an issue where the System Console link to purchase a self-hosted license would get stuck showing the in-product purchase progress modal. + - Fixed an issue where the true-up notification in the invite modal did not render the call-to-action correctly. + - Fixed new teams to use the updated translation for default channels after a configuration change. + - Fixed a layout issue in the System Console for smaller-sized tablets. + - Fixed an issue where a "plugin configured with a nil SecureConfig" warning was logged when starting each plugin. + - Fixed an issue where portal availability was checked when not on Enterprise edition. + - Fixed an issue where C# syntax highlighting was not working. + - Fixed an issue where incoming webhooks changed the user's activity while the user was offline/away. + - Fixed an issue where usernames were not clickable in the right-hand side. + +### API Changes + - Added an ``exclude_files_count`` parameter to exclude file counts from the channel stats API. + - Added a new API endpoint ``GET api/v4/posts/[POST_ID]/edit_history``. + - Added a new API endpoint ``DELETE /api/v4/cloud/delete-workspace``. + +### Database Changes + - Added the ``SentAt`` column to ``NotifyAdmin``. + - Updated ``NotifyAdmin.RequiredFeature`` column type to ``varchar(255)``. + - Updated ``NotifyAdmin.RequiredPlan`` column type to ``varchar(100)``. + +### Go Version + - v7.9 is built with Go ``v1.19.0``. + +### Open Source Components + - Added ``@mui/base``, ``@mui/material`` and ``@mui/styled-engine-sc``, and removed ``form-data`` from https://github.com/mattermost/mattermost-webapp/. + +### Known Issues + - Users are unexpectedly forced to enable JSON logging [MM-51453](https://mattermost.atlassian.net/browse/MM-51453). + - Checkmarks are missing from the left-hand side submenus [MM-51091](https://mattermost.atlassian.net/browse/MM-51091). + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + +### Contributors + - [11sma](https://translate.mattermost.com/user/11sma), [aashish0909](https://github.com/aashish0909), [AbhinavVihan](https://github.com/AbhinavVihan), [aeomin](https://github.com/aeomin), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [akaMrDC](https://github.com/akaMrDC), [alzee](https://github.com/alzee), [amyblais](https://github.com/amyblais), [andrleite](https://github.com/andrleite), [AntalaFilip](https://translate.mattermost.com/user/AntalaFilip), [anurag6713](https://github.com/anurag6713), [anx-ag](https://github.com/anx-ag), [aputsiak](https://translate.mattermost.com/user/aputsiak), [aputtu](https://github.com/aputtu), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [cedricstocke](https://github.com/cedricstocke), [CI-YU](https://github.com/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [ConorMacpherson](https://github.com/ConorMacpherson), [cpoile](https://github.com/cpoile), [creeper-0910](https://github.com/creeper-0910), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [d-wierdsma](https://github.com/d-wierdsma), [davidboto](https://github.com/davidboto), [david.mach@mdsystem.cz](https://translate.mattermost.com/user/david.mach@mdsystem.cz), [devinbinnie](https://github.com/devinbinnie), [doc-sheet](https://github.com/doc-sheet), [DummyThatMatters](https://github.com/DummyThatMatters), [Eleferen](https://translate.mattermost.com/user/Eleferen), [Elpunical](https://github.com/Elpunical), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [fmartingr](https://github.com/fmartingr), [FMP-Dev](https://github.com/FMP-Dev), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [gitstart](https://github.com/gitstart), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hattori611](https://translate.mattermost.com/user/hattori611), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [ichistmeinname](https://github.com/ichistmeinname), [icq4ever](https://github.com/icq4ever), [ifoukarakis](https://github.com/ifoukarakis), [iogungbade](https://github.com/iogungbade), [iot-defcon](https://github.com/iot-defcon), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [javaguirre](https://github.com/javaguirre), [jecepeda](https://github.com/jecepeda), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jordanafung](https://github.com/jordanafung), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kjh0523](https://github.com/kjh0523), [kayazeren](https://translate.mattermost.com/user/kayazeren), [KazminM](https://translate.mattermost.com/user/KazminM), [KBeDevel](https://translate.mattermost.com/user/KBeDevel), [koox00](https://github.com/koox00), [kostaspt](https://github.com/kostaspt), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [liz-segura98](https://github.com/liz-segura98), [m-ripper](https://github.com/m-ripper), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [marciohouse](https://github.com/marciohouse), [marciosantos](https://translate.mattermost.com/user/marciosantos), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mdsystem](https://github.com/mdsystem), [metanerd](https://github.com/metanerd), [mhd-sln](https://github.com/mhd-sln), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [microolapshare](https://github.com/microolapshare), [milotype](https://github.com/milotype), [mini-bomba](https://translate.mattermost.com/user/mini-bomba), [mirshahriar](https://github.com/mirshahriar), [MoatazMuhammad51](https://translate.mattermost.com/user/MoatazMuhammad51), [moussetc](https://github.com/moussetc), [munish7771](https://github.com/munish7771), [mvitale1989](https://github.com/mvitale1989), [mylonsuren](https://github.com/mylonsuren), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [nishit-prasad](https://github.com/nishit-prasad), [Nityanand13](https://github.com/Nityanand13), [nltb99](https://github.com/nltb99), [OGreSiv](https://translate.mattermost.com/user/OGreSiv), [oleksandr-kucheriavyi](https://github.com/oleksandr-kucheriavyi), [orsczech](https://translate.mattermost.com/user/orsczech), [OstapMelnychuk](https://github.com/OstapMelnychuk), [phoinixgrr](https://github.com/phoinixgrr), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [Rizumu85](https://github.com/Rizumu85), [Roy-Orbison](https://github.com/Roy-Orbison), [saturninoabril](https://github.com/saturninoabril), [satya-vinay](https://github.com/satya-vinay), [sbishel](https://github.com/sbishel), [Schleuse](https://github.com/Schleuse), [Sharuru](https://github.com/Sharuru), [shinnlok](https://github.com/shinnlok), [sinansonmez](https://github.com/sinansonmez), [Sjazz](https://github.com/Sjazz), [Sn-Kinos](https://translate.mattermost.com/user/Sn-Kinos), [Soldierplayz6867](https://github.com/Soldierplayz6867), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [stevemudie](https://github.com/stevemudie), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Sudhanva-Nadiger](https://github.com/Sudhanva-Nadiger), [tboulis](https://github.com/tboulis), [tiagodll](https://github.com/tiagodll), [toninis](https://github.com/toninis), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [Udval.O](https://translate.mattermost.com/user/Udval.O), [Van-cmyk](https://github.com/Van-cmyk), [varghesejose2020](https://github.com/varghesejose2020), [vhaarr](https://translate.mattermost.com/user/vhaarr), [Wainwright0830](https://github.com/Wainwright0830), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xiao](https://translate.mattermost.com/user/xiao), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [zclk](https://github.com/zclk) + +---- + +## Release v7.8 - [Extended Support Release](https://docs.mattermost.com/upgrade/release-definitions.html#extended-support-release-esr) + +- **7.8.12, released 2023-10-06** + - Mattermost v7.8.12 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.12 contains no database or functional changes. + - Prepackaged Calls plugin version upgraded [v0.13.1](https://github.com/mattermost/mattermost-plugin-calls/releases/tag/v0.13.1). +- **v7.8.11, released 2023-09-08** + - Mattermost v7.8.11 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.11 contains the following database changes: + - Improved performance on data retention ``DeleteOrphanedRows`` queries. See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for notes on a new migration that was added. Removed feature flag ``DataRetentionConcurrencyEnabled``. Data retention now runs without concurrency in order to avoid any performance degradation. Added a new configuration setting ``DataRetentionSettings.RetentionIdsBatchSize``, which allows admins to to configure how many batches of IDs will be fetched at a time when deleting orphaned reactions. The default value is 100. +- **v7.8.10, released 2023-09-01** + - Mattermost v7.8.10 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.10 contains no database or functional changes. + - Fixed an issue with missing time zone metadata in the Docker container. + - Replaced Gfycat with Giphy in the gif picker. +- **v7.8.9, released 2023-07-26** + - Mattermost v7.8.9 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.9 contains no database or functional changes. + - Prepackaged Focalboard plugin version 7.8.8. +- **v7.8.8, released 2023-07-07** + - Mattermost v7.8.8 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.8 contains no database or functional changes. + - Fixed an issue where posts were not fully sanitized for audit output when a link preview was included. + - Updated prepackaged Playbooks plugin version to 1.36.2. + - Fixed an issue where line breaks were introduced when pasting hyperlinks in the chat. + - New feature flag ``DataRetentionConcurrencyEnabled`` was added to enable/disable concurrency for data retention batch deletion. New config setting ``DataRetentionSettings.TimeBetweenBatchesMilliseconds`` was added to control the sleep time between batch deletions. +- **v7.8.7, released 2023-06-15** + - Mattermost v7.8.7 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Mattermost v7.8.7 contains no database or functional changes. + - Updated prepackaged Boards to v7.8.7. + - Fixed typo in the database migration scripts that broke idempotency. + - For servers wanting to allow websockets to connect from origins other than the origin of the site URL, please set the ``ServiceSettings.AllowCorsFrom`` [configuration setting](https://docs.mattermost.com/configure/integrations-configuration-settings.html#enable-cross-origin-requests-from). Also ensure that the ``siteURL`` is set correctly. +- **v7.8.6, released 2023-05-31** + - Fixed an issue where the total user count was fetched for every client connection. It is only necessary to fetch this once. + - Prepackaged version 1.3.0 of the Welcomebot plugin. +- **v7.8.5, released 2023-05-17** + - Mattermost v7.8.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where a user would still see threads in the threads view of channels they have left. Migration execution time in MySQL: Query OK, 2766769 rows affected (4 min 47.57 sec). Migration execution time in PostgreSQL: 58.11 sec, DELETE 2766690. + - Prepackaged version 1.2.1 of the Apps plugin. + - Prepackaged version 2.1.5 of the GitHub plugin. + - Updated the Docker Base Image from Debian to Ubuntu 22.04 LTS. + - Backported a fix related to Oauth 2. Query times depend on if you have rows to delete or not. Please see the [important upgrade notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) for more details. +- **v7.8.4, released 2023-04-27** + - Mattermost v7.8.4 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Limited channel search results to 50 to fix a performance issue. + - Fixed an issue where true-up review submissions always failed. +- **v7.8.3, released 2023-04-12** + - Mattermost v7.8.3 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Updated prepackaged Boards to v7.8.4. + - Updated prepackaged Playbooks to v1.36.1. + - Added additional values to the support packet. +- **v7.8.2, released 2023-03-17** + - Mattermost v7.8.2 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Added a ``exclude_files_count`` parameter to exclude file counts from channel stats API. + - Excluded the file count on channel stats API call on from channel header. + - Fixed an issue where the Shared Channels feature wasn't properly included in the Professional license. +- **v7.8.1, released 2023-03-01** + - Mattermost v7.8.1 contains a medium level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.8.0, released 2023-02-16** + - Original 7.8.0 release + +Mattermost v7.8.0 contains low to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + + - [Message Priority & Acknowledgement](https://docs.mattermost.com/configure/site-configuration-settings.html#message-priority) is now enabled by default for all instances. You may disable this feature in the System Console by going to **Posts > Message Priority** or via the config ``PostPriority`` setting. + +```{Important} +If you upgrade from a release earlier than v7.5, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Boards + - Added support for person, multi-person, and date property filters in Boards. + - Added support for person property groups in Boards. + - See [the docs](https://docs.mattermost.com/boards/groups-filter-sort.html#work-with-groups-filter-and-sort) for more details. + +### Improvements + +#### User Interface (UI) + - Pre-packaged Calls v0.13.0. + - Pre-packaged Playbooks v1.36.0. + - Insights and drafts are now included when navigating through channels in the channel sidebar using ALT+UP/DOWN arrow keyboard keys. + - Added an onboarding tour point for Global Drafts. + - Updated prepackaged version of Apps plugin to 1.2.0. + - Added group members count to the group autocomplete. + - Selecting a group mention now displays group details and membership. + - Improved the collapsed state of the message formatting toolbar. + - App Framework channel and user fields now support multi-select properties to allow users to select multiple values in a form. + - Increased the character count for desktop notifications on Windows to 120 from 50. + - Prioritized members of recently viewed direct or group messages when adding users to a channel. + - Added support for multiple users and channels to the ``/invite`` slash command. + +#### Administration + - Self-hosted admins can now purchase licenses in-app when service setting ``SelfHostedPurchase`` is true. + - Endpoint to portal added to detect whether a license is suitable for self-expansion. Customers over their seat limit can expand their license seats. + - Airgapped purchase experience is now shown only when appropriate and a simplified authentication flow is now used for the self-hosted purchase. + - The export file now contains the server version and a creation timestamp. + - Total Activated Users was changed back to Total Active Users on the **System Console > Reporting > Site Statistics** page. + - Added ``restore_group`` permission to the mmctl and to the **System Console > Permissions**. + - Improved bulk export logging. + - Compliance export jobs can now cancel the SQL query execution during server shutdown which will allow the job to exit faster. + - The message export compliance job can now survive server restarts. The job will pause and save state when the server is shutting down, and resume from the previously saved state when the server starts back up. + - Only one instance of the job will be automatically scheduled to run as per the ``MessageExportSettings.DailyRunTime`` config value. + - Mattermost will throw an error if it detects an Elasticsearch version greater than 7. + - The maximum size of uploaded emojis is reduced to 512KB to reduce image download bandwidth. + - Users can now monitor the progress of the bulk export job via its metadata field. It is available at ``mmctl export job show ``. + - Compliance exports no longer time out when uploading to S3. + - Users can now supply a certificate authority (CA) file and client certificates for the Elasticsearch client. + - Enabled ``EnableOAuthServiceProvider`` by default. + - Grafana metrics are now available for database connection metrics. They are: + - ``max_open_connections`` + - ``open_connections`` + - ``in_use_connections`` + - ``idle_connections`` + - ``wait_count_total`` + - ``wait_duration_seconds_total`` + - ``max_idle_closed_total`` + - ``max_idle_time_closed_total`` + - ``max_lifetime_closed_total`` + - Made the ``registerChannelIntroButtonAction`` plugin API usable by plugins other than Boards. + - The following new HTTP headers and values are now written on all responses. These default values should make sense in most installations and can be overridden by a reverse proxy or ingress configuration. Note that the empty ``Permissions-Policy`` header does not have any actual effect. Users are recommended to change it to a more restrictive value based on their use case. For more information, see the [W3C Reference](https://www.w3.org/TR/permissions-policy/) or [this article](https://developer.mozilla.org/en-US/docs/Web/HTTP/Permissions_Policy). + + ``` + Permissions-Policy: + Referrer-Policy: no-referrer + X-Content-Type-Options: nosniff + ``` + +### Bug Fixes + - Fixed an issue where if a self-hosted purchase was not available, an air-gapped modal was shown instead of going to the CWS purchase portal experience directly. + - Fixed small visual issues with self-hosted purchase modal. Adjusted wording for admins trying to purchase when a purchase is already in progress. + - Fixed an issue where attempting to create a team with a duplicate URL displayed the wrong error. + - Fixed an issue where the custom status modal did not close when navigating to the custom emoji page. + - Fixed an issue where selections within a code block were not properly copied to clipboard. + - Fixed an issue where threads with 0 replies would show in all threads. + - Fixed an issue with the styling of date pickers. + - Fixed an issue with fetching the latest user's profile picture in Insights. + - Fixed an issue where ``--center-channel-text`` CSS variable was used instead of ``--center-channel-color``. + - Fixed an issue where the screen reader timestamp announcement was too long. + - Fixed an issue where profile pictures, usernames, and full names did not update instantly in Insights. + - Fixed an issue where the metrics server restarted for every config change. + - Fixed the slash command description help text. + - Fixed an issue where selecting **Contact Sales** didn't pre-fill the reason for contacting sales. + - Fixed an issue where the screen readers did not announce the selected state of the sidebar submenu items. + - Fixed an issue where the metrics server was not prevented from starting while running export commands. + - Fixed an issue where long group mentions and user mentions didn't wrap properly. + - Fixed an issue with fetching first/last name for GitLab user using OpenID. + - Fixed an issue with the plugin ``/public`` handling for subpaths. + - Fixed an issue where selecting **Pinned** on a post in the Threads view would result in the right-hand side being stuck in a loading state. + - Fixed an issue where the profile popover did not dismiss when opening a modal through a shortcut. + - Fixed an issue where the **Run Deletion Job Now** button for Data Retention wasn’t disabled when all policies were set to **keep forever**. + - Fixed an issue that prevented the creation of the initial admin user for new servers. + - Fixed an issue where making a channel non-read-only required a refresh of the client to see the change. + - Fixed an issue where Top Channels for Insights didn't show results if the current user's configured timezone wasn't present in MySQL's ``mysql.time_zone_name table``. + - Fixed an issue where a white screen appeared when a guest was removed from the last channel while on Threads. + - Fixed an issue where a Direct Message thread did not get disabled when a user was deactivated. + - Fixed an issue where email notifications for Direct Messages from Playbooks contained broken URLs. + - Fixed an issue where bulk import crashed with invalid memory address or nil pointer dereference. + - Fixed an issue with special characters in the System Console log filename causing logging configuration to break. + - Fixed an issue where the PDF renderer was not rendering all the pages. + - Fixed a 404 error from requests to ``/api/v4/system/notices/`` on page load. + - Fixed an issue where file uploading appeared "stuck" in processing state. + - Fixed an issue where archived channels appeared as unread in the channel switcher. + +### API Changes + - Added new API endpoint ``GET /api/v4/posts/:post_id/info`` to allow checking if the post that a permalink is pointing to is accessible by joining teams or channels. + - Added validity checks for role related parameters in ``GET /users``. + +### Go Version + - v7.8 is built with Go ``v1.18.1``. + +### Known Issues + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in high availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in high availability mode. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [AbhinavVihan](https://github.com/AbhinavVihan), [adityash1](https://github.com/adityash1), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amayasova](https://github.com/amayasova), [amyblais](https://github.com/amyblais), [andrewbrown00](https://github.com/andrewbrown00), [andrleite](https://github.com/andrleite), [anurag6713](https://github.com/anurag6713), [anx-ag](https://github.com/anx-ag), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [avinashlng1080](https://github.com/avinashlng1080), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [bobf7](https://github.com/bobf7), [calebroseland](https://github.com/calebroseland), [cedricstocke](https://github.com/cedricstocke), [CI-YU](https://github.com/CI-YU), [coltoneshaw](https://github.com/coltoneshaw), [ConorMacpherson](https://github.com/ConorMacpherson), [core](https://translate.mattermost.com/user/core), [cpoile](https://github.com/cpoile), [creeper-0910](https://github.com/creeper-0910), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cybersmurf](https://github.com/cybersmurf), [d-wierdsma](https://github.com/d-wierdsma), [david.mach@mdsystem.cz](https://translate.mattermost.com/user/david.mach@mdsystem.cz), [devinbinnie](https://github.com/devinbinnie), [dfun90](https://github.com/dfun90), [dontoisme](https://github.com/dontoisme), [Eleferen](https://translate.mattermost.com/user/Eleferen), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [exbu](https://github.com/exbu), [florian-busch](https://github.com/florian-busch), [fmartingr](https://github.com/fmartingr), [fr0mdual](https://github.com/fr0mdual), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [geonmo](https://github.com/geonmo), [hamzaMM](https://github.com/hamzaMM), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [icq4ever](https://translate.mattermost.com/user/icq4ever), [ifoukarakis](https://github.com/ifoukarakis), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [ivenkwan](https://github.com/ivenkwan), [jasonblais](https://github.com/jasonblais), [javaguirre](https://github.com/javaguirre), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [KazminM](https://github.com/KazminM), [kevfocke](https://github.com/kevfocke), [koox00](https://github.com/koox00), [kostaspt](https://github.com/kostaspt), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [kwiersgalla](https://github.com/kwiersgalla), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [li11amy](https://github.com/li11amy), [lieut-data](https://github.com/lieut-data), [luc-ass](https://github.com/luc-ass), [lynn915](https://github.com/lynn915), [m-ripper](https://github.com/m-ripper), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [manojmalik20](https://github.com/manojmalik20), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mdsystem](https://github.com/mdsystem), [mhd-sln](https://github.com/mhd-sln), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mirshahriar](https://github.com/mirshahriar), [misaka10843](https://github.com/misaka10843), [mkraft](https://github.com/mkraft), [munish7771](https://github.com/munish7771), [mylonsuren](https://github.com/mylonsuren), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [Nityanand13](https://github.com/Nityanand13), [noxer](https://github.com/noxer), [NuriInfos_JSK](https://translate.mattermost.com/user/NuriInfos_JSK), [nydhy](https://github.com/nydhy), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [okias](https://github.com/okias), [oleksandr-kucheriavyi](https://github.com/oleksandr-kucheriavyi), [phuoc94](https://github.com/phuoc94), [pjenicot](https://github.com/pjenicot), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [rimakan](https://github.com/rimakan), [ronzim](https://github.com/ronzim), [Roy-Orbison](https://github.com/Roy-Orbison), [sadohert](https://github.com/sadohert), [safakkizkin](https://github.com/safakkizkin), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [SeoJoonsoo](https://github.com/SeoJoonsoo), [seoyeongeun](https://github.com/seoyeongeun), [Sharuru](https://github.com/Sharuru), [simcard0000](https://github.com/simcard0000), [sinansonmez](https://github.com/sinansonmez), [Sjazz](https://github.com/Sjazz), [sonichigo](https://github.com/sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [stevemudie](https://github.com/stevemudie), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [tboulis](https://github.com/tboulis), [tintou](https://github.com/tintou), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [wgshtg](https://github.com/wgshtg), [wiggin77](https://github.com/wiggin77), [witjem](https://github.com/witjem), [worldworm](https://github.com/worldworm), [wuwinson](https://github.com/wuwinson), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [zeraussiul](https://github.com/zeraussiul), [zygfryd](https://github.com/zygfryd) + +---- + +## Release v7.7 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **v7.7.4, released 2023-04-12** + - Mattermost v7.7.4 contains medium level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.7.3, released 2023-03-17** + - Mattermost v7.7.3 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.7.2, released 2023-03-01** + - Mattermost v7.7.2 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - [Message Priority & Acknowledgement](https://docs.mattermost.com/configure/site-configuration-settings.html#message-priority) is now enabled by default for all instances. You may disable this feature in the System Console by going to **Posts > Message Priority** or via the config ``PostPriority`` setting. + - Fixed an issue where threads were not marked as unread in the Threads view. + - Fixed an issue where the server sent a wrong badge number when marking a message as unread in a Direct Message channel. + - Fixed an issue where the Team edition returned a 400 Bad request for attempts to check CWS availability. + - Fixed an issue where file uploading would appear "stuck" in processing state. + - Fixed an issue where the Shared Channels feature wasn't properly included in the Professional license. +- **v7.7.1, released 2023-01-20** + - Fixed an issue that prevented the creation of the initial admin user for new servers [MM-49720](https://mattermost.atlassian.net/browse/MM-49720). + - Fixed an issue where the Top Channels for Insights didn't show results if the current user's configured timezone wasn't present in MySQL's ``mysql.time_zone_name table`` [MM-49688](https://mattermost.atlassian.net/browse/MM-49688). +- **v7.7.0, released 2023-01-16** + - Original 7.7.0 release + +Mattermost v7.7.0 contains low severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + + - Plugins with a webapp component may need to be updated to work with Mattermost v7.7 release and the updated ``React v17`` dependency. + - This is to avoid plugins crashing with an error about ``findDOMNode`` being called on an unmounted component. While our [starter template](https://github.com/mattermost/mattermost-plugin-starter-template) depended on an external version of ``React``, it did not do the same for ``ReactDOM``. Plugins need to update their ``webpack.config.js`` directives to externalize ``ReactDOM``. For reference, see https://github.com/mattermost/mattermost-plugin-playbooks/pull/1489. Server-side only plugins are unaffected. This change can be done for existing plugins any time prior to upgrading to Mattermost v7.7 and is backwards compatible with older versions of Mattermost. If you run into issues, you can either enable ``ExperimentalSettings.PatchPluginsReactDOM`` or just disable the affected plugin while it's updated. + - Denormalized ``Threads`` table by adding the ``ThreadTeamId`` column. See details for schema changes in the [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). + - Starting with the Calls version shipping with v7.7, there's now a minimum version requirement when using the external RTCD service. This means that if Calls is configured to use the external service, customers need to upgrade RTCD first to at least version 0.8.0 or the plugin will fail to start. + +```{Important} +If you upgrade from a release earlier than v7.5, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated the minimum version of MacOS to 11+. + +### Highlights + +#### Calls + - [Audio calling and screen sharing](https://docs.mattermost.com/configure/calls-deployment.html) in channels is now generally available to all Mattermost customers. + - Updated [the keyboard shortcut](https://docs.mattermost.com/channels/keyboard-shortcuts-for-channels.html#calls-shortcuts) to start and join calls. + - Please see [the docs](https://docs.mattermost.com/configure/plugins-configuration-settings.html#calls) for additional details on configuration setting updates. + +#### Boards + - Boards now supports [file attachments](https://docs.mattermost.com/boards/work-with-cards.html#attach-files), including PDFs, images, videos, and any other file types. + - Users can now [drag and drop boards and categories](https://docs.mattermost.com/boards/navigate-boards.html#manage-boards-on-the-sidebar) on the sidebar and organize them in any order they prefer. + - The [template picker](https://docs.mattermost.com/boards/work-with-boards.html#choose-a-board-template) has been improved to make it easier for users to find the best template for their project. + +#### Playbooks + - Added an option to [run playbooks](https://docs.mattermost.com/playbooks/work-with-playbooks.html#runs-and-channel-behavior) without creating a new channel every time in order to reduce the unnecessary overhead. + - In addition to the daily digest, users can now also view [a task inbox](https://docs.mattermost.com/playbooks/work-with-tasks.html#task-inbox) from the global header bar while in Playbooks. + +#### Message Priority and Acknowledgments + - Added [message priority labels](https://docs.mattermost.com/channels/message-priority.html) to the Threads view. + - Added support for users to request acknowledgements on posts and to acknowledge posts (Professional license). + +#### Global Drafts + - Added [a centralized Drafts view](https://docs.mattermost.com/channels/send-messages.html#draft-messages) for draft messages. + +#### ServiceNow Integration + - ServiceNow customers can now access and share their ServiceNow data from within Mattermost. + +#### ServiceNow Virtual Agent Integration + - The [Mattermost ServiceNow Virtual Agent Integration](https://mattermost-2.wistia.com/medias/ixvgukv2qf) makes it easy for employees and customers to resolve issues fast. + +#### GitLab Playbooks Integration + - Through the updated [GitLab integration and playbook task actions](https://mattermost.com/marketplace/gitlab-plugin/), teams can automate release management processes to help increase efficiency and reduce errors. + +### Improvements + +#### User Interface (UI) + - Implemented progressive image loading in the webapp. + - When the "Custom Brand Text" is left blank with custom branding enabled, the default text is now hidden. + - The **Mark as Unread** option was added to the **More** (...) menu for channels in the left-hand side sidebar. Pressing Alt while selecting a channel on the left-hand side now also marks the last post in the channel as unread. + - Channel members are now able to remove themselves from a channel via the right-hand side channel members list. + - Removed video check to allow the browser to decide what video types it can play. + - Added a tooltip to the right-hand side files filter icon. + - The number of users that can be added to a user group at once was increased to 256. + - Keyboard and focus handling was improved in profile popovers and @mentions. + - Updated prepackaged version of plugins affected by React 17 upgrade. + - Updated the **Remove license and download** text in-product to clarify that server will be downgraded to Mattermost Free as a result. + - Updated prepackaged NPS version to 1.3.1. + - Updated in-product confirmation modal for ``@here`` mentions to clarify that people & timezone counts don't include the current user. + - Downgraded French language support to Beta. + +#### Administration + - If an Admin encounters an invitation error “SMTP is not configured in System Console", a link to the SMTP configuration within the **System Console** is now included in the error message. + - Crashing jobs now sets the job status to "failed". + - Optimized ``ThreadStore.MarkAllAsUnreadByTeam``. + - SQL migrations for PostgreSQL will now filter by the current schema name when checking for information from the ``information_schema.columns`` view. This does not affect anything because usually there's only one installation in a given database, but this gives flexibility to users to store multiple Mattermost instances under a single database. + - **My Insights** was added to the Free plan. + - Team scheme APIs are now allowed to be administered with a Professional plan. + - A global banner as well as a notice banner are displayed to admins on the **Invite** modal and on **System Console > Site Statistics > Total Activated Users** page when the workspace exceeds the maximum number of users allowed. If the number of actual users exceeds the number of paid users by less than 5%, the banner is dismissible. If the number of actual users exceeds the number of paid users by more than 10%, the banner is non-dismissible until the license seat count has been updated. + - For admins to see if the amount of users exceeds the license seats, a warning is now shown in the **System Console > Team Statistics** page. + - Added a new menu item on the **System Console > Users** page that re-adds users to all of their default teams and channels associated with the groups they're a member of. + - Added ``acknowledgements`` field to the post's metadata. + - Added support for product websocket messages on high availability instances. + - The import job now logs the progress of the import. + - Exports to S3 no longer time out. + - Shared Channels (Experimental) was moved to Professional license. + +### Bug Fixes + - Fixed an issue where custom group actions were appearing in the user interface even when the user didn't have the permissions for them. + - Fixed issues with branding in email notifications. + - Fixed an issue where text could be dragged and dropped into input-fields. + - Fixed an issue where the profile popover failed to dismiss when selecting one of the options from the popover. + - Fixed an issue where imports containing the team name with the wrong capitalization crashed the import job. + - Fixed an issue where ``getPostSince`` didn't properly return deleted posts when Collapsed Reply Threads was enabled. + - Fixed an issue where the screen reader did not announce emojis from the autocomplete list. + - Fixed an issue where the scroll position in a channel was not maintained when opening reply message permalinks. + - Fixed an issue where ``OwnerId`` was not set for bots created via ``EnsureBotUser``. + - Fixed an issue where exports did not contain favorited Direct Message channels. + - Fixed an issue where screen readers did not announce search results on the **Invite members to channel** modal. + - Fixed an issue where screen readers did not announce the status of the user when hovering over the user status icon. + - Fixed an issue where users with narrow screens could not see the **Profile Settings** section within the **Settings** modal. + - Fixed an issue where users were unable to access the **Create an account** option on narrow screens. + - Fixed an issue where users on desktop were unable to grab the vertical scroll bar without accidently resizing the window. + - Fixed an issue where special characters weren't allowed in group mention names. + - Fixed an issue where screen readers didn't read the **Switch Channels** modal header. + - Fixed an issue in OAuth services where malformed redirect URLs were generated if the registered callback URLs already had static query parameters. + - Fixed an issue where suggestion dividers were displayed as undefined. + - Fixed an issue where a blank message was displayed in threads if the leave/join messages were disabled. + - Fixed an issue where threads would appear duplicated in the Threads view after leaving a channel. + - Fixed an issue with email search when using a PostgreSQL database. + - Fixed an issue where message drafts were not saved after pasting them into the post textbox. + - Fixed an issue where the team name in the channel sidebar header was not accessible. + - Fixed an issue where users were unable to open the user's profile popover from the channel members list in the right panel. + - Fixed an issue where the OAuth 2.0 deprecation notice was still displayed in the system console. + - Fixed an issue where clicking on a reply post time stamp in the global threads inbox opened two right-hand side panels. + - Fixed an issue where batch notifications failed while rendering. + - Prevented browsers and CDNs from caching remote entrypoint files. + - Fixed an issue where the unreads button in the channel sidebar was missing alternative text for screen readers. + - Fixed a potential read-after-write issue when uploading data through the resumable uploads API. + - Removed duplicate text in the self-hosted pricing modal. + - Fixed the position of the Boards icon in the Apps Bar when Boards is running without a plugin. + - Fixed ability to create a board when Boards is running without a plugin. + - Fixed Boards tour tips not appearing when Boards is running without a plugin. + - Fixed an issue where a confusing System Console banner was displayed when a license was set to expire. + - Fixed an issue where screen readers did not announce selected state of the sidebar submenu items. + - Fixed an issue where servers with an encrypted key did not throw an error during startup. + - Fixed an issue where the **Test Connection** button in **System Console > Environment > Elasticsearch** did not correctly take the right config settings specified in the page. Earlier, it would always take the previously saved config. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``ServiceSettings`` in the ``config.json``: + - ``PostPriority``, to add an option to select a message priority label for root posts. + - ``AllowSyncedDrafts``, to add an option to display a centralized page for draft messages. + - ``SelfHostedPurchase``, to add an option for self-hosted admins to purchase licenses in-app. + - Under ``ExperimentalSettings`` in the ``config.json``: + - ``PatchPluginsReactDOM``, to enable the patching of the React DOM library when loading web app plugins so that the plugin uses the version matching the web app. + +### API Changes + - The resumable uploads API was exposed to plugins. + - Added a new API endpoint ``POST /api/v4/ldap/users/:user_id/group_sync_memberships`` to add (or re-add) users to all of their default teams and channels for all of the groups they're a member of. + - Added two new URL parameters to the ``GET /api/v4/groups`` endpoint to get the ``ChannelMemberCount`` for a group. + - Added new API endpoints ``POST /api/v4/users/:user_id/posts/:post_id/ack`` and ``DELETE /api/v4/users/:user_id/posts/:post_id/ack``. + - Added a new API endpoint ``POST /api/v4/groups/:group_id:/restore``. + - Added an allowed value ``sort=display_name`` to ``GET /api/v4/users?in_group=``. + - Added a new endpoint ``api/v4/cloud/products/selfhosted``. + - A new API method ``RegisterCollectionAndTopic(collectionType, topicType string) (error)`` was added to the Plugin API and the following hooks. This API method is in beta, subject to change, and not covered by our backwards compatibility guarantee. + - ``UserHasPermissionToCollection(c *Context, userID, collectionType, collectionId string, permission *model.Permission) (bool, error)`` + - ``GetAllCollectionIDsForUser(c *Context, userID, collectionType string) ([]string, error)`` + - ``GetAllUserIdsForCollection(c *Context, collectionType, collectionID string) ([]string, error)`` + - ``GetTopicRedirect(c *Context, topicType, topicID string) (string, error)`` + - ``GetCollectionMetadataByIds(c *Context, collectionType string, collectionIds []string) (map[string]model.CollectionMetadata, error)`` + - ``GetTopicMetadataByIds(c *Context, topicType string, topicIds []string) (map[string]*model.TopicMetadata, error)`` + +### Database Changes + - Added a new Database table ``PostAcknowledgements``. + +### Websocket Event Changes + - Added new websocket events ``post_acknowledgement_added`` and ``post_acknowledgement_removed``. + +### Go Version + - v7.7 is built with Go ``v1.18.1``. + +### Known Issues + - Your profile image moves up when changing your status manually [MM-49159](https://mattermost.atlassian.net/browse/MM-49159). + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in high availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in high availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - Boards linked to a channel you're a member of do not automatically appear on your sidebar unless you're an explicit member of the board. As a workaround, you can access the board from the channel RHS or by searching for the board via the board switcher (Ctrl/Cmd+K). Alternatively, you can ask the board admin to add you to the board as an explicit member. See the [issue-focalboard-4179](https://github.com/mattermost/focalboard/issues/4179) for more details. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + - If a user is not a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels or remove those channels from the run configuration. + +### Contributors + - [abhijit-singh](https://github.com/abhijit-singh), [AbhinavVihan](https://github.com/AbhinavVihan), [adithyaakrishna](https://github.com/adithyaakrishna), [aeomin](https://github.com/aeomin), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [aiden](https://translate.mattermost.com/user/aiden), [alauregaillard](https://github.com/alauregaillard), [alexkuryshko](https://github.com/alexkuryshko), [alexpjohnson](https://github.com/alexpjohnson), [alzee](https://github.com/alzee), [Amin913](https://github.com/Amin913), [amitpatelx3](https://github.com/amitpatelx3), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [andrewbrown00](https://github.com/andrewbrown00), [andrewwutw](https://github.com/andrewwutw), [anurag6713](https://github.com/anurag6713), [ariyonaty](https://github.com/ariyonaty), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [avas27JTG](https://github.com/avas27JTG), [avinashlng1080](https://github.com/avinashlng1080), [axilleas](https://github.com/axilleas), [ayrotideysarkar](https://github.com/ayrotideysarkar), [ayusht2810](https://github.com/ayusht2810), [azigler](https://github.com/azigler), [babinderrathi](https://github.com/babinderrathi), [ballista01](https://github.com/ballista01), [batebobo](https://github.com/batebobo), [belope](https://github.com/belope), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [bpodwinski](https://github.com/bpodwinski), [calebroseland](https://github.com/calebroseland), [cecilysullivan](https://github.com/cecilysullivan), [ChandanChainani](https://github.com/ChandanChainani), [chay](https://translate.mattermost.com/user/chay), [CI-YU](https://github.com/CI-YU), [cinlloc](https://github.com/cinlloc), [coltoneshaw](https://github.com/coltoneshaw), [ConorMacpherson](https://github.com/ConorMacpherson), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [cs4p](https://github.com/cs4p), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyrilzhang-mm](https://github.com/cyrilzhang-mm), [d-wierdsma](https://github.com/d-wierdsma), [developbit](https://github.com/developbit), [devinbinnie](https://github.com/devinbinnie), [dfun90](https://translate.mattermost.com/user/dfun90), [Drishti-jain21](https://github.com/Drishti-jain21), [DSchalla](https://github.com/DSchalla), [dsharma522](https://github.com/dsharma522), [dylanrichards](https://github.com/dylanrichards), [ehsandiary](https://github.com/ehsandiary), [Eleferen](https://translate.mattermost.com/user/Eleferen), [ellisonleao](https://github.com/ellisonleao), [emmyni](https://github.com/emmyni), [enahum](https://github.com/enahum), [EricssonLiu](https://github.com/EricssonLiu), [esethna](https://github.com/esethna), [Eugene-grb](https://github.com/Eugene-grb), [Fjoerfoks](https://github.com/Fjoerfoks), [fmartingr](https://github.com/fmartingr), [furqanmlk](https://github.com/furqanmlk), [gabor-boros](https://github.com/gabor-boros), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [Genei180](https://github.com/Genei180), [Gitnube](https://github.com/Gitnube), [gkech](https://github.com/gkech), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [henry-shxu](https://github.com/henry-shxu), [hereje](https://github.com/hereje), [hionay](https://github.com/hionay), [hmhealey](https://github.com/hmhealey), [hokandil](https://github.com/hokandil), [homerCOD](https://github.com/homerCOD), [Hunter-Thompson](https://github.com/Hunter-Thompson), [idChef](https://github.com/idChef), [ifoukarakis](https://github.com/ifoukarakis), [Inutit](https://translate.mattermost.com/user/Inutit), [iomodo](https://github.com/iomodo), [irdiOL](https://github.com/irdiOL), [isacikgoz](https://github.com/isacikgoz), [ivenkwan](https://translate.mattermost.com/user/ivenkwan), [iyampaul](https://github.com/iyampaul), [JakobMiksch](https://github.com/JakobMiksch), [javaguirre](https://github.com/javaguirre), [jecepeda](https://github.com/jecepeda), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johnsonbrothers](https://github.com/johnsonbrothers), [jordanafung](https://github.com/jordanafung), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [k4awon](https://github.com/k4awon), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kamre](https://github.com/kamre), [Kaorw](https://github.com/Kaorw), [kelderek](https://github.com/kelderek), [koox00](https://github.com/koox00), [kostaspt](https://github.com/kostaspt), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [ksankeerth](https://github.com/ksankeerth), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [ludovicobesana](https://github.com/ludovicobesana), [lynn915](https://github.com/lynn915), [m-ripper](https://github.com/m-ripper), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [maddy8381](https://github.com/maddy8381), [majo](https://translate.mattermost.com/user/majo), [manhdd610](https://translate.mattermost.com/user/manhdd610), [Manishpandey11](https://github.com/Manishpandey11), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://translate.mattermost.com/user/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [mastersb](https://github.com/mastersb), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mattlam88](https://github.com/mattlam88), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [mhd-sln](https://github.com/mhd-sln), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [michkrej](https://github.com/michkrej), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mirshahriar](https://github.com/mirshahriar), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [muratbayan](https://github.com/muratbayan), [mvitale1989](https://github.com/mvitale1989), [mylonsuren](https://github.com/mylonsuren), [nab-77](https://github.com/nab-77), [naggie](https://github.com/naggie), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [noxer](https://github.com/noxer), [NuriInfos_JSK](https://translate.mattermost.com/user/NuriInfos_JSK), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [PhilippeWeidmann](https://translate.mattermost.com/user/PhilippeWeidmann), [phoinixgrr](https://github.com/phoinixgrr), [Pinjasaur](https://github.com/Pinjasaur), [pjenicot](https://github.com/pjenicot), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [prashant-15](https://github.com/prashant-15), [PSyton](https://github.com/PSyton), [pvev](https://github.com/pvev), [raghavaggarwal2308](https://github.com/raghavaggarwal2308), [Rajat-Dabade](https://github.com/Rajat-Dabade), [redhoyasa](https://github.com/redhoyasa), [remyj38](https://translate.mattermost.com/user/remyj38), [RoyI99](https://github.com/RoyI99), [s4kh](https://github.com/s4kh),[sadohert](https://github.com/sadohert), [sarz4fun](https://translate.mattermost.com/user/sarz4fun), [saturninoabril](https://github.com/saturninoabril), [satya-vinay](https://github.com/satya-vinay), [sbishel](https://github.com/sbishel), [seowglen](https://github.com/seowglen), [seoyeongeun](https://github.com/seoyeongeun), [sgmadankar](https://translate.mattermost.com/user/sgmadankar), [ShajithaMohammed](https://github.com/ShajithaMohammed), [simcard0000](https://github.com/simcard0000), [sinansonmez](https://github.com/sinansonmez), [sk409](https://github.com/sk409), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sumanpaikdev](https://github.com/sumanpaikdev), [svbnbyrk](https://github.com/svbnbyrk), [tanmay-des](https://github.com/tanmay-des), [tboulis](https://github.com/tboulis), [tiagocorreiaalmeida](https://github.com/tiagocorreiaalmeida), [toomore](https://github.com/toomore), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [varunKT001](https://github.com/varunKT001), [VictorAssunc](https://github.com/VictorAssunc), [vish9812](https://github.com/vish9812), [vitorcruzfaculdade](https://github.com/vitorcruzfaculdade), [vivekkj123](https://github.com/vivekkj123), [wget](https://translate.mattermost.com/user/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [WilliamLongKing](https://github.com/WilliamLongKing), [Willyfrog](https://github.com/Willyfrog), [witjem](https://github.com/witjem), [wuwinson](https://github.com/wuwinson), [Yakikim](https://github.com/Yakikim), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [yegorov-p](https://github.com/yegorov-p), [zefhemel](https://github.com/zefhemel), [ziriuz84](https://github.com/ziriuz84), [zuhairHussain](https://github.com/zuhairHussain), [ZurabBalamtsarashvili](https://github.com/ZurabBalamtsarashvili) + +---- + +## Release v7.6 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + + - The Mattermost v7.6 release has been cancelled as we are working on investigating performance issues. The next scheduled release is v7.7 in January 16th, 2023. + +## Release v7.5 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **v7.5.2, released 2022-12-21** + - Mattermost v7.5.2 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where email notifications looked broken when email batching was enabled [MM-48521](https://mattermost.atlassian.net/browse/MM-48521). + - Updated prepackaged Boards version to 7.5.4. + - Updated prepackaged NPS version to 1.3.1. +- **v7.5.1, released 2022-11-16** + - Fixed an upgrade issue affecting servers on Ubuntu v18.04. +- **v7.5.0, released 2022-11-16** + - Original 7.5.0 release + +Mattermost v7.5.0 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + + - Adds a new schema migration to ensure ``ParentId`` column is dropped from the ``Posts`` table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration. + - For ``PluginRegistry.registerCustomRoute``, when you register a custom route component, you must specify a CSS ``grid-area`` in order for it to be placed properly into the root layout (recommended: ``grid-area: center``). + +```{Important} +If you upgrade from a release earlier than v7.4, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Compatibility + - Updated the minimum version of Chrome and Edge to v106+. + +### Highlights + +#### Calls + - Added new message threads with emoji reactions and @mentions to calls. After joining a call, expand the widget to the window mode, and then select the comment button to access the real-time message thread in the right-hand sidebar. + +#### Boards + - Added additional standard [board templates](https://docs.mattermost.com/boards/work-with-boards.html#choose-a-board-template) to help users kick-off their next projects. + - Filters now support all [text properties](https://docs.mattermost.com/boards/work-with-cards.html#work-with-property-types). + - Added two new tiles for System Console [Boards metrics](https://docs.mattermost.com/configure/reporting-configuration-settings.html#site-statistics) under **System Console > Site Statistics**. + +#### Last active status + - Added a [“Last active” status](https://docs.mattermost.com/channels/channels-settings.html#share-last-active-time) to the profile popover and to the **Direct Message** channel header that indicates when a user was last online. This status only displays for users who are Away, Offline, or in do-not-disturb (DND). This can be disabled via **Settings > Display > Share last active time**. + +### Improvements + +#### User Interface (UI) + - Renamed "Starter" plan to "Free" plan in product. + - Added a new grid-based layout to the right-hand side and globalized the right-hand side and the Apps Bar. + - A confirmation modal is now displayed before a user marks all threads as read. + - Added the ability to hide the “required” asterisk in the App Field. + - Added a fading effect to the Apps Modal body while an Apps Modal is refreshing. + - Insights now filters out posts made by plugins and OAuth apps. + - Added a shortcut ``Ctrl/Cmd + Shift + U`` to filter channels by unread. + - The default number of **Direct Message** channels shown in the sidebar is now 40. + - Added Insights to the channel switcher. + - Added a button to easily copy the content of text or code files in file previews. + - The team unread icon for muted channels is now hidden in the sidebar. + - Added the ability to create a new channel along with a new board associated with the created channel. + - Added markdown formatting for hyperlinks when pasted into the text editor. + - Email notifications from new messages now also support displaying Slack attachments from the channel post. + - Updated NPS plugin to version 1.3.0. + - Downgraded Bulgarian, Persian, and Simplified Chinese language support to Alpha. + +#### Administration + - After 90 days since missing a payment, admins will see a modal where they can choose between updating the billing status or staying on the Free subscription. + - Autocomplete results using Elasticsearch or Bleve will correctly show a user as a channel member in direct message and group message channels. To force this change to appear, a re-indexing will be necessary. + - Introduced an **Invite Guests** prompt to self-hosted. + - Added JSON-compatible nested configuration value parsing from environment variables. + - An AD/LDAP prompt banner is now shown for self-hosted instances with a Professional license when visiting the invite guests modal. + - Self-hosted Admins now see "User Groups" in the product switcher with a call to action (CTA) to start a trial. + - Added logic to package product version of Boards with production builds. + +### Bug Fixes + - Fixed an issue where Enterprise features labeled as "Professional Feature" appeared in the **System Console** sidebar. + - Fixed an issue where the transparency for PNG images in image previews and thumbnails was not preserved. + - Fixed an issue where screen readers failed to announce “No results found” in the direct message modal. + - Fixed an issue where minipreview data was not generated nor stored for images imported from Slack. + - Fixed the error message that appears on the **Reset Password** page when inputting a password with fewer than five characters. + - Fixed an issue where ``Get categories`` with the "exclude" option did not return categories for deleted teams a user was no longer a member of. + - Fixed an issue where a randomly-generated default message-ID wasn't added for every outgoing email. + - Fixed an issue where custom groups could be created with @mention names that are reserved words (@channel, @here, @all). + - Fixed an issue where 404 errors were shown when APIv4 had an incorrect content-type header. + - Fixed an issue where messages from bots and webhooks could not be forwarded. + - Fixed an issue where inline images did not appear in the channel header. + - Fixed an issue with the emoji skin tone selector animation. + - Fixed an issue where the screen reader did not announce a successful login when logging in. + - Fixed a few broken links at **System Console > User Management > Permission Schemes**. + - Fixed an issue where users were able to forward messages to users who are deactivated. + - Fixed an issue where "Threads" were not shown in the unread filter view even if there weren't unread threads. + - Fixed an issue where the user’s full name was not shown when adding people to a channel via the ``Add people`` modal. + - Fixed an issue where formatting keyboard shortcuts were conflicting with existing shortcuts. + - Fixed an issue where the markdown style for horizontal rules was too thick. + - Fixed an issue where the emoji reaction overlay blocked part of the message it belonged to in compact view. + - Fixed an issue with incorrect mention counts in unread channels. + - Fixed an issue where the cursor displayed as a pointer instead of as an arrow in embedded YouTube preview images. + - Fixed an issue where formatting was applied to selected spaces after a word. + - Fixed an issue where screen readers did not announce that the channel interface language dropdown in **Settings > Display > Language > Change** is a dropdown. + - Fixed a bug where role filters weren't being applied for ``GetProfilesInChannel``. + - Fixed an issue where the guest onboarding checklist contained an “Invite team members” link as a tour point. + - Fixed an issue where the **Enterprise license is expired** banner was non-dismissible. + - Fixed an issue where the **Renew Now** option was not showing in-product and always defaulted to Contact Sales. + - Fixed an issue where ``getPostSince`` didn't properly return deleted posts when Collapsed Reply Threads was enabled. + - Fixed an issue where ``OwnerId`` was not set for bots created via ``EnsureBotUser``. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``TeamSettings`` in the ``config.json``: + - Added ``EnableLastActiveTime`` to add a **Last active** status to the profile popover and to the **Direct Message** channel header that indicates when a user was last online. + +### API Changes + - Added a new response-header ``First-Inaccessible-File-Time`` to the APIs fetching single file information. + - Added a new query parameter to include deleted posts as long as it's requested by a system admin in ``/api/v4/channels/{channel_id}/posts``. + - Added new plugin endpoints to ``PermissionService`` interface. + +### Go Version + - v7.5 is built with Go ``v1.18.1``. + +### Known Issues + - Guest users are unable to return to the login screen after being removed from all channels [MM-48438](https://mattermost.atlassian.net/browse/MM-48438). + - Users are unable to open threads from recent mentions when switching to another team [MM-48399](https://mattermost.atlassian.net/browse/MM-48399). + - When the right-hand side is expanded, an overlay is displayed with the Threads help text popup [MM-48412](https://mattermost.atlassian.net/browse/MM-48412). + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in high availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in high availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - Boards linked to a channel you're a member of do not automatically appear on your sidebar unless you're an explicit member of the board. As a workaround, you can access the board from the channel RHS or by searching for the board via the board switcher (Ctrl/Cmd+K). Alternatively, you can ask the board admin to add you to the board as an explicit member. See the [issue-focalboard-4179](https://github.com/mattermost/focalboard/issues/4179) for more details. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [f2010126](https://translate.mattermost.com/user/f2010126/), [AbhinavVihan](https://github.com/AbhinavVihan), [adithyaakrishna](https://github.com/adithyaakrishna), [Aditya-Kapadiya](https://github.com/Aditya-Kapadiya), [adj2908](https://github.com/adj2908), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [akhil-ghatiki](https://github.com/akhil-ghatiki), [alannatodd](https://github.com/alannatodd), [alauregaillard](https://github.com/alauregaillard), [alexkuryshko](https://translate.mattermost.com/user/alexkuryshko/), [alexpjohnson](https://github.com/alexpjohnson), [alzee](https://github.com/alzee), [amogh2019](https://github.com/amogh2019), [amyblais](https://github.com/amyblais), [andrewwutw](https://translate.mattermost.com/user/andrewwutw/), [angeloskyratzakos](https://github.com/angeloskyratzakos), [aniketh-varma](https://github.com/aniketh-varma), [AntiGhot](https://github.com/AntiGhot), [anwarchk](https://github.com/anwarchk), [anx-ag](https://github.com/anx-ag), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [atlekbai](https://github.com/atlekbai), [ayrotideysarkar](https://github.com/ayrotideysarkar), [Azanul](https://github.com/Azanul), [azigler](https://github.com/azigler), [babinderrathi](https://github.com/babinderrathi), [batebobo](https://github.com/batebobo), [BediNimret](https://github.com/BediNimret), [BenCookie95](https://github.com/BenCookie95), [bpodwinski](https://translate.mattermost.com/user/bpodwinski/), [calebroseland](https://github.com/calebroseland), [cannalee90](https://github.com/cannalee90), [cecilysullivan](https://github.com/cecilysullivan), [chirag-ghosh](https://github.com/chirag-ghosh), [cinlloc](https://github.com/cinlloc), [codewithshariq](https://github.com/codewithshariq), [Conor0Callaghan](https://github.com/Conor0Callaghan), [ConorMacpherson](https://github.com/ConorMacpherson), [core](https://translate.mattermost.com/user/core/), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyberbuff](https://github.com/cyberbuff), [cyrilzhang-mm](https://github.com/cyrilzhang-mm), [d-wierdsma](https://github.com/d-wierdsma), [daniloff200](https://github.com/daniloff200), [den13501](https://github.com/den13501), [devinbinnie](https://github.com/devinbinnie), [devXprite](https://github.com/devXprite), [dibash](https://translate.mattermost.com/user/dibash/), [dibashthapa](https://github.com/dibashthapa), [Drishti-jain21](https://github.com/Drishti-jain21), [dsharma522](https://github.com/dsharma522), [Eleferen](https://translate.mattermost.com/user/Eleferen/), [emmyni](https://github.com/emmyni), [enahum](https://github.com/enahum), [enderahmetyurt](https://github.com/enderahmetyurt), [eraykisabacak](https://github.com/eraykisabacak), [erezo9](https://github.com/erezo9), [EricssonLiu](https://github.com/EricssonLiu), [ermanimer](https://github.com/ermanimer), [esethna](https://github.com/esethna), [EshaanAgg](https://github.com/EshaanAgg), [f2010126](https://github.com/f2010126), [Fanch](https://translate.mattermost.com/user/Fanch/), [Fjoerfoks](https://github.com/Fjoerfoks), [fmartingr](https://github.com/fmartingr), [francisco-core](https://github.com/francisco-core), [furqanmlk](https://github.com/furqanmlk), [gabor-boros](https://github.com/gabor-boros), [gabrieljackson](https://github.com/gabrieljackson), [gaston-flores](https://github.com/gaston-flores), [gbochora](https://github.com/gbochora), [gvlx](https://translate.mattermost.com/user/gvlx/), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hawkril](https://github.com/hawkril), [henry-shxu](https://github.com/henry-shxu), [hereje](https://github.com/hereje), [hmhealey](https://github.com/hmhealey), [hmmmmmmm](https://github.com/hmmmmmmm), [hokandil](https://github.com/hokandil), [homerCOD](https://github.com/homerCOD), [ifoukarakis](https://github.com/ifoukarakis), [iogungbade](https://github.com/iogungbade), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [javaguirre](https://github.com/javaguirre), [jeromegrosse](https://github.com/jeromegrosse), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jordanafung](https://github.com/jordanafung), [joremysh](https://github.com/joremysh), [josephjosedev](https://github.com/josephjosedev), [josevcsouza](https://translate.mattermost.com/user/josevcsouza/), [joshalling](https://github.com/joshalling), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [kscheel](https://github.com/kscheel), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [KuSh](https://github.com/KuSh), [kVarunkk](https://github.com/kVarunkk), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [ludovicobesana](https://translate.mattermost.com/user/ludovicobesana/), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo/), +[master7/](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-src](https://github.com/matthew-src), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [matthewbirtch](https://github.com/matthewbirtch), [mgdelacroix](https://github.com/mgdelacroix), [mhd-sln](https://github.com/mhd-sln), [michelengelen](https://github.com/michelengelen), [michizhou](https://github.com/michizhou), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [misantron](https://github.com/misantron), [mukul-kr](https://github.com/mukul-kr), [munish7771](https://github.com/munish7771), [nab-77](https://github.com/nab-77), [nayane95](https://github.com/nayane95), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [noxer](https://github.com/noxer), [oetiker](https://github.com/oetiker), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [patatman](https://github.com/patatman), [phoinixgrr](https://github.com/phoinixgrr), [Phrynobatrachus](https://github.com/Phrynobatrachus), [pikami](https://github.com/pikami), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [pvev](https://github.com/pvev), [rafaelrubbioli](https://github.com/rafaelrubbioli), [Rajat-Dabade](https://github.com/Rajat-Dabade), [RobBie1221](https://github.com/RobBie1221), [rolwin100](https://github.com/rolwin100), [RoyI99](https://github.com/RoyI99), [s4kh](https://github.com/s4kh), [saturninoabril](https://github.com/saturninoabril), [satya-vinay](https://github.com/satya-vinay), [sbishel](https://github.com/sbishel), [seanohue](https://github.com/seanohue), [seoyeongeun](https://translate.mattermost.com/user/seoyeongeun/), [shawnaym](https://github.com/shawnaym), [shikhar13012001](https://github.com/shikhar13012001), [simcard0000](https://github.com/simcard0000), [sinansonmez](https://github.com/sinansonmez), [sk409](https://github.com/sk409), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [tboulis](https://github.com/tboulis), [thenishantsapkota](https://github.com/thenishantsapkota), [tilto0822](https://github.com/tilto0822), [TomerPacific](https://github.com/TomerPacific), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [uravgkarthik](https://github.com/uravgkarthik), [varghesejose2020](https://github.com/varghesejose2020), [varunKT001](https://github.com/varunKT001), [vish9812](https://github.com/vish9812), [VishakhaPoonia](https://github.com/VishakhaPoonia), [vitorcruzfaculdade](https://github.com/vitorcruzfaculdade), [vivekkj123](https://github.com/vivekkj123), [Wetula](https://github.com/Wetula), [WhiteHsu](https://github.com/WhiteHsu), [wiggin77](https://github.com/wiggin77), [WilliamLongKing](https://github.com/WilliamLongKing), [Willyfrog](https://translate.mattermost.com/user/Willyfrog/), [wralith](https://github.com/wralith), [yakuter](https://github.com/yakuter), [Yordaniss](https://translate.mattermost.com/user/Yordaniss/), [zafar-hussain](https://github.com/zafar-hussain), [zefhemel](https://github.com/zefhemel) + +---- + +## Release v7.4 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **v7.4.1, released 2022-12-21** + - Mattermost v7.4.1 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Added a new schema migration to ensure ``ParentId`` column is dropped from the ``Posts`` table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration. + - Updated prepackaged Boards version to 7.4.3. +- **v7.4.0, released 2022-10-16** + - Original 7.4.0 release + +Mattermost v7.4.0 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Highlights + +#### Boards + - Added new [board roles](https://docs.mattermost.com/boards/share-and-collaborate.html#roles), **Commenter** and **Viewer**. + - Added [minimum default board roles](https://docs.mattermost.com/boards/share-and-collaborate.html#manage-team-access) to reduce permissioning ambiguity and to prevent security loopholes. + - Added support for [guest accounts](https://docs.mattermost.com/onboard/guest-accounts.html). + - Added the ability to add a team member to a board by selecting their name from [an autocomplete list](https://docs.mattermost.com/boards/work-with-cards.html#mention-people). + - Added channel notifications for linked boards. + - Added a new [multi-person property](https://docs.mattermost.com/boards/work-with-cards.html#work-with-property-types) to easily set multiple assignees or owners on a card. + +#### Calls + - Added new [keyboard shortcuts for Calls](https://docs.mattermost.com/channels/keyboard-shortcuts-for-channels.html#calls-shortcuts). + +### Improvements + +#### User Interface (UI) + - Added a red destructive action color to the **Leave Channel** button in the channel header. + - Downgraded Brazilian Portuguese and Romanian language support to Alpha. + - Pre-packaged Playbooks v1.32.6. + +#### Administration + - A ``batchSize`` option has been added to the ``mattermost export`` CLI command to limit the number of items exported. By default, if it is not included, it exports all posts. + - Added more context to the “Notify admin” feature to help Admins, such as who asked to upgrade, why they requested the upgrade, and how many people requested it. + +### Bug Fixes + - Fixed an issue with a nil point exception error during imports. + - Fixed an issue where users were unable to download a [Support Packet](https://docs.mattermost.com/manage/generating-support-packet.html) using the Desktop App. + - Fixed an issue with the **Message forward** modal where the auto-complete in the comment box moved with the text cursor. + - Fixed an issue where muted channels with an at-mention were displayed under the **Unreads** section of the channel switcher. + - Fixed an issue where the Collapsed Reply Threads setting was displayed in the **System Console > Experimental Features** section. + - Fixed an issue with the badge count on the mobile app when a channel/thread was viewed. + - Fixed an issue where typing ``@`` in the right-hand side rendered a cut-off user suggestion list. + - Fixed an issue where an error screen was briefly flashed when the first Admin signed up into a new server. + - Fixed an issue where users were unable to add Japanese comments correctly in the message **Forward** modal. + - Fixed an issue where unsaved edits to a post were lost when switching channels or threads. + - Fixed an issue on larger screen sizes where the Insights widgets were pushed to the side when the right-hand side was open. + - Fixed an issue where the ability to forward messages from public channels wasn't possible when messaging someone directly for the first time. + - Fixed an issue where custom emojis were sometimes not visible in **Insights > Top Reactions**. + - Fixed an issue where channels with no posts within a particular timeframe didn't show in **Insights > Least Active Channel**. + - Fixed an issue where the Channel Info right-hand side shortcut was not disabled in the Insights view. + - Fixed an issue where an in-product link was missing from **Integrations > Bot Accounts > Add Bot Account**. + - Reverted the new search of names in PostgreSQL using full text search introduced in v7.3.0 due to a performance regression. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``ServiceSettings`` in ``config.json``: + - Added ``EnableAPITriggerAdminNotifications`` to add an option to receive more context from the “Notify admin” feature to help Admins. + +### API Changes + - If ``EnableConfirmNotificationsToChannel`` is disabled, channel member counts by group API are no longer called. + +### Websocket Event Changes + - Added ``OmitConnection`` to the websocket broadcast parameters. + +### Go Version + - v7.4 is built with Go ``v1.18.1``. + +### Known Issues + - The **More** menu for Pinned posts on the right-hand side is cut-off [MM-46987](https://mattermost.atlassian.net/browse/MM-46987). + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [abhijit-singh](https://github.com/abhijit-singh), [AbhinavVihan](https://github.com/AbhinavVihan), [adrian.lee](https://translate.mattermost.com/user/adrian.lee), [aerokite](https://github.com/aerokite), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alauregaillard](https://translate.mattermost.com/user/alauregaillard), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [anx-ag](https://github.com/anx-ag), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [azigler](https://github.com/azigler), [babinderrathi](https://github.com/babinderrathi), [BenCookie95](https://github.com/BenCookie95), [boahc077](https://github.com/boahc077), [bpodwinski](https://translate.mattermost.com/user/bpodwinski), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [cecilysullivan](https://github.com/cecilysullivan), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [cyrilzhang-mm](https://github.com/cyrilzhang-mm), [d-wierdsma](https://github.com/d-wierdsma), [danielsischy](https://github.com/danielsischy), [darkLord19](https://github.com/darkLord19), [devinbinnie](https://github.com/devinbinnie), [dezerb](https://github.com/dezerb), [dontoisme](https://github.com/dontoisme), [edlerd](https://github.com/edlerd), [ehsan](https://translate.mattermost.com/user/ehsan), [enahum](https://github.com/enahum), [fmartingr](https://github.com/fmartingr), [frstier](https://github.com/frstier), [ftonato](https://github.com/ftonato), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [gvlx](https://github.com/gvlx), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [henry-shxu](https://github.com/henry-shxu), [hmhealey](https://github.com/hmhealey), [Hornet-Wing](https://github.com/Hornet-Wing), [info4pdv](https://github.com/info4pdv), [iomodo](https://github.com/iomodo), [jaskiratsingh2000](https://github.com/jaskiratsingh2000), [jasonblais](https://github.com/jasonblais), [javaguirre](https://github.com/javaguirre), [jespino](https://github.com/jespino), [Jio007](https://github.com/Jio007), [johnsonbrothers](https://github.com/johnsonbrothers), [josevcsouza](https://translate.mattermost.com/user/josevcsouza), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [ksankeerth](https://github.com/ksankeerth), [Kshitij-Katiyar](https://github.com/Kshitij-Katiyar), [lafriks](https://github.com/lafriks), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matthewbirtch](https://github.com/matthewbirtch), [mehran-prs](https://github.com/mehran-prs), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mjnagel](https://github.com/mjnagel), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [MusabShakeel576](https://github.com/MusabShakeel576), [mylonsuren](https://github.com/mylonsuren), [natalie-hub](https://github.com/natalie-hub), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [noxer](https://github.com/noxer), [ogi-m](https://github.com/ogi-m), [orlandorode97](https://github.com/orlandorode97), [pejotu](https://github.com/pejotu), [pfltdv](https://github.com/pfltdv), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [Rajat-Dabade](https://github.com/Rajat-Dabade), [rolwin100](https://github.com/rolwin100), [RoyI99](https://github.com/RoyI99), [safakkizkin](https://github.com/safakkizkin), [salmanmanekia](https://github.com/salmanmanekia), [SaptarshiSarkar12](https://github.com/SaptarshiSarkar12), [sashashura](https://github.com/sashashura), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [SelyanKab](https://github.com/SelyanKab), [shiken](https://translate.mattermost.com/user/shiken), [simcard0000](https://github.com/simcard0000), [sinansonmez](https://github.com/sinansonmez), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [tboulis](https://github.com/tboulis), [tilto0822](https://translate.mattermost.com/user/tilto0822), [TMaYaD](https://github.com/TMaYaD), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [urvesh20](https://github.com/urvesh20), [varghesejose2020](https://github.com/varghesejose2020), [vdvukhzhilov](https://github.com/vdvukhzhilov), [vetash](https://github.com/vetash), [vish9812](https://github.com/vish9812), [VishakhaPoonia](https://github.com/VishakhaPoonia), [wgshtg](https://github.com/wgshtg), [wiggin77](https://github.com/wiggin77), [yangyangdaji](https://github.com/yangyangdaji), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [zefhemel](https://github.com/zefhemel) + +---- + +## Release v7.3 - [Feature Release](/upgrade/release-definitions.html#feature-release) + +- **v7.3.1, released 2022-10-14** + - Mattermost v7.3.1 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Reverted the new search of names in PostgreSQL using full text search introduced in v7.3.0 due to a performance regression. +- **v7.3.0, released 2022-09-16** + - Original 7.3.0 release + +Mattermost v7.3.0 contains a medium severity level security fix. [Upgrading](/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + - Boards is moving from a channel-based to a role-based permissions system. The migration will happen automatically, but your administrator should perform a backup prior to the upgrade. We removed workspaces, so if you were a member of many boards prior to migration, they will now all appear under the same sidebar. Please see [this document](https://docs.mattermost.com/welcome/whats-new-in-v72.html) for more details. + +```{Important} +If you upgrade from a release earlier than v7.2, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Playbooks + - Navigate between teams in Playbooks with the new team switcher. + - Manage playbooks and runs in the new left-hand sidebar. + - View the runs you're participating in or following in the **Runs** sidebar category, and view the playbooks you're a member of in the **Playbooks** sidebar category. + - Favorite runs or playbooks to prioritize them in the **Favorites** category. + - Participants now have access to every run feature on the new run details page. + - Users can now request status updates (Professional). + +#### Boards + - All the boards you’re currently a member of from your current team will appear on the sidebar without needing to switch workspaces. + - Organize boards on the sidebar with custom categories. + - Press CTRL+K/CMD+K to find additional boards. + - Navigate between teams in Boards with the new team switcher. + - Set board and template permissions in the new **Share** setting. + - Link boards to channels to automatically grant board permissions to channel members. + - See [the documentation](/welcome/whats-new-in-v72.html) for more details. + +#### Calls + - Added support for standalone Calls server and Kubernetes (Enterprise). + +#### New Insights Widgets + - Added four new [Insights widgets](/welcome/insights.html): Most Active Direct Messages, Least Active Channels, Top Playbooks, and New Team Members. + +### Improvements + +#### User Interface (UI) + - Added Calls keyboard shortcuts to the **Keyboard shortcuts** help modal. + - Updated the "Contact Sales" link to ``mattermost.com/pl/contact-sales`` and update the pricing modal user interface. + - Introduced a new ``/marketplace`` slash command that brings up the marketplace modal for the Admin, and changed the ``/help`` command so that it now keeps the user internal to Mattermost. + - Team unreads are now calculated based on the channel membership and threads only. Team membership is no longer taken into account. + - For introducing Boards and Playbooks to new users, an “explore other tools in platform” item was added to the end user onboarding checklist. + - Added the **Save** option to the post menu. + - Only the most recent message is now marked as unread when marking a thread as unread from the Threads list. + - Insights filters now persist instead of being reset to default when switching to channels and returning back to the Insights view. + - Code blocks now have better support for language filetype extensions and are a smaller bundle size. + - A Desktop App prompt is now always shown on first visit to a Mattermost server from an email notification. + - Search dropdown options now allow focusing by pressing the tab key. + - Downgraded Bulgarian language support to Beta. + +#### Administration + - Added a **View Plan** button within the plan card via **System Console > License**. + - Started tracking the join time of team members and added a new API endpoint to retrieve information about team members who have joined during a given time. + - Introduced an optional ``shouldRender`` function parameter to ``registerchannelHeaderMenuAction`` plugin function. This allows menu items to conditionally render depending on the current state prior to rendering. + - Plugins can now hide plugin settings based on the server's hosting environment. + - Customers who are on a 30-day free trial are now notified three days before the trial ends. + +### Bug Fixes + - Fixed an issue where muted channels with an at-mention were displayed under the **Unreads** section of the channel switcher. + - Fixed an issue where starting a trial failed if ``SiteURL`` was not set. + - Fixed an issue where reading a thread on the mobile app caused a negative mention count to display on the web app. + - Fixed an issue where the user's profile image persisted after user account deletion. + - Fixed an issue where exports generated via mmctl without attachments still included the file properties in the post, so they couldn't be imported. + - Fixed an issue that caused a crash when unread posts were fetched. + - Fixed an issue where updating a profile image and creating new emojis used multipart uploads when using S3 storage. + - Fixed an issue where the input legend on the custom group modal was cut off in Chrome. + - Fixed an issue where the **Disable post formatting** setting was hidden when the advanced text editor was enabled. + - Fixed an issue where we didn’t fall back to the user's default picture if a profile picture failed to load. + - Fixed an issue where disabling a WebApp plugin from its configuration page resulted in the radio button reverting to ``true``. + - Fixed an issue where the cursor sometimes jumped to the center channel textbox when the right-hand side was open. + - Fixed an issue where closing the right-hand side also closed the edited post in the center channel. + - Fixed an issue where selecting "Try free now" opened the top three enterprise features instead of the "Your trial has started" modal. + - Fixed an issue where the Threads view displayed as unread even if there were no unread threads. + - Fixed an issue where configuration changes could not be saved in the **System Console** in some cases. + - Fixed typos in some translations that caused some in-product links to be broken. + +### API Changes + - Added new API endpoints: + + - ``GET /api/v4/users/me/top/dms`` + - ``GET /api/v4/users/me/top/threads`` + - ``GET /api/v4/teams/:team_id/top/team_members`` + - ``GET /api/v4/teams/:team_id:/top/threads`` + - Added ``first_inaccessible_post_time`` to post API responses. + - Adds query parameter ``include_deleted`` to endpoint: ``{{[http://your-mattermost-url.com/api/v4/posts/{post_id}/files/info}}](http://your-mattermost-url.com/api/v4/posts/%7Bpost_id%7D/files/info%7D%7D)``. + +### Go Version + - v7.3 is built with Go ``v1.18.1``. + +### Open Source Components + - Added ``@floating-ui/react-dom-interactions`` to https://github.com/mattermost/mattermost-webapp. + +### Known Issues + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - On larger screens, the Insights widgets are pushed to the side when the right-hand side is open [MM-46886](https://mattermost.atlassian.net/browse/MM-MM-46886). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - [97amarnathk](https://github.com/97amarnathk), [AbhinavVihan](https://github.com/AbhinavVihan), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [AlexanderMC8533](https://github.com/AlexanderMC8533), [amyblais](https://github.com/amyblais), [antonbuks](https://github.com/antonbuks), [anx-ag](https://github.com/anx-ag), [aperez900907](https://github.com/aperez900907), [asaadmahmood](https://github.com/asaadmahmood), [asatkinson](https://github.com/asatkinson), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [ComicShrimp](https://github.com/ComicShrimp), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [d-wierdsma](https://github.com/d-wierdsma), [danielsischy](https://github.com/danielsischy), [devinbinnie](https://github.com/devinbinnie), [dimeko](https://github.com/dimeko), [dipak-demansol](https://github.com/dipak-demansol), [dsharma522](https://github.com/dsharma522), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [francescbassas](https://github.com/francescbassas), [frstier](https://github.com/frstier), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [gmerz](https://github.com/gmerz), [HandsomeChoco](https://github.com/HandsomeChoco), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hyugabokko](https://github.com/hyugabokko), [ijansky](https://github.com/ijansky), [iogungbade](https://github.com/iogungbade), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jacodaybson](https://github.com/jacodaybson), [jaskiratsingh2000](https://github.com/jaskiratsingh2000), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jpmastermind](https://github.com/jpmastermind), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [krisfremen](https://github.com/krisfremen), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [Liberontissauri](https://github.com/Liberontissauri), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m1lt0n](https://github.com/m1lt0n), [majo](https://translate.mattermost.com/user/majo), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mbc](https://translate.mattermost.com/user/mbc), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mjnagel](https://github.com/mjnagel), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [nadeem-hassan](https://github.com/nadeem-hassan), [natalie-hub](https://github.com/natalie-hub), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [noxer](https://github.com/noxer), [orlandorode97](https://github.com/orlandorode97), [petrmifek](https://github.com/petrmifek), [pfltdv](https://github.com/pfltdv), [pheel](https://github.com/pheel), [phoinixgrr](https://github.com/phoinixgrr), [phpfs](https://github.com/phpfs), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [RoyI99](https://github.com/RoyI99), [rtfm98](https://github.com/rtfm98), [sadohert](https://github.com/sadohert), [safakkizkin](https://github.com/safakkizkin), [salmanmanekia](https://github.com/salmanmanekia), [santoniriccardo](https://github.com/santoniriccardo), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [shamboozles](https://github.com/shamboozles), [sibasankarnayak](https://github.com/sibasankarnayak), [sinansonmez](https://github.com/sinansonmez), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [suzutatsu](https://github.com/suzutatsu), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [TalelingFantasy](https://translate.mattermost.com/user/TalelingFantasy), [tboulis](https://github.com/tboulis), [thepra](https://translate.mattermost.com/user/thepra), [thinkGeist](https://github.com/thinkGeist), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [varundey](https://github.com/varundey), [vetash](https://github.com/vetash), [vish9812](https://github.com/vish9812), [wgshtg](https://translate.mattermost.com/user/wgshtg), [whiver](https://github.com/whiver), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wsh](https://translate.mattermost.com/user/wsh), [wuwinson](https://github.com/wuwinson), [yangyangdaji](https://github.com/yangyangdaji), [zefhemel](https://github.com/zefhemel) + +---- + +## Release v7.2 - [Feature Release](/upgrade/release-definitions.html#feature-release) + +- **v7.2.1, released 2022-10-14** + - Mattermost v7.2.1 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.2.0, released 2022-08-16** + - Original 7.2.0 release + +Mattermost v7.2.0 contains low to medium severity level security fixes. [Upgrading](/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes +Several schema changes impose additional database constraints to make the data more strict. All the commands listed below were tested on a 8 core, 16GB RAM machine. Here are the times recorded: + +**PostgreSQL (131869 channels, 2 teams)**: + +- ``CREATE TYPE channel_type AS ENUM ('P', 'G', 'O', 'D');`` took 14.114 milliseconds +- ``ALTER TABLE channels alter column type type channel_type using type::channel_type;`` took 3856.790 milliseconds (3.857 seconds) +- ``CREATE TYPE team_type AS ENUM ('I', 'O');`` took 4.191 milliseconds +- ``ALTER TABLE teams alter column type type team_type using type::team_type;`` took 116.205 milliseconds +- ``CREATE TYPE upload_session_type AS ENUM ('attachment', 'import');`` took 4.266 milliseconds +- ``ALTER TABLE uploadsessions alter column type type upload_session_type using type::upload_session_type;`` took 37.099 milliseconds + +**MySQL (270959 channels, 2 teams)**: + +- ``ALTER TABLE Channels MODIFY COLUMN Type ENUM("D", "O", "G", "P");`` took 13.24 seconds +- ``ALTER TABLE Teams MODIFY COLUMN Type ENUM("I", "O");`` took 0.04 seconds +- ``ALTER TABLE UploadSessions MODIFY COLUMN Type ENUM("attachment", "import");`` took 0.03 seconds + +```{Important} +If you upgrade from a release earlier than v7.1, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Message Forwarding + - You can now easily share messages as permalinks and respective permalink previews via the new [Post Forwarding feature](/channels/forward-messages.html). Simply select the new **Forward** option from the **More** section of the message hover actions menu on a given message, choose a desired destination, and optionally add a comment for context. + +#### Audit Log v2 (Beta) + - Added support for new [schema and output log types](/comply/audit-log.html). Contrary to the previous audit log implementation, all audit log records now have the same schema. + +### Improvements + +#### User Interface (UI) + - Pre-packaged Calls v0.7.1. + - Added the option to colorize usernames in compact display mode when **Account Settings > Display > Message Display > Compact** is selected. + - Added a setting to always land users at the newest messages in a channel via **Account settings > Advanced > Scroll position when viewing an unread channel**. + - Added email headers to notification emails so they can be threaded by email clients. + - Added **Save** and **Cancel** buttons for post inline editing. + - Enterprise trial details are now displayed for end users in the product switcher menu. + - Updated the **Edit Header** modal text description to be applicable to channels, direct messages, and group messages. + - Added a red destructive action color to ``Archive Channel`` and ``Leave Channel`` menu actions. + - Plugin activation errors now show in the plugin management page and marketplace. + - Added accessibility to the emoji picker skin tone selector and reversed the order of the skin tone selections in the emoji selector. + +#### Administration + - Added an **Upgrade** button for Admins on the navigation bar. + - Added the ability for Admins to quickly view different paid license options inside the product. + - Added the ability to start a trial from the **Invite People** modal. + - Admins are now able to search for channel IDs via **System Console > User Management > Channels** page. + - In the **System Console** left-hand side, paid features icons are now displayed on the menu entries to indicate enterprise features. + - Added ``webSocketClient`` to ``Pluggable`` and ``PostWillRenderEmbed`` plugin registered components. + - Added a new static system-level role called [Custom Group Manager](/onboard/system-admin-roles.html). This role has permissions to create, edit, and delete custom user groups via User Groups in the Products menu. It can be used to assign individual users this ability when Custom Groups permissions are removed for All Members via the **System Console** (**System Console > Permissions > Edit Scheme > Custom Groups**). + - Export file names now contain the ID of the job they were generated by. + +### Performance + - Removed ``getLastPostPerChannel`` selector for improved performance in channel sorting. + +### Bug Fixes + - Fixed an issue with pasting a GitHub code snippet in the message box when text is selected. + - Fixed an issue where fully typed emojis that contained a capital letter were not correctly displayed. + - Fixed an issue where the archive icon for channels did not display correctly in dark themes. + - Fixed an issue where password requirements were not enforced when Development Mode was enabled. + - Fixed an issue where users were able to attempt to edit the channel header of an archived channel on the right-hand side. + - Fixed an issue where the “Your Trial Ended” banner hid the product switcher menu. + - Fixed an issue where the custom status date format was not set to ``YYYY-MM-DD``. + - Fixed an issue where users were unable to remove themselves from a custom role. + - Fixed an issue where some images in link previews overflowed. + - Fixed an issue where accessing the **System Console** and then exiting changed the user's status to "Offline". + - Fixed an issue where the **New Messages** line sometimes appeared when viewing a channel that was previously read. + - Fixed an issue with incorrectly formatted text in the **System Console**. + - Fixed an issue where the thread's view would appear as if it has unread threads even if no unread threads existed. + - Fixed an issue that caused a crash when fetching unread posts. + - Fixed an issue where the mobile app crashed when unfollowing a thread of a channel that a user was no longer a member of. + - Fixed an issue where the Custom Brand text was not centered and Site Description configuration did not show a placeholder. + - Fixed an issue where the group permissions had an extra level of nesting in the user interface. Also the permissions checkboxes were split out into their individual custom group permissions for a greater granularity of control. + - Fixed an issue where the OpenID Connect authentication button was missing from the signup page. + - Fixed an issue with autocomplete sorting regression in channels and threads. + - Fixed an issue where the custom branding logo was distorted on the login screen. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``FileSettings`` in ``config.json``: + - A new config setting ``AmazonS3RequestTimeoutMilliseconds`` was added which sets a timeout for requests to AWS S3. By default, the timeout is at 30 seconds. + +#### API Changes + - Added a new response-header ``Has-Inaccessible-Posts`` for ``getPost`` and ``getPostByIDs`` APIs. + +### Go Version + - v7.2 is built with Go ``v1.18.1``. + +### Open Source Components + - Added ``@types/color-hash``, ``color-contrast-checker``, ``color-hash``, and ``webpack`` to https://github.com/mattermost/mattermost-webapp. + +### Known Issues + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - Forwarding messages: pressing Enter key on an auto-complete item in the comment box sends the forward message [MM-46142](https://mattermost.atlassian.net/browse/MM-46142). + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + +### Contributors + - [64bitpandas](https://github.com/64bitpandas), [Afsoon](https://github.com/Afsoon), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [Apahadi73](https://github.com/Apahadi73), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [avinashlng1080](https://github.com/avinashlng1080), [azigler](https://github.com/azigler), [ballista01](https://github.com/ballista01), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [d-wierdsma](https://github.com/d-wierdsma), [debasish4patra](https://github.com/debasish4patra), [devinbinnie](https://github.com/devinbinnie), [eggmoid](https://github.com/eggmoid), [filipeandrade6](https://github.com/filipeandrade6), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [Haliax](https://github.com/Haliax), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hegocre](https://github.com/hegocre), [hmhealey](https://github.com/hmhealey), [ifnotak](https://github.com/ifnotak), [imasdekar](https://github.com/imasdekar), [imskr](https://github.com/imskr), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [iyampaul](https://github.com/iyampaul), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [jonathanwiemers](https://github.com/jonathanwiemers), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [KantinHoll](https://translate.mattermost.com/user/KantinHoll), [karistuck](https://github.com/karistuck), [kayazeren](https://github.com/kayazeren), [komarnitskyi](https://github.com/komarnitskyi), [koox00](https://github.com/koox00), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [kyeongsoosoo](https://github.com/kyeongsoosoo), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [manojmalik20](https://github.com/manojmalik20), [MarkAndersonTrocme](https://github.com/MarkAndersonTrocme), [master7](https://translate.mattermost.com/user/master7), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [muratbayan](https://github.com/muratbayan), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [noxer](https://github.com/noxer), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [pfltdv](https://github.com/pfltdv), [phoinixgrr](https://github.com/phoinixgrr), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [pjenicot](https://github.com/pjenicot), [plant99](https://github.com/plant99), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [RKRohk](https://github.com/RKRohk), [RoyI99](https://github.com/RoyI99), [sadohert](https://github.com/sadohert), [samia64saleem](https://github.com/samia64saleem), [santoniriccardo](https://github.com/santoniriccardo), [saosangmo](https://github.com/saosangmo), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [serhack](https://github.com/serhack), [shamboozles](https://github.com/shamboozles), [Sharuru](https://github.com/Sharuru), [sibasankarnayak](https://github.com/sibasankarnayak), [SilverKnightKMA](https://github.com/SilverKnightKMA), [sinansonmez](https://github.com/sinansonmez), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [t0mm0](https://github.com/t0mm0), [tboulis](https://github.com/tboulis), [thePanz](https://github.com/thePanz), [thinkGeist](https://github.com/thinkGeist), [tiagodll](https://github.com/tiagodll), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [vdvukhzhilov](https://github.com/vdvukhzhilov), [vish9812](https://github.com/vish9812), [weblate](https://github.com/weblate), [whiver](https://github.com/whiver), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yoikeda](https://github.com/yoikeda), [zefhemel](https://github.com/zefhemel) + +---- + +## Release v7.1 - [Extended Support Release](/upgrade/release-definitions.html#extended-support-release-esr) + +- **v7.1.9, released 2023-04-27** + - Mattermost v7.1.9 contains a medium severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.1.8, released 2023-04-12** + - Mattermost v7.1.8 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.1.7, released 2023-03-17** + - Added a ``exclude_files_count`` parameter to exclude file counts from channel stats API. + - Excluded the file count on channel stats API call on from channel header. +- **v7.1.6, released 2023-03-01** + - Mattermost v7.1.6 contains medium to high severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where threads were not marked as unread in the Threads view. + - Fixed an issue where the server sent a wrong badge number when marking a message as unread in a Direct Message channel. +- **v7.1.5, released 2022-12-21** + - Mattermost v7.1.5 contains low to medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Added a new schema migration to ensure ``ParentId`` column is dropped from the ``Posts`` table. Depending on the table size, if the column is not dropped before, a significant spike in database CPU usage is expected on MySQL databases. Writes to the table will be limited during the migration. + - Fixed an issue where **Renew Now** option was not available in-product for self-serve eligible licenses [MM-47045](https://mattermost.atlassian.net/browse/MM-47045). + - ``getPostSince`` now properly returns deleted posts when Collapsed Reply Threads is enabled. + - Fixed an issue where the ``Enterprise license is expired`` banner was undismissable [MM-47396](https://mattermost.atlassian.net/browse/MM-47396). + - Fixed an issue where screen readers did not announce search results in the "Invite members to channel" modal [MM-44859](https://mattermost.atlassian.net/browse/MM-44859). + - Fixed an issue where screen readers did not announce emojis in the autocomplete list [MM-44877](https://mattermost.atlassian.net/browse/MM-44877). + - Fixed an issue where screen readers did not announce successful logins [MM-46596](https://mattermost.atlassian.net/browse/MM-46596). + - Fixed an issue where screen readers incorrectly announced the **Settings > Display > Language > Change interface language** field [MM-44114](https://mattermost.atlassian.net/browse/MM-44114). + - Fixed an issue where the search dropdown options did not allow focusing with a tab [MM-34969](https://mattermost.atlassian.net/browse/MM-34969). + - Fixed an issue where screen readers failed to announce "no results found" in the **Direct Message** modal [MM-44858](https://mattermost.atlassian.net/browse/MM-44858). + - Fixed an issue where the **Test Connection** button in **System Console > Environment > Elasticsearch** did not correctly take the right config settings specified in the page. Earlier, it would always take the previously saved config [MM-47154](https://mattermost.atlassian.net/browse/MM-47154). +- **v7.1.4, released 2022-10-14** + - Mattermost v7.1.4 contains medium severity level security fixes. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). +- **v7.1.3, released 2022-08-23** + - Mattermost v7.1.3 contains a medium severity level security fix. [Upgrading](/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where Admins were unable to save configuration changes in the **System Console** in some cases [MM-45875](https://mattermost.atlassian.net/browse/MM-45875). +- **v7.1.2, released 2022-07-21** + - Fixed an issue where mmctl checked the server version incorrectly. +- **v7.1.1, released 2022-07-15** + - Fixed an issue where selecting "Update" next to an outdated Marketplace plugin didn't work [MM-45731](https://mattermost.atlassian.net/browse/MM-45731). +- **v7.1.0, released 2022-07-15** + - Original 7.1.0 release + +Mattermost v7.1.0 contains low severity level security fixes. [Upgrading](/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + +### Important Upgrade Notes + - A new configuration option ``MaxImageDecoderConcurrency`` indicates how many images can be decoded concurrently at once. The default is -1, and the value indicates the number of CPUs present. This affects the total memory consumption of the server. The maximum memory of a single image is dictated by ``MaxImageResolution * 24 bytes``. Therefore, we recommend that ``MaxImageResolution * MaxImageDecoderConcurrency * 24`` should be less than the allocated memory for image decoding. + - Mattermost v7.1 introduces schema changes in the form of a new column and its index. The following notes our test results for the schema changes: + - MySQL 12M Posts, 2.5M Reactions - ~1min 34s (instance: PC with 8 cores, 16GB RAM) + - PostgreSQL 12M Posts, 2.5M Reactions - ~1min 18s (instance: db.r5.2xlarge) + - You can run the following SQL queries before the upgrade to obtain a lock on ``Reactions`` table, so that users' reactions posted during this time won't be reflected in the database until the migrations are complete. This is fully backwards-compatible. + - For MySQL: + - ``ALTER TABLE Reactions ADD COLUMN ChannelId varchar(26) NOT NULL DEFAULT "";`` + - ``UPDATE Reactions SET ChannelId = COALESCE((select ChannelId from Posts where Posts.Id = Reactions.PostId), '') WHERE ChannelId="";`` + - ``CREATE INDEX idx_reactions_channel_id ON Reactions(ChannelId) LOCK=NONE;`` + + - For PostgreSQL: + - ``ALTER TABLE reactions ADD COLUMN IF NOT EXISTS channelid varchar(26) NOT NULL DEFAULT '';`` + - ``UPDATE reactions SET channelid = COALESCE((select channelid from posts where posts.id = reactions.postid), '') WHERE channelid='';`` + - ``CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_reactions_channel_id on reactions (channelid);`` + +```{Important} +If you upgrade from a release earlier than v7.0, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` + +### Highlights + +#### Insights (Beta) (Enterprise and Professional) + - Added workplace insights consisting of usage and behavior data, which helps Enterprises further increase productivity of their employees through Mattermost functionality. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + +### Improvements + +#### User Interface (UI) + - Pre-packaged Playbooks v1.29.1, Boards v7.1.0, and Calls v0.7.0. + - Recent emojis are now sorted based on the number of times an emoji has been used. + - Improved the link preview user interface. + - Added new search shortcuts to the **Keyboard Shortcuts** modal. + - CMD+F (macOS) and CTRL+F (Windows) for Desktop App + - CMD+SHIFT+F (macOS) and CTRL+SHIFT+F (Windows) for webapp + - Changed some tooltips to appear when focused instead of just on hover. +- Added support for syntax highlighting for 1C:Enterprise (BSL) language. + +#### Administration + - Default password requirements have been loosened to eight characters and no numeric, casing, or special characters required. These requirements can be configured by the System Admin as needed via **System Console > Password**. + - The System Console now also searches and returns channels based on the channel ID. A new parameter ``IncludeSearchById`` was added to the channel search endpoint, allowing requests to include searches that match IDs in response. + - Search results in PostgreSQL will now respect the ``default_text_search_config`` value instead of being hardcoded to English. Mattermost System Admins should check this value in case of any discrepancies with what is expected. + - Moved ``UserHasJoinedTeam`` callback to after a user is added to a team. + +#### Performance + - Reduced the number of calls made to ``viewChannel`` API during regular usage. + - Added pagination to the ``getPostThread`` API calls. + +### Bug Fixes + - Fixed an issue where links to internal help pages did not always open in a new browser tab. + - Fixed an issue that caused the Channel Members right-hand side search input to not search all the members of a channel. + - Fixed an issue where the feature discovery page still displayed a **Start Trial** button after a trial was completed. + - Fixed an issue where channel recency sorting was not consistent between mobile and webapp. + - Fixed an issue with uploading SVG files. + - Fixed an issue where thread posts were not left-aligned in compact message display mode. + - Fixed an error about a missing column for the Shared Channels experimental feature. + - Fixed an issue where the channel menu drop-down option "Move to..." was skipped when pressing the TAB keyboard key. + - Fixed an issue where the bulk import failed due to reply ``CreateAt`` being greater than that of the parent post. + - Fixed an undefined error when leaving a channel with the Unreads filter enabled. + - Fixed an issue where clicking on a quick emoji reaction opened the right-hand pane. + - Fixed an issue where the keyboard focus did not go back to the post textbox after hitting CTRL/CMD+SHIFT+P twice. + - Fixed an issue where the upload files button was positioned incorrectly. + - Fixed an issue where duplicated emojis sometimes displayed as recently used emojis. + - Fixed an issue where autocomplete "@" search for names did not normalize UTF-8 characters. + - Fixed an issue where **Group Messages** with long display names didn't have a tooltip in the left-hand sidebar. + - Fixed an issue where the file icon was sometimes unresponsive. + - Fixed a race condition where switching teams to an unread channel did not appear to mark that channel as read. + - Fixed an issue where the error message did not appear if a user drafted a too long post. + - Fixed an issue where channels with more than 100 members only showed 100 channel members in the right-hand side. + - Fixed an issue where the preview mode in the advanced text editor did not reset after posting a message. + +### config.json +Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to Team Edition and Enterprise Edition: + - Under ``ServiceSettings`` in ``config.json``: + - The setting ``EnableInsecureOutgoingConnections`` is now applicable to S3 clients as well. If that is set, s3 clients will skip TLS verification. + +#### API Changes + - To allow Admins to retrieve contents of posts whether they are deleted or not, ``include_deleted`` query parameter was introduced to ``GetPost`` endpoint. + +### Go Version + - v7.1 is built with Go ``v1.18.1``. + +### Open Source Components + - Added ``@floating-ui/react-dom`` and removed ``superagent`` and ``jasny-bootstrap`` from https://github.com/mattermost/mattermost-webapp/. + +### Known Issues + - The new Insights feature has some performance costs that we are working to optimize. This feature can be disabled by setting the ``MM_FEATUREFLAGS_INSIGHTSENABLED`` environment variable to ``false``. + - The Top Boards widget in Insights is slow to load. + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Google login fails on the Classic mobile apps. + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - The team sidebar on the desktop app does not update when channels have been read on mobile. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - Boards are not refreshing on creation. See the [GitHub discussion](https://github.com/mattermost/focalboard/discussions/1971) for more information. + - Boards export and reimport results in duplicates boards because all IDs are replaced by new ones on the server. See the [GitHub issue](https://github.com/mattermost/focalboard/issues/1924) for more information. + +### Contributors + - [3ach](https://github.com/3ach), [abhijit-singh](https://github.com/abhijit-singh), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alejdg](https://github.com/alejdg), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [antonbuks](https://github.com/antonbuks), [anurag6713](https://github.com/anurag6713), [armanchand](https://github.com/armanchand), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [azigler](https://github.com/azigler), [Ballista01](https://github.com/Ballista01), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [d-wierdsma](https://github.com/d-wierdsma), [darkLord19](https://github.com/darkLord19), [devinbinnie](https://github.com/devinbinnie), [dimoiko100](https://github.com/dimoiko100), [dipak-demansol](https://github.com/dipak-demansol), [dontoisme](https://github.com/dontoisme), [DSchalla](https://github.com/DSchalla), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [engineereng](https://github.com/engineereng), [erezo9](https://github.com/erezo9), [esethna](https://github.com/esethna), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [gbyx3](https://github.com/gbyx3), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [imasdekar](https://github.com/imasdekar), [imskr](https://github.com/imskr), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [ismaaylSpiria](https://github.com/ismaaylSpiria), [IsmailTakriti](https://translate.mattermost.com/user/IsmailTakriti/), [it33](https://github.com/it33), [jaskiratsingh2000](https://github.com/jaskiratsingh2000), [jasonblais](https://github.com/jasonblais), [jbattistispiria](https://github.com/jbattistispiria), [jespino](https://github.com/jespino), [jfcastroluis](https://github.com/jfcastroluis), [jgilliam17](https://github.com/jgilliam17), [johnsonbrothers](https://github.com/johnsonbrothers), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [keremkurtulus](https://github.com/keremkurtulus), [Kirill](https://github.com/Kirill), [koox00](https://github.com/koox00), [krisfremen](https://github.com/krisfremen), [kyeongsoosoo](https://github.com/kyeongsoosoo), [lapaz17](https://github.com/lapaz17), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://translate.mattermost.com/user/maksimatveev/), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7/), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [mayur_dhamecha](@mayur_dhamecha), [metanerd](https://github.com/metanerd), [metehankaraca](https://github.com/metehankaraca), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [miltalex](https://github.com/miltalex), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [mvitale1989](https://github.com/mvitale1989), [natalie-hub](https://github.com/natalie-hub), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [Ngwind](https://github.com/Ngwind), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [noxer](https://github.com/noxer), [ogi-m](https://github.com/ogi-m), [pfltdv](https://github.com/pfltdv), [pheel](https://github.com/pheel), [phoinixgrr](https://github.com/phoinixgrr), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [prathers](https://github.com/prathers), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [respinffs](https://github.com/respinffs), [rodrigopinero](https://github.com/rodrigopinero), [RoyI99](https://github.com/RoyI99), [Rutam21](https://github.com/Rutam21), [sadohert](https://github.com/sadohert), [santoniriccardo](https://github.com/santoniriccardo), [sayanta66](https://github.com/sayanta66), [sbishel](https://github.com/sbishel), [serhack](https://github.com/serhack), [sinansonmez](https://github.com/sinansonmez), [sonichigo](https://github.com/sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [tboulis](https://github.com/tboulis), [thinkGeist](https://github.com/thinkGeist), [topelrapha](https://github.com/topelrapha), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wuwinson](https://github.com/wuwinson), [yasserfaraazkhan](https://github.com/yasserfaraazkhan), [YetAnotherBlogArticle](https://github.com/YetAnotherBlogArticle), [zefhemel](https://github.com/zefhemel), [zsichina](https://github.com/zsichina) + +---- ## Release v7.0 - [Major Release](/upgrade/release-definitions.html#major-release) @@ -30,7 +1829,9 @@ Mattermost v7.0.0 contains medium severity level security fixes. [Upgrading](/up - The value of ``ServiceSettings.TrustedProxyIPHeader`` defaults to empty from now on. A previous bug prevented this from happening in certain conditions. Customers are requested to check for these values in their config and set them to nil if necessary. See more details [here](/configure/configuration-settings.html#trusted-proxy-ip-header). - Upgrading the Microsoft Teams Calling plugin to v2.0.0 requires users to reconnect their accounts. -**IMPORTANT:** If you upgrade from a release earlier than v6.7, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.7, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -125,6 +1926,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [Abrahamology](https://github.com/Abrahamology), [AbrahamQll](https://translate.mattermost.com/user/AbrahamQll), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [Altaaya](https://github.com/Altaaya), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [bobmaster](https://translate.mattermost.com/user/bobmaster), [Borknab](https://github.com/Borknab), [bpmct](https://github.com/bpmct), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chenilim](https://github.com/chenilim), [cohu-dev](https://github.com/cohu-dev), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [debasish4patra](https://github.com/debasish4patra), [devinbinnie](https://github.com/devinbinnie), [dipak-demansol](https://github.com/dipak-demansol), [djanda97](https://github.com/djanda97), [eggmoid](https://github.com/eggmoid), [elyscape](https://github.com/elyscape), [enahum](https://github.com/enahum), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gavin-luo](https://github.com/gavin-luo), [gbochora](https://github.com/gbochora), [gin-melodic](https://github.com/gin-melodic), [hamzaMM](https://github.com/hamzaMM), [HandsomeChoco](https://github.com/HandsomeChoco), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jbattistispiria](https://github.com/jbattistispiria), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [jonathanwiemers](https://github.com/jonathanwiemers), [jprusch](https://github.com/jprusch), [jsoref](https://github.com/jsoref), [jtdspiria](https://github.com/jtdspiria), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [kkennethlee](https://github.com/kkennethlee), [koox00](https://github.com/koox00), [krisfremen](https://github.com/krisfremen), [krmh04](https://github.com/krmh04), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lisez](https://github.com/lisez), [lkyuchukov](https://github.com/lkyuchukov), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [master7](https://translate.mattermost.com/user/master7), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [matt-w99](https://github.com/matt-w99), [maxtrem271991](https://github.com/maxtrem271991), [metanerd](https://github.com/metanerd), [metehankaraca](https://translate.mattermost.com/user/metehankaraca/), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [miltalex](https://github.com/miltalex), [mjnagel](https://github.com/mjnagel), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [munish7771](https://github.com/munish7771), [neallred](https://github.com/neallred), [nickmisasi](https://github.com/nickmisasi), [nzeemin](https://github.com/nzeemin), [pfltdv](https://github.com/pfltdv), [phoinixgrr](https://github.com/phoinixgrr), [Phrynobatrachus](https://github.com/Phrynobatrachus), [plykung](https://translate.mattermost.com/user/plykung/), [prakharporwal](https://github.com/prakharporwal), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [RoyI99](https://github.com/RoyI99), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [sibasankarnayak](https://github.com/sibasankarnayak), [SiderealArt](https://github.com/SiderealArt), [sinansonmez](https://github.com/sinansonmez), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [TQuock](https://github.com/TQuock), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [vaaas](https://github.com/vaaas), [vadimasadchi](https://github.com/vadimasadchi), [vaheed](https://github.com/vaheed), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [windane](https://translate.mattermost.com/user/windane) +---- + ## Release v6.7 - [Feature Release](/upgrade/release-definitions.html#feature-release) - **v6.7.2, released 2022-06-15** @@ -150,7 +1953,9 @@ Mattermost v6.7.0 contains low severity level security fixes. [Upgrading](/upgra - For MySQL: `CREATE INDEX idx_posts_create_at_id on Posts(CreateAt, Id) LOCK=NONE;` - For Postgres: `CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_posts_create_at_id on posts(createat, id);` -**IMPORTANT:** If you upgrade from a release earlier than v6.6, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.6, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -248,6 +2053,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alexkoala](https://github.com/alexkoala), [alieh-rymasheuski](https://github.com/alieh-rymasheuski), [allonios](https://github.com/allonios), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [andrewodri](https://github.com/andrewodri), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [bermelmike](https://translate.mattermost.com/user/bermelmike), [boxiyang](https://translate.mattermost.com/user/boxiyang), [bpodwinski](https://github.com/bpodwinski), [calebroseland](https://github.com/calebroseland), [cdump](https://github.com/cdump), [cecilysullivan](https://github.com/cecilysullivan), [chenilim](https://github.com/chenilim), [cleferman](https://github.com/cleferman), [codedsun](https://github.com/codedsun), [coltoneshaw](https://github.com/coltoneshaw), [cota-eng](https://translate.mattermost.com/user/cota-eng), [cpoile](https://github.com/cpoile), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [devinbinnie](https://github.com/devinbinnie), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [ewwollesen](https://github.com/ewwollesen), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [HandsomeChoco/](https://translate.mattermost.com/user/HandsomeChoco/), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jbattistispiria](https://github.com/jbattistispiria), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jpaldeano](https://github.com/jpaldeano), [jprusch](https://github.com/jprusch), [JtheBAB](https://translate.mattermost.com/user/JtheBAB), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [KevinSJ](https://github.com/KevinSJ), [kherwata](https://translate.mattermost.com/user/kherwata), [KobeBergmans](https://github.com/KobeBergmans), [koox00](https://github.com/koox00), [krmh04](https://github.com/krmh04), [kyeongsoosoo](https://github.com/kyeongsoosoo), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [lkyuchukov](https://github.com/lkyuchukov), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7/), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [maxtrem271991](https://translate.mattermost.com/user/maxtrem271991), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [mikebermel](https://github.com/mikebermel), [milotype](https://github.com/milotype), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [muratbayan](https://github.com/muratbayan), [mvitale1989](https://github.com/mvitale1989), [mylonsuren](https://github.com/mylonsuren), [nat-gunner](https://github.com/nat-gunner), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [nickmisasi](https://github.com/nickmisasi), [ogi-m](https://github.com/ogi-m), [pfltdv](https://github.com/pfltdv), [phoinixgrr](https://github.com/phoinixgrr), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [pvev](https://github.com/pvev), [Rajat-Dabade](https://github.com/Rajat-Dabade), [rebornwwp](https://github.com/rebornwwp), [RoyI99](https://github.com/RoyI99), [ryoarmanda](https://github.com/ryoarmanda), [saturninoabril](https://github.com/saturninoabril), [sayanta66](https://github.com/sayanta66), [sbishel](https://github.com/sbishel), [serhack](https://github.com/serhack), [seoyeongeun](https://translate.mattermost.com/user/seoyeongeun), [shadowshot-x](https://github.com/shadowshot-x), [SiderealArt](https://translate.mattermost.com/user/SiderealArt), [silentyak](https://github.com/silentyak), [sinansonmez](https://github.com/sinansonmez), [Sonichigo](https://github.com/Sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [TQuock](https://github.com/TQuock), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [TylerStilson](https://github.com/TylerStilson), [unode](https://github.com/unode), [vadimasadchi](https://github.com/vadimasadchi), [varghesejose2020](https://github.com/varghesejose2020), [VishakhaPoonia](https://github.com/VishakhaPoonia), [Vovcharaa](https://github.com/Vovcharaa), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [zefhemel](https://github.com/zefhemel) +---- + ## Release v6.6 - [Feature Release](/upgrade/release-definitions.html#feature-release) - **v6.6.2, released 2022-06-13** @@ -271,7 +2078,9 @@ Mattermost v6.6.0 contains a low severity level security fix. [Upgrading](/upgra ### Important Upgrade Notes - The [Apps Framework protocol](https://developers.mattermost.com/integrate/apps/) for binding/form submissions has changed, by separating the single `call` into separate `submit`, `form`, `refresh` and `lookup` calls. If any users have created their own Apps, they have to be updated to the new system. -**IMPORTANT:** If you upgrade from a release earlier than v6.5, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.5, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). + ``` ### Highlights @@ -387,6 +2196,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [AccountingMattermost](https://github.com/AccountingMattermost), [aeomin](https://translate.mattermost.com/user/aeomin/), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [akkivasu](https://github.com/akkivasu), [Alexnoj](https://github.com/Alexnoj), [amyblais](https://github.com/amyblais), [andreygolubkow](https://github.com/andreygolubkow), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [azigler](https://github.com/azigler), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [blocodenotas](https://github.com/blocodenotas), [bobertoyin](https://github.com/bobertoyin), [Borknab](https://github.com/Borknab), [bpodwinski](https://github.com/bpodwinski), [calebroseland](https://github.com/calebroseland), [CeesJol](https://github.com/CeesJol), [chenilim](https://github.com/chenilim), [ChristieBavelaar](https://github.com/ChristieBavelaar), [cleferman](https://github.com/cleferman), [coltoneshaw](https://github.com/coltoneshaw), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ct7amz](https://translate.mattermost.com/user/ct7amz/), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [darkonovkina](https://translate.mattermost.com/user/darkonovkina/), [debasish4patra](https://github.com/debasish4patra), [devinbinnie](https://github.com/devinbinnie), [dipak-demansol](https://github.com/dipak-demansol), [dontoisme](https://github.com/dontoisme), [DSchalla](https://github.com/DSchalla), [emdecr](https://github.com/emdecr), [emilyacook](https://github.com/emilyacook), [enahum](https://github.com/enahum), [EragonRD](https://github.com/EragonRD), [erdeerdeerde](https://github.com/erdeerdeerde), [ericocesar](https://github.com/ericocesar), [ewwollesen](https://github.com/ewwollesen), [flynbit](https://github.com/flynbit), [fromhro](https://github.com/fromhro), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [glennschler](https://github.com/glennschler), [gmerz](https://github.com/gmerz), [gyeben](https://github.com/gyeben), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [htlcnn](https://github.com/htlcnn), [hydeenoble](https://github.com/hydeenoble), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johndavidlugtu](https://github.com/johndavidlugtu), [johnsonbrothers](https://github.com/johnsonbrothers), [jordanafung](https://github.com/jordanafung), [jpetazzo](https://github.com/jpetazzo), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [k4awon](https://github.com/k4awon), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [karistuck](https://github.com/karistuck), [kayazeren](https://github.com/kayazeren), [KevinSJ](https://github.com/KevinSJ), [koox00](https://github.com/koox00), [krmh04](https://github.com/krmh04), [kzmi](https://translate.mattermost.com/user/kzmi/), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7/), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mkdbns](https://github.com/mkdbns), [mkraft](https://github.com/mkraft), [Mshahidtaj](https://github.com/Mshahidtaj), [mylonsuren](https://github.com/mylonsuren), [nasermoein](https://github.com/nasermoein), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [Nothing23yeh](https://github.com/Nothing23yeh), [noxer](https://github.com/noxer), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [pfltdv](https://github.com/pfltdv), [Phrynobatrachus](https://github.com/Phrynobatrachus), [potatogim](https://github.com/potatogim), [pvev](https://github.com/pvev), [ramirezjag00](https://github.com/ramirezjag00), [rodcorsi](https://github.com/rodcorsi), [ruckc](https://github.com/ruckc), [ryoarmanda](https://github.com/ryoarmanda), [saturninoabril](https://github.com/saturninoabril), [sayanta66](https://github.com/sayanta66), [sbishel](https://github.com/sbishel), [sc](https://translate.mattermost.com/user/_sc/), [sibasankarnayak](https://github.com/sibasankarnayak), [sinansonmez](https://github.com/sinansonmez), [spirosoik](https://github.com/spirosoik), [src-r-r](https://github.com/src-r-r), [sri-byte](https://github.com/sri-byte), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [superkkt](https://github.com/superkkt), [Szymongib](https://github.com/Szymongib), [ThiefMaster](https://github.com/ThiefMaster), [thorkemado](https://github.com/thorkemado), [tilto0822](https://github.com/tilto0822), [tmotyl](https://github.com/tmotyl), [tomaszn](https://github.com/tomaszn), [TQuock](https://github.com/TQuock), [trilopin](https://github.com/trilopin), [tsabi](https://github.com/tsabi), [vadimasadchi](https://github.com/vadimasadchi), [varghesejose2020](https://github.com/varghesejose2020), [vish9812](https://github.com/vish9812), [VishakhaPoonia](https://github.com/VishakhaPoonia), [wandersiemers](https://github.com/wandersiemers), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wuwinson](https://github.com/wuwinson), [Zxce3](https://github.com/Zxce3) +---- + ## Release v6.5 - [Feature Release](/upgrade/release-definitions.html#feature-release) - **v6.5.2, released 2022-06-13** @@ -410,7 +2221,9 @@ Mattermost v6.5.0 contains low to medium severity level security fixes. [Upgradi ### Important Upgrade Notes - The ``mattermost version`` CLI command does not interact with the database anymore. Therefore the database version is not going to be printed. Also, the database migrations are not going to be applied with the version sub command. [A new db migrate sub command](/manage/command-line-tools.html#mattermost-db-migrate) is added to enable administrators to trigger migrations. -**IMPORTANT:** If you upgrade from a release earlier than v6.4, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.4, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -525,6 +2338,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [97amarnathk](https://github.com/97amarnathk), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [akshitarora921](https://github.com/akshitarora921), [alerque](https://github.com/alerque), [amyblais](https://github.com/amyblais), [andrewbrown00](https://github.com/andrewbrown00), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [CeesJol](https://github.com/CeesJol), [chenilim](https://github.com/chenilim), [chris-nee](https://github.com/chris-nee), [codedsun](https://github.com/codedsun), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cvockrodt](https://github.com/cvockrodt), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [debasish4patra](https://github.com/debasish4patra), [devinbinnie](https://github.com/devinbinnie), [dipak-demansol](https://github.com/dipak-demansol), [DIVYA-19](https://github.com/DIVYA-19), [dontoisme](https://github.com/dontoisme), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [EragonRD](https://github.com/EragonRD), [fromhro](https://github.com/fromhro), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [ggu1012](https://github.com/ggu1012), [gohyinhao](https://github.com/gohyinhao), [GR34SE](https://github.com/GR34SE), [gtapiasgt](https://github.com/gtapiasgt), [gyeben](https://translate.mattermost.com/user/gyeben/), [haardikdharma10](https://github.com/haardikdharma10), [hamzaMM](https://github.com/hamzaMM), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [hojin-kim](https://translate.mattermost.com/user/hojin-kim/), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ITKozak](https://github.com/ITKozak), [jaz-on](https://github.com/jaz-on), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [joriki](https://github.com/joriki), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [jsoref](https://github.com/jsoref), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [julmondragon](https://github.com/julmondragon), [jupriano](https://github.com/jupriano), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [karistuck](https://github.com/karistuck), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [krmh04](https://github.com/krmh04), [krotovkk](https://github.com/krotovkk), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [mamounjamous](https://github.com/mamounjamous), [manojmalik20](https://github.com/manojmalik20), [master7](https://translate.mattermost.com/user/master7/), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [matthewbirtch](https://github.com/matthewbirtch), [maurobraggio](https://github.com/maurobraggio), [metanerd](https://github.com/metanerd), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mkraft](https://github.com/mkraft), [mylonsuren](https://github.com/mylonsuren), [nasermoein](https://github.com/nasermoein), [nathanaelhoun](https://github.com/nathanaelhoun), [NathanBnm](https://github.com/NathanBnm), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [Nothing23yeh](https://github.com/Nothing23yeh), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [penthaapatel](https://github.com/penthaapatel), [persian@mattermost.com](https://translate.mattermost.com/user/persiantranslator@mattermost.com/), [persiantranslator@mattermost.com](https://translate.mattermost.com/user/persiantranslator@mattermost.com/), [Phrynobatrachus](https://github.com/Phrynobatrachus), [Pinjasaur](https://github.com/Pinjasaur), [plant99](https://github.com/plant99), [poflankov](https://github.com/poflankov), [potatogim](https://github.com/potatogim), [Profesor08](https://github.com/Profesor08), [pvev](https://github.com/pvev), [rodcorsi](https://github.com/rodcorsi), [Rutam21](https://github.com/Rutam21), [saeid.hmdr](https://translate.mattermost.com/user/saeid.hmdr/), [sargreal](https://github.com/sargreal), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [scottaudet](https://github.com/scottaudet), [seoyeongeun](https://github.com/seoyeongeun), [serhack](https://github.com/serhack), [sibasankarnayak](https://github.com/sibasankarnayak), [sinansonmez](https://github.com/sinansonmez), [snan](https://github.com/snan), [Sonichigo](https://github.com/Sonichigo), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [superkkt](https://github.com/superkkt), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [ThiefMaster](https://github.com/ThiefMaster), [tilto0822](https://github.com/tilto0822), [TQuock](https://github.com/TQuock), [tsabi](https://github.com/tsabi), [ukewea](https://github.com/ukewea), [varghesejose2020](https://github.com/varghesejose2020), [vinod-demansol](https://github.com/vinod-demansol), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wuwinson](https://github.com/wuwinson), [zefhemel](https://github.com/zefhemel), [Zxce3](https://translate.mattermost.com/user/Zxce3/). +---- + ## Release v6.4 - [Feature Release](/upgrade/release-definitions.html#feature-release) - **v6.4.3, released 2022-04-28** @@ -546,7 +2361,9 @@ Mattermost v6.4.0 contains low severity level security fixes. [Upgrading](/upgra - It has been commonly observed on MySQL 8+ systems to have an error ``Error 1267: Illegal mix of collations`` when upgrading due to changing the default collation. This is caused by the database and the tables having different collations. If you get this error, please change the collations to have the same value with, for example, ``ALTER DATABASE COLLATE = ''``. - The new migration system requires the MySQL database user to have additional *EXECUTE*, *CREATE ROUTINE*, *ALTER ROUTINE* and *REFERENCES* privileges to run schema migrations. -**IMPORTANT:** If you upgrade from a release earlier than v6.3, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.3, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -625,6 +2442,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [3ach](https://github.com/3ach), [abdusabri](https://github.com/abdusabri), [abhijit-singh](https://github.com/abhijit-singh), [adithyaakrishna](https://github.com/adithyaakrishna), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alauregaillard](https://github.com/alauregaillard), [alieh-rymasheuski](https://github.com/alieh-rymasheuski), [amyblais](https://github.com/amyblais), [anurag6713](https://github.com/anurag6713), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [balajivenkatesh](https://github.com/balajivenkatesh), [BenHargreaves](https://github.com/BenHargreaves), [BenLloydPearson](https://github.com/BenLloydPearson), [bhimeshchauhan](https://github.com/bhimeshchauhan), [bobychaudhary](https://github.com/bobychaudhary), [calebroseland](https://github.com/calebroseland), [ChaseKnowlden](https://github.com/ChaseKnowlden), [chenilim](https://github.com/chenilim), [codedsun](https://github.com/codedsun), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [debasish4patra](https://github.com/debasish4patra), [debci](https://translate.mattermost.com/user/debci/), [devinbinnie](https://github.com/devinbinnie), [dfun90](https://github.com/dfun90), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [evil.com](https://translate.mattermost.com/user/evil.com/), [flynbit](https://translate.mattermost.com/user/flynbit/), [frnkshin](https://github.com/frnkshin), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbochora](https://github.com/gbochora), [gtapias](https://translate.mattermost.com/user/gtapias/), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [jihoon-seo](https://github.com/jihoon-seo), [johnsonbrothers](https://github.com/johnsonbrothers), [josephjosedev](https://github.com/josephjosedev), [jpaldeano](https://github.com/jpaldeano), [jprusch](https://github.com/jprusch), [jsoref](https://github.com/jsoref), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [K3UL](https://github.com/K3UL), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [krmh04](https://github.com/krmh04), [krotovkk](https://github.com/krotovkk), [LaoshuBaby](https://github.com/LaoshuBaby), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [manojmalik20](https://github.com/manojmalik20), [MarcCeleiro](https://translate.mattermost.com/user/MarcCeleiro/), [marianunez](https://github.com/marianunez), [master7](https://translate.mattermost.com/user/master7/), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [Mercbot7](https://github.com/Mercbot7), [meshal](https://translate.mattermost.com/user/meshal/), [Meshalaw](https://github.com/Meshalaw), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mkbox](https://github.com/mkbox), [mkraft](https://github.com/mkraft), [mxschumacher](https://github.com/mxschumacher), [mylonsuren](https://github.com/mylonsuren), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [nickmisasi](https://github.com/nickmisasi), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [onoklin](https://github.com/onoklin), [pablovelezvidal](https://github.com/pablovelezvidal), [patatman](https://github.com/patatman), [Phrynobatrachus](https://github.com/Phrynobatrachus), [potatogim](https://github.com/potatogim), [R](https://translate.mattermost.com/user/R/), [RenePinnow](https://github.com/RenePinnow), [ricosega](https://github.com/ricosega), [rinkimekari](https://github.com/rinkimekari), [sadohert](https://github.com/sadohert), [sangramrath](https://github.com/sangramrath), [sanjaydemansol](https://github.com/sanjaydemansol), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [Schweinepriester](https://github.com/Schweinepriester), [scottaudet](https://github.com/scottaudet), [seoyeongeun](https://github.com/seoyeongeun), [shadowshot-x](https://github.com/shadowshot-x), [shrzkhn](https://github.com/shrzkhn), [sibasankarnayak](https://github.com/sibasankarnayak), [spirosoik](https://github.com/spirosoik), [sri-byte](https://github.com/sri-byte), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [tilto0822](https://github.com/tilto0822), [TQuock](https://github.com/TQuock), [tsabi](https://github.com/tsabi), [tw-ayush](https://github.com/tw-ayush), [varghesejose2020](https://github.com/varghesejose2020), [venarius](https://github.com/venarius), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [willpwa](https://github.com/willpwa), [Willyfrog](https://github.com/Willyfrog), [wqweto](https://translate.mattermost.com/user/wqweto/), [wuwinson](https://github.com/wuwinson), [zefhemel](https://github.com/zefhemel) +---- + ## Release v6.3 - [Extended Support Release](/upgrade/release-definitions.html#extended-support-release-esr) - **v6.3.10, released 2022-08-23** @@ -752,6 +2571,8 @@ IMPORTANT: If you upgrade from a release earlier than v6.2, please read the othe ### Contributors - [AccountingMattermost](https://github.com/AccountingMattermost), [Adovenmuehle](https://github.com/Adovenmuehle), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [asaadmahmood](https://github.com/asaadmahmood), [AshishDhama](https://github.com/AshishDhama), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [ChristophKaser](https://github.com/ChristophKaser), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [craph](https://github.com/craph), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet/), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [darmen](https://translate.mattermost.com/user/darmen/), [darmenerk](https://github.com/darmenerk), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [dunak-debug](https://github.com/dunak-debug), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [ewwollesen](https://github.com/ewwollesen), [gbochora](https://github.com/gbochora), [Grucqq](https://github.com/Grucqq), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [JenyaFTW](https://github.com/JenyaFTW), [jespino](https://github.com/jespino), [johnsonbrothers](https://github.com/johnsonbrothers), [JoomlaEstonia](https://github.com/JoomlaEstonia), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [krotovkk](https://github.com/krotovkk), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majo](https://translate.mattermost.com/user/majo/), [maksimatveev](https://github.com/maksimatveev), [master7](https://translate.mattermost.com/user/master7/), [mateioprea](https://github.com/mateioprea), [matt-w99](https://github.com/matt-w99), [matthew-w](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mjnagel](https://github.com/mjnagel), [mrckndt](https://github.com/mrckndt), [Mshahidtaj](https://github.com/Mshahidtaj), [nab-77](https://github.com/nab-77), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [nishantwrp](https://github.com/nishantwrp), [ogi-m](https://github.com/ogi-m), [olaysco](https://github.com/olaysco), [pablovelezvidal](https://github.com/pablovelezvidal), [Phrynobatrachus](https://github.com/Phrynobatrachus), [poflankov](https://github.com/poflankov), [Profesor08](https://github.com/Profesor08), [puerco](https://github.com/puerco), [rubenmeza](https://github.com/rubenmeza), [sanjaydemansol](https://github.com/sanjaydemansol), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [SebastianSpeitel](https://github.com/SebastianSpeitel), [seoyeongeun](https://translate.mattermost.com/user/seoyeongeun/), [serhack](https://github.com/serhack), [shadowshot-x](https://github.com/shadowshot-x), [shazm](https://github.com/shazm), [sibasankarnayak](https://github.com/sibasankarnayak), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [tilto0822](https://github.com/tilto0822), [tsabi](https://github.com/tsabi), [varghese.jose](https://translate.mattermost.com/user/varghese.jose/), [vinod-demansol](https://github.com/vinod-demansol), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [YairFernando67](https://github.com/YairFernando67), [YC](https://github.com/YC) +---- + ## Release v6.2 - [Feature Release](/upgrade/release-definitions.html) - **v6.2.5, released 2022-03-10** @@ -778,7 +2599,9 @@ IMPORTANT: If you upgrade from a release earlier than v6.2, please read the othe - Channel results in the channel autocomplete will include private channels. Customers using [Bleve](/deploy/bleve-search.html) or [Elasticsearch](/scale/elasticsearch.html) for autocomplete will have to reindex their data to get the new results. Since this can take a long time, we suggest disabling autocomplete and running indexing in the background. When this is complete, re-enable autocomplete. Note that only channel members will see private channel names in autocomplete results. - [Collapsed Reply Threads](/messaging/organizing-conversations.html), available in beta, are known to have a negative impact on server performance. If you cannot easily scale up and tune your database, or if you are running the Mattermost application server and database server on the same machine, we recommended disabling [``ThreadAutoFollow``](/configure/configuration-settings.html#automatically-follow-threads) and [``CollapsedThreads``](/configure/configuration-settings.html#collapsed-reply-threads-beta) until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these [performance considerations here](https://support.mattermost.com/hc/en-us/articles/4413183568276). -**IMPORTANT:** If you upgrade from a release earlier than v6.1, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.1, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -877,6 +2700,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ahills60](https://github.com/ahills60), [alauregaillard](https://github.com/alauregaillard), [amyblais](https://github.com/amyblais), [anchepiece](https://github.com/anchepiece), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [AWerbrouck](https://github.com/AWerbrouck), [BenCookie95](https://github.com/BenCookie95), [berkeka](https://github.com/berkeka), [bretanac93](https://github.com/bretanac93), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [cleferman](https://github.com/cleferman), [clovis1122](https://github.com/clovis1122), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [daovansonbg](https://github.com/daovansonbg), [De1ain](https://github.com/De1ain), [devinbinnie](https://github.com/devinbinnie), [dipak-demansol](https://github.com/dipak-demansol), [dontoisme](https://github.com/dontoisme), [ekl1773](https://github.com/ekl1773), [emdecr](https://github.com/emdecr), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [engineereng](https://github.com/engineereng), [Ericliu1912](https://github.com/Ericliu1912), [erik](https://translate.mattermost.com/user/erik), [erni27](https://github.com/erni27), [esethna](https://github.com/esethna), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [Genei180](https://github.com/Genei180), [gigawhitlocks](https://github.com/gigawhitlocks), [Grucqq](https://github.com/Grucqq), [gtanczyk](https://github.com/gtanczyk), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [iOSGeekster](https://github.com/iOSGeekster), [ironbyte](https://github.com/ironbyte), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivernus](https://github.com/ivernus), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [JenyaFTW](https://github.com/JenyaFTW), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [joseph.jose](https://translate.mattermost.com/user/joseph.jose), [jprusch](https://github.com/jprusch), [jrester](https://github.com/jrester), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [JulienTant](https://github.com/JulienTant), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kaitrin](https://github.com/kaitrin), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [kayge](https://github.com/kayge), [kirtilodha](https://github.com/kirtilodha), [KKVANONYMOUS](https://github.com/KKVANONYMOUS), [koox00](https://github.com/koox00), [korvmoij](https://github.com/korvmoij), [kott](https://github.com/kott), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [LSantos06](https://github.com/LSantos06), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [marcvelasco](https://github.com/marcvelasco), [marianunez](https://github.com/marianunez), [majo](https://translate.mattermost.com/user/majo), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7), [mathiasvr](https://github.com/mathiasvr), [matthew-w](https://translate.mattermost.com/user/matthew-w), [matt-w99](https://github.com/matt-w99), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [milotype](https://github.com/milotype), [mkraft](https://github.com/mkraft), [mr-aboutin](https://github.com/mr-aboutin), [mRuggi](https://github.com/mRuggi), [Mshahidtaj](https://github.com/Mshahidtaj), [namreg](https://github.com/namreg), [nat-gunner](https://github.com/nat-gunner), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaiz](https://translate.mattermost.com/user/nikolaiz/), [nikolaizah](https://github.com/nikolaizah), [nishantwrp](https://github.com/nishantwrp), [ogi-m](https://github.com/ogi-m), [pablovelezvidal](https://github.com/pablovelezvidal), [pascalhein](https://github.com/pascalhein), [penthaapatel](https://github.com/penthaapatel), [Phrynobatrachus](https://github.com/Phrynobatrachus), [poflankov](https://github.com/poflankov), [prakharporwal](https://github.com/prakharporwal), [Prassud](https://github.com/Prassud), [puerco](https://github.com/puerco), [Quentin](https://translate.mattermost.com/user/Quentin), [rakshit087](https://github.com/rakshit087), [ramiyengar](https://github.com/ramiyengar), [Roy-Orbison](https://github.com/Roy-Orbison), [sadohert](https://github.com/sadohert), [saeid.hmdr](https://translate.mattermost.com/user/saeid.hmdr/), [saeidkh6991](https://github.com/saeidkh6991), [sangramrath](https://github.com/sangramrath), [sarvani1997](https://github.com/sarvani1997), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [serhack](https://github.com/serhack), [shadowshot-x](https://github.com/shadowshot-x), [SharathHuddar](https://github.com/SharathHuddar), [shzmr](https://github.com/shzmr), [sibasankarnayak](https://github.com/sibasankarnayak), [SiderealArt](https://github.com/SiderealArt), [sondv](https://translate.mattermost.com/user/sondv), [spirosoik](https://github.com/spirosoik), [srijit2002](https://github.com/srijit2002), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [teamzamong](https://github.com/teamzamong), [tsabi](https://github.com/tsabi), [valentinrozman](https://github.com/valentinrozman), [varghese.jose](https://translate.mattermost.com/user/varghese.jose), [vicky-demansol](https://github.com/vicky-demansol), [weblate](https://github.com/weblate), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [YairFernando67](https://github.com/YairFernando67), [YoheiZuho](https://github.com/YoheiZuho), [zchezgi](https://github.com/zchezgi), [Zeezee1210](https://github.com/Zeezee1210), [Ziggiz](https://github.com/Ziggiz) +---- + ## Release v6.1 - [Feature Release](/upgrade/release-definitions.html) - **v6.1.3, released 2022-02-03** @@ -908,7 +2733,9 @@ Multiple setting options were added to ``config.json``. Below is a list of the a - For MySQL: ``create index idx_jobs_status_type on Jobs (Status,Type);`` - [Collapsed Reply Threads](/messaging/organizing-conversations.html), available in beta, are known to have a negative impact on server performance. If you cannot easily scale up and tune your database, or if you are running the Mattermost application server and database server on the same machine, we recommended disabling [``ThreadAutoFollow``](/configure/configuration-settings.html#automatically-follow-threads) and [``CollapsedThreads``](/configure/configuration-settings.html#collapsed-reply-threads-beta) until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these [performance considerations here](https://support.mattermost.com/hc/en-us/articles/4413183568276). -**IMPORTANT:** If you upgrade from a release earlier than v6.0, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v6.0, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -1037,7 +2864,9 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [A9u](https://github.com/A9u), [aaronrothschild](https://github.com/aaronrothschild), [abhijit-singh](https://github.com/abhijit-singh), [achie27](https://github.com/achie27), [achromik](https://translate.mattermost.com/user/achromik/), [adithyaakrishna](https://github.com/adithyaakrishna), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alauregaillard](https://github.com/alauregaillard), [alejandrovelez7](https://github.com/alejandrovelez7), [alieh-rymasheuski](https://github.com/alieh-rymasheuski), [aloks98](https://github.com/aloks98), [amyblais](https://github.com/amyblais), [anchepiece](https://github.com/anchepiece), [andrewbrown00](https://github.com/andrewbrown00), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anoopmsivadas](https://github.com/anoopmsivadas), [anurag6713](https://github.com/anurag6713), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [astraldawn](https://github.com/astraldawn), [audreyaudz](https://github.com/audreyaudz), [Audrey Kon](https://github.com/audreyaudz), [Avinaba-Mazumdar](https://github.com/Avinaba-Mazumdar), [avinashlng1080](https://github.com/avinashlng1080), [AWerbrouck](https://github.com/AWerbrouck), [b4sen](https://github.com/b4sen), [banaboi](https://github.com/banaboi), [bartfelder](https://github.com/bartfelder), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [bensiauu](https://github.com/bensiauu), [berkeka](https://github.com/berkeka), [bhaveshgoyal182](https://github.com/bhaveshgoyal182), [Bhavin789](https://github.com/Bhavin789), [Bruno-366](https://github.com/Bruno-366), [calebroseland](https://github.com/calebroseland), [caugner](https://github.com/caugner), [chenilim](https://github.com/chenilim), [chetanyakan](https://github.com/chetanyakan), [chrysillala](https://github.com/chrysillala), [cinlloc](https://github.com/cinlloc), [cleferman](https://github.com/cleferman), [cognvn](https://github.com/cognvn), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [craph](https://github.com/craph), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [darkLord19](https://github.com/darkLord19), [DarshanKansara2015](https://github.com/DarshanKansara2015), [deanwhillier](https://github.com/deanwhillier), [DeeJayBro](https://github.com/DeeJayBro), [devinbinnie](https://github.com/devinbinnie), [dialvarezs](https://github.com/dialvarezs), [dimitraz](https://github.com/dimitraz), [dizlv](https://github.com/dizlv), [donno2048](https://github.com/donno2048), [drobiu](https://github.com/drobiu), [Duaard](https://github.com/Duaard), [echobash](https://github.com/echobash), [elyscape](https://github.com/elyscape), [emdecr](https://github.com/emdecr), [emilyacook](https://github.com/emilyacook), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [EranKricheli](https://github.com/EranKricheli), [erezo9](https://github.com/erezo9), Erik Pfeiffer, [esethna](https://github.com/esethna), [fareskalaboud](https://github.com/fareskalaboud), [fcoiuri](https://github.com/fcoiuri), [firasm](https://github.com/firasm), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gagandeepp](https://github.com/gagandeepp), [garanews](https://github.com/garanews), [gaurav-baghel](https://github.com/gaurav-baghel), [Gauravsaha-97](https://github.com/Gauravsaha-97), [GianOrtiz](https://github.com/GianOrtiz), [gigawhitlocks](https://github.com/gigawhitlocks), [gpt14](https://github.com/gpt14), [grsky360](https://github.com/grsky360), [gupsho](https://github.com/gupsho), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [Hard-Coder05](https://github.com/Hard-Coder05), [harshilsharma63](https://github.com/harshilsharma63), [hmhealey](https://github.com/hmhealey), [Hridoy-31](https://github.com/Hridoy-31), [iamquang95](https://github.com/iamquang95), [icelander](https://github.com/icelander), [igordsm](https://github.com/igordsm), [im-endangered](https://github.com/im-endangered), [iomodo](https://github.com/iomodo), [iOSGeekster](https://github.com/iOSGeekster), [isacikgoz](https://github.com/isacikgoz), [jamiehurewitz](https://github.com/jamiehurewitz), [Jasmin F](https://github.com/jasmezz), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [JenyaFTW](https://github.com/JenyaFTW), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jlram](https://github.com/jlram), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [joremysh](https://github.com/joremysh), [josephbaylon](https://github.com/josephbaylon), [joshalling](https://github.com/joshalling), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kaitrin](https://github.com/kaitrin), [kamre](https://github.com/kamre), [kanitmann](https://github.com/kanitmann), [KavyaJaiswal](https://github.com/KavyaJaiswal), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [korvmoij](https://translate.mattermost.com/user/korvmoij/), [krmh04](https://github.com/krmh04), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [leosunmo](https://github.com/leosunmo), [levb](https://github.com/levb), [lex111](https://github.com/lex111), [lieut-data](https://github.com/lieut-data), [lindy65](https://github.com/lindy65), [lonnelars](https://github.com/lonnelars), [LSantos06](https://github.com/LSantos06), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majo](https://translate.mattermost.com/user/majo/), [maknop](https://github.com/maknop), [marcvelasco](https://github.com/marcvelasco), [marianunez](https://github.com/marianunez), [Mark E Fuller](https://github.com/mefuller), [Markus Hermann](https://github.com/MarHerUMR), [maruTA-bis5](https://github.com/maruTA-bis5), [master7](https://translate.mattermost.com/user/master7/), [mathiasvr](https://github.com/mathiasvr), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [Matthew Williams](https://github.com/matthew-w), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [michizhou](https://github.com/michizhou), [mickmister](https://github.com/mickmister), [mishmanners](https://github.com/mishmanners), [mjnagel](https://github.com/mjnagel), [mkraft](https://github.com/mkraft), [mohitsaxenaknoldus](https://github.com/mohitsaxenaknoldus), [Mshahidtaj](https://github.com/Mshahidtaj), [NakulChauhan2001](https://github.com/NakulChauhan2001), [naltang](https://github.com/naltang), [namreg](https://github.com/namreg), [naresh1205](https://github.com/naresh1205), [nathanaelhoun](https://github.com/nathanaelhoun), [neallred](https://github.com/neallred), [NeroBurner](https://github.com/NeroBurner), [nevyangelova](https://github.com/nevyangelova), [ngmmartins](https://github.com/ngmmartins), [nishantwrp](https://github.com/nishantwrp), [noviicee](https://github.com/noviicee), [ogi-m](https://github.com/ogi-m), [pablovelezvidal](https://github.com/pablovelezvidal), [pascalhein](https://github.com/pascalhein), [pawankm21](https://github.com/pawankm21), [penthaapatel](https://github.com/penthaapatel), [Phrynobatrachus](https://github.com/Phrynobatrachus), [pikami](https://github.com/pikami), [pjenicot](https://github.com/pjenicot), [poflankov](https://github.com/poflankov), [prabhigupta](https://github.com/prabhigupta), [prakharporwal](https://github.com/prakharporwal), [prapti](https://github.com/prapti), [Privatecoder](https://github.com/Privatecoder), [prograde](https://translate.mattermost.com/user/prograde/), [puerco](https://github.com/puerco), [radiantly](https://github.com/radiantly), [rafaeelaudibert](https://github.com/rafaeelaudibert), [Ray0Emma](https://github.com/Ray0Emma), [rbradleyhaas](https://github.com/rbradleyhaas), [rootbid](https://github.com/rootbid), [Roy-Orbison](https://github.com/Roy-Orbison), [rutulganatra](https://github.com/rutulganatra), [s4kh](https://github.com/s4kh), [sadohert](https://github.com/sadohert), [sahil9001](https://github.com/sahil9001), [sakaitsu](https://github.com/sakaitsu), [sangramrath](https://github.com/sangramrath), [sanjaydemansol](https://github.com/sanjaydemansol), [sapora1](https://github.com/sapora1), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [seoyeongeun](https://github.com/seoyeongeun), [shadowshot-x](https://github.com/shadowshot-x), [shazm](https://github.com/shazm), [shinnlok](https://github.com/shinnlok), [shzmr](https://github.com/shzmr), [sibasankarnayak](https://github.com/sibasankarnayak), [spinales](https://github.com/spinales), [spirosoik](https://github.com/spirosoik), [srijit2002](https://github.com/srijit2002), [ssensalo](https://github.com/ssensalo), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [syauqy](https://github.com/syauqy), [Szymongib](https://github.com/Szymongib), [TautZuk](https://github.com/TautZuk), [teamzamong](https://translate.mattermost.com/user/teamzamong/), [TheLaw1337](https://github.com/TheLaw1337), [tiago154](https://github.com/tiago154), [triogempar](https://github.com/triogempar), [tsabi](https://github.com/tsabi), [ucyang](https://github.com/ucyang), [vblz](https://github.com/vblz), [vinod-demansol](https://github.com/vinod-demansol), [void-hr](https://github.com/void-hr), [weblate](https://github.com/weblate), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xMicky24GIT](https://github.com/xMicky24GIT), [yeongeun.seo](https://github.com/seoyeongeun), [ZeeshanAmjad0495](https://github.com/ZeeshanAmjad0495), [Zeezee1210](https://github.com/Zeezee1210), [zefhemel](https://github.com/zefhemel), [zolikonta](https://github.com/zolikonta), [zulmarij](https://github.com/zulmarij) - + +---- + ## Release v6.0 - [Feature Release](/upgrade/release-definitions.html) - **v6.0.4, released 2021-12-17** @@ -1116,7 +2945,9 @@ Multiple setting options were added to ``config.json``. Below is a list of the a - Converted the "Executables" field in the plugin manifest to a map. - [Collapsed Reply Threads](/messaging/organizing-conversations.html), available in beta, are known to have a negative impact on server performance. If you cannot easily scale up and tune your database, or if you are running the Mattermost application server and database server on the same machine, we recommended disabling [``ThreadAutoFollow``](/configure/configuration-settings.html#automatically-follow-threads) and [``CollapsedThreads``](/configure/configuration-settings.html#collapsed-reply-threads-beta) until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these [performance considerations here](https://support.mattermost.com/hc/en-us/articles/4413183568276). -**IMPORTANT:** If you upgrade from a release earlier than v5.39, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.39, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -1332,6 +3163,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [alieh-rymasheuski](https://github.com/alieh-rymasheuski), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [arpit1912](https://github.com/arpit1912), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [ashutoshpw](https://github.com/ashutoshpw), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [BoFFire](https://github.com/BoFFire), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [cjmartian](https://github.com/cjmartian), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [CuriousCorrelation](https://github.com/CuriousCorrelation), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [darkLord19](https://github.com/darkLord19), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [dihmuzikien](https://github.com/dihmuzikien), [Duaard](https://github.com/Duaard), [emilyacook](https://github.com/emilyacook), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [himanshu007-creator](https://github.com/himanshu007-creator), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [itao](https://github.com/itao), [ivernus](https://github.com/ivernus), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [JtheBAB](https://github.com/JtheBAB), [jtwillis92](https://github.com/jtwillis92), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [KobeBergmans](https://github.com/KobeBergmans), [koox00](https://github.com/koox00), [krmh04](https://github.com/krmh04), [krutarththakkar](https://github.com/krutarththakkar), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majidsajadi](https://github.com/majidsajadi), [marianunez](https://github.com/marianunez), [matthewbirtch](https://github.com/matthewbirtch), [matthew.williams](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mikhailrimashevski](https://github.com/mikhailrimashevski), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [Mshahidtaj](https://github.com/Mshahidtaj), [neallred](https://github.com/neallred), [neflyte](https://github.com/neflyte), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [pablovelezvidal](https://github.com/pablovelezvidal), [petrmifek](https://github.com/petrmifek), [poflankov](https://github.com/poflankov), [puerco](https://github.com/puerco), [rbradleyhaas](https://github.com/rbradleyhaas), [Rina-dsg](https://github.com/Rina-dsg), [rodcorsi](https://github.com/rodcorsi), [Rutam21](https://github.com/Rutam21), [sadohert](https://github.com/sadohert), [sakaitsu](https://translate.mattermost.com/user/sakaitsu/), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [shazm](https://github.com/shazm), [sibasankarnayak](https://github.com/sibasankarnayak), [spirosoik](https://github.com/spirosoik), [sshiv5768](https://github.com/sshiv5768), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [thePanz](https://github.com/thePanz), [tsabi](https://translate.mattermost.com/user/tsabi/), [vadimasadchi](https://github.com/vadimasadchi), [vinod-demansol](https://github.com/vinod-demansol), [Westacular](https://github.com/Westacular), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yedamao](https://github.com/yedamao), [Zeezee1210](https://github.com/Zeezee1210), [zefhemel](https://github.com/zefhemel) +---- + ## Release v5.39 - [Quality Release](/upgrade/release-definitions.html#quality-release) - **v5.39.3, released 2021-12-17** @@ -1437,6 +3270,8 @@ The following deprecations are planned for the Mattermost v6.0 release, which is ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [adammorawski1](https://github.com/adammorawski1), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amirmoyousefi](https://github.com/amirmoyousefi), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [anurag6713](https://github.com/anurag6713), [arjitc](https://github.com/arjitc), [ArmanChand](https://github.com/ArmanChand), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [asimsedhain](https://github.com/asimsedhain), [aspleenic](https://github.com/aspleenic), [BenCookie95](https://github.com/BenCookie95), [BenLloydPearson](https://github.com/BenLloydPearson), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [chitramdasgupta](https://github.com/chitramdasgupta), [cobenash](https://github.com/cobenash), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cvockrodt](https://github.com/cvockrodt), [cwarnermm](https://github.com/cwarnermm), [dbpolito](https://github.com/dbpolito), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [DeviousLab](https://github.com/DeviousLab), [DjMagicFingers](https://github.com/DjMagicFingers), [Duaard](https://github.com/Duaard), [elyscape](https://github.com/elyscape), [emilyacook](https://github.com/emilyacook), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [engineereng](https://github.com/engineereng), [ewwollesen](https://github.com/ewwollesen), [fksu](https://github.com/fksu), [flynbit](https://github.com/flynbit), [Francois-D](https://github.com/Francois-D), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gozeloglu](https://github.com/gozeloglu), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haalcala](https://github.com/haalcala), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [ivanaairenee](https://github.com/ivanaairenee), [jadrales](https://github.com/jadrales), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [JtheBAB](https://github.com/JtheBAB), [jufab](https://github.com/jufab), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [KobeBergmans](https://github.com/KobeBergmans), [koox00](https://github.com/koox00), [krutarththakkar](https://github.com/krutarththakkar), [kscheel](https://github.com/kscheel), [larkox](https://github.com/larkox), [LauSam09](https://github.com/LauSam09), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majidsajadi](https://github.com/majidsajadi), [maliur](https://github.com/maliur), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [mattermod](https://github.com/mattermod), [matthewbirtch](https://github.com/matthewbirtch), [matthew.williams](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mmskv](https://github.com/mmskv), [mrckndt](https://github.com/mrckndt), [Mshahidtaj](https://github.com/Mshahidtaj), [nat-gunner](https://github.com/nat-gunner), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [nikolaizah](https://github.com/nikolaizah), [Nog-Frog](https://github.com/Nog-Frog), [pablovelezvidal](https://github.com/pablovelezvidal), [Prassud](https://github.com/Prassud), [rbradleyhaas](https://github.com/rbradleyhaas), [redrru](https://github.com/redrru), [rodcorsi](https://github.com/rodcorsi), [roopakv](https://github.com/roopakv), [rrey](https://github.com/rrey), [Rutam21](https://github.com/Rutam21), [sakaitsu](https://translate.mattermost.com/user/sakaitsu/), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [Shahzayb](https://github.com/Shahzayb), [Shaz-25](https://github.com/Shaz-25), [sibasankarnayak](https://github.com/sibasankarnayak), [sonereker](https://github.com/sonereker), [spirosoik](https://github.com/spirosoik), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [talesmc](https://github.com/talesmc), [thePanz](https://github.com/thePanz), [tsabi](https://translate.mattermost.com/user/tsabi/), [VA2XJM](https://github.com/VA2XJM), [vadimasadchi](https://github.com/vadimasadchi), [vinod-demansol](https://github.com/vinod-demansol), [wget](https://github.com/wget), [WietseWind](https://github.com/WietseWind), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yedamao](https://github.com/yedamao), [YJSoft](https://github.com/YJSoft), [zefhemel](https://github.com/zefhemel), [Ziggiz](https://github.com/Ziggiz) +---- + ## Release v5.38 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.38.4, released 2021-11-15** @@ -1461,7 +3296,9 @@ Mattermost v5.38.0 contains low to medium level security fixes. [Upgrading](/adm - v5.38 adds fixes for some of the incorrect mention counts and unreads around threads and channels since the introduction of Collapsed Reply Threads (Beta). This fix is done through a SQL migration, and it may take several minutes to complete for large databases. The ``fixCRTChannelMembershipCounts`` fix takes 1 minute and 20 seconds for a database containing approximately 4 million channel memberships and about 130,000 channels. The ``fixCRTThreadCountsAndUnreads`` fix takes about 3 minutes and 30 seconds for a database containing 56367 threads, 124587 thread memberships, and 220801 channel memberships. These are on MySQL v5.6.51. - Focalboard v0.8.2 (released with Mattermost v5.38.0) requires Mattermost v5.37+ due to the new database connection system. -**IMPORTANT:** If you upgrade from a release earlier than v5.37, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.37, please read the other [Important Upgrade Notes](/upgrade/important-upgrade-notes.html). +``` ### Highlights @@ -1595,6 +3432,8 @@ The following deprecations are planned for the Mattermost v6.0 release, which is ### Contributors - [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [aileenpalafox](https://github.com/aileenpalafox), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [arjitc](https://github.com/arjitc), [arvinDarmawan](https://github.com/arvinDarmawan), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [aspleenic](https://github.com/aspleenic), [avinashlng1080](https://github.com/avinashlng1080), [bakurits](https://github.com/bakurits), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [calebroseland](https://github.com/calebroseland), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [cognvn](https://github.com/cognvn), [colorfusion](https://github.com/colorfusion), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [darkLord19](https://github.com/darkLord19), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [ditsemto](https://github.com/ditsemto), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [engineereng](https://github.com/engineereng), [esethna](https://github.com/esethna), [evelikov](https://github.com/evelikov), [ewwollesen](https://github.com/ewwollesen), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gbonnefille](https://github.com/gbonnefille), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [hackercat3211](https://github.com/hackercat3211), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [Konghuy](https://github.com/Konghuy), [koox00](https://github.com/koox00), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lordinkavu](https://github.com/lordinkavu), [lynn915](https://github.com/lynn915), [madhavhugar](https://github.com/madhavhugar), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majidsajadi](https://github.com/majidsajadi), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [matthewbirtch](https://github.com/matthewbirtch), [matthew.williams](https://translate.mattermost.com/user/matthew-w/), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mrckndt](https://github.com/mrckndt), [Mshahidtaj](https://github.com/Mshahidtaj), [N3rdP1um23](https://github.com/N3rdP1um23), [nat-gunner](https://github.com/nat-gunner), [natalie-hub](https://github.com/natalie-hub), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [nickboldt](https://github.com/nickboldt), [nickmisasi](https://github.com/nickmisasi), [nika-begiashvili](https://github.com/nika-begiashvili), [nikolaizah](https://github.com/nikolaizah), [ogi-m](https://github.com/ogi-m), [oh6hay](https://github.com/oh6hay), [pablovelezvidal](https://github.com/pablovelezvidal), [papanireal](https://github.com/papanireal), [petrmifek](https://github.com/petrmifek), [Pezhvak](https://github.com/Pezhvak), [robinmetral](https://github.com/robinmetral), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [sakaitsu](https://translate.mattermost.com/user/sakaitsu/), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [source-punk](https://github.com/source-punk), [stafot](https://github.com/stafot), [stevemudie](https://github.com/stevemudie), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [thePanz](https://github.com/thePanz), [thierrymarianne](https://github.com/thierrymarianne), [tronginc](https://github.com/tronginc), [tsabi](https://translate.mattermost.com/user/tsabi/), [VA2XJM](https://github.com/VA2XJM), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xlanor](https://github.com/xlanor), [xuanvi26](https://github.com/xuanvi26), [yedamao](https://github.com/yedamao), [zefhemel](https://github.com/zefhemel) +---- + ## Release v5.37 - [Extended Support Release](/administration/extended-support-release.html) - **5.37.10, released 2022-08-31** @@ -1653,7 +3492,9 @@ The following deprecations are planned for the Mattermost v6.0 release, which is - Support for Mattermost Server v5.31 [Extended Support Release](/administration/extended-support-release.html) will come to the end of its life cycle on October 15, 2021. Upgrading to Mattermost Server v5.37 or later is required. - [Collapsed Reply Threads](/messaging/organizing-conversations.html), available in beta, are known to have a negative impact on server performance. If you cannot easily scale up and tune your database, or if you are running the Mattermost application server and database server on the same machine, we recommended disabling [``ThreadAutoFollow``](/configure/configuration-settings.html#automatically-follow-threads) and [``CollapsedThreads``](/configure/configuration-settings.html#collapsed-reply-threads-beta) until Collapsed Reply Threads is promoted to general availability in Q2 2022. Learn more about these [performance considerations here](https://support.mattermost.com/hc/en-us/articles/4413183568276). -**IMPORTANT:** If you upgrade from a release earlier than v5.36, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.36, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -1779,6 +3620,8 @@ The following deprecations are planned for the Mattermost v6.0 release, which is ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [Aashimalik](https://github.com/Aashimalik), [Adovenmuehle](https://github.com/Adovenmuehle), [aedott](https://github.com/aedott), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [ahmadkarlam](https://github.com/ahmadkarlam), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [arvinDarmawan](https://github.com/arvinDarmawan), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AshishDhama](https://github.com/AshishDhama), [aspleenic](https://github.com/aspleenic), [balan2010](https://github.com/balan2010), [BenCookie95](https://github.com/BenCookie95), [berkeka](https://github.com/berkeka), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [cedricziel](https://github.com/cedricziel), [chenilim](https://github.com/chenilim), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [cognvn](https://github.com/cognvn), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [danielsischy](https://github.com/danielsischy), [darkLord19](https://github.com/darkLord19), [dbpolito](https://github.com/dbpolito), [devinbinnie](https://github.com/devinbinnie), [elsiehupp](https://github.com/elsiehupp), [elyscape](https://github.com/elyscape), [emilyacook](https://github.com/emilyacook), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [EugenMayer](https://github.com/EugenMayer), [ewwollesen](https://github.com/ewwollesen), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hason](https://github.com/hason), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [itao](https://github.com/itao), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jayaddison-collabora](https://github.com/jayaddison-collabora), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [JoelRummel](https://github.com/JoelRummel), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jplda23](https://github.com/jplda23), [jprusch](https://github.com/jprusch), [jufab](https://github.com/jufab), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kamre](https://github.com/kamre), [kayazeren](https://github.com/kayazeren), [koox00](https://github.com/koox00), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [madhavhugar](https://github.com/madhavhugar), [maisnamrajusingh](https://github.com/maisnamrajusingh), [majidsajadi](https://github.com/majidsajadi), [manojmalik20](https://github.com/manojmalik20), [matheusmosca](https://github.com/matheusmosca), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [maxerenberg](https://github.com/maxerenberg), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [moussetc](https://github.com/moussetc), [MrLemur](https://github.com/MrLemur), [msal4](https://github.com/msal4), [MusiCode1](https://github.com/MusiCode1), [naderm11](https://github.com/naderm11), [neallred](https://github.com/neallred), [nevyangelova](https://github.com/nevyangelova), [ogi-m](https://github.com/ogi-m), [pablovelezvidal](https://github.com/pablovelezvidal), [parsaakbari1209](https://github.com/parsaakbari1209), [prakharporwal](https://github.com/prakharporwal), [prathers](https://github.com/prathers), [rbradleyhaas](https://github.com/rbradleyhaas), [rodcorsi](https://github.com/rodcorsi), [rohit1101](https://github.com/rohit1101), [sadohert](https://github.com/sadohert), [sakaitsu](https://github.com/sakaitsu), [saturninoabril](https://github.com/saturninoabril), [Sayanta66](https://github.com/Sayanta66), [sbishel](https://github.com/sbishel), [senylove1403](https://github.com/senylove1403), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [teresa-novoa](https://github.com/teresa-novoa), [thePanz](https://github.com/thePanz), [tsabi](https://translate.mattermost.com/user/tsabi), [txeli](https://github.com/txeli), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yulyanaR](https://github.com/yulyanaR) +---- + ## Release v5.36 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.36.2, released 2021-08-04** @@ -1794,7 +3637,9 @@ Mattermost v5.36.0 contains a high level security fix. [Upgrading](/administrati ### Important Upgrade Notes - Gossip clustering mode is now in General Availability and is no longer available as an option. All cluster traffic will always use the gossip protocol. The config setting ``UseExperimentalGossip`` has no effect and has only been kept for compatibility purposes. The setting to use gossip has been removed from the System Console. **Note:** For High Availability upgrades, all nodes in the cluster must use a single protocol. If an existing system is not currently using gossip, one node in a cluster can't be upgraded while other nodes in the cluster use an older version. Customers must either use gossip for their High Availability upgrade, or customers must shut down all nodes, perform the upgrade, and then bring all nodes back up. -**IMPORTANT:** If you upgrade from a release earlier than v5.35, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.35, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -1956,6 +3801,8 @@ The following deprecations are planned for the Mattermost v6.0 release, which is ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [abdulsmapara](https://github.com/abdulsmapara), [adamjclarkson](https://github.com/adamjclarkson), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [avasconcelos114](https://github.com/avasconcelos114), [avddvd](https://github.com/avddvd), [awerries](https://github.com/awerries), [bbodenmiller](https://github.com/bbodenmiller), [bbuehrle](https://github.com/bbuehrle), [bradjcoughlin](https://github.com/bradjcoughlin), [cadavre](https://github.com/cadavre), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [CEOehis](https://github.com/CEOehis), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [craigwillis-mm](https://github.com/craigwillis-mm), [craph](https://github.com/craph), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [dantepippi](https://github.com/dantepippi), [dbejanishvili](https://github.com/dbejanishvili), [devinbinnie](https://github.com/devinbinnie), [ejose19](https://github.com/ejose19), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [ewwollesen](https://github.com/ewwollesen), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [FlaviaBastos](https://github.com/FlaviaBastos), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [funkytwig](https://github.com/funkytwig), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gnello](https://github.com/gnello), [GrigalashviliT](https://github.com/GrigalashviliT), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [hzeroo](https://github.com/hzeroo), [ialorro](https://github.com/ialorro), [iamsayantan](https://github.com/iamsayantan), [ikeohachidi](https://github.com/ikeohachidi), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jprusch](https://github.com/jprusch), [JtheBAB](https://github.com/JtheBAB), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [kosgrz](https://github.com/kosgrz), [l0r3zz](https://github.com/l0r3zz), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [liusy182](https://github.com/liusy182), [lynn915](https://github.com/lynn915), [maciejnems](https://github.com/maciejnems), [marianunez](https://github.com/marianunez), [mbecca](https://github.com/mbecca), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mterhar](https://github.com/mterhar), [nadalfederer](https://github.com/nadalfederer), [NassimBounouas](https://github.com/NassimBounouas), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [pankajhirway](https://github.com/pankajhirway), [petya-v](https://github.com/petya-v), [pradeepmurugesan](https://github.com/pradeepmurugesan), [prapti](https://github.com/prapti), [psy-q](https://github.com/psy-q), [Qujja](https://github.com/Qujja), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [sakaitsu](https://github.com/sakaitsu), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shibasisp](https://github.com/shibasisp), [Shivam010](https://github.com/Shivam010), [shred86](https://github.com/shred86), [spirosoik](https://github.com/spirosoik), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [thefactremains](https://github.com/thefactremains), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [ThiefMaster](https://github.com/ThiefMaster), [tomasmik](https://github.com/tomasmik), [tsabi](https://translate.mattermost.com/user/tsabi), [uhlhosting](https://github.com/uhlhosting), [vesari](https://github.com/vesari), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.35 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.35.5, released 2021-08-04** @@ -1985,7 +3832,9 @@ Mattermost v5.35.0 contains low and medium level security fixes. [Upgrading](/ad - The existing password generation logic used during the bulk user import process was comparatively weak. Hence it's advised for admins to immediately reset the passwords for all the users who were generated during the bulk import process and whose password has not been changed even once. - In the v5.38 release (August 16, 2021), we will deprecate "config watcher" (the mechanism that automatically reloads the ``config.json file``), in favor of an mmctl command that will need to be run to apply configuration changes after they are made. This change will improve configuration performance and robustness. -**IMPORTANT:** If you upgrade from a release earlier than v5.34, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.34, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -2097,6 +3946,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [Adovenmuehle](https://github.com/Adovenmuehle), [aedott](https://github.com/aedott), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [albatrosef](https://github.com/albatrosef), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [arvinDarmawan](https://github.com/arvinDarmawan), [asaadmahmood](https://github.com/asaadmahmood), [avinashdhinwa](https://github.com/avinashdhinwa), [bbodenmiller](https://github.com/bbodenmiller), [benarent](https://github.com/benarent), [BenCookie95](https://github.com/BenCookie95), [BharatKalluri](https://github.com/BharatKalluri), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chenilim](https://github.com/chenilim), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [chrisfromredfin](https://github.com/chrisfromredfin), [codingthat](https://github.com/codingthat), [coltoneshaw](https://github.com/coltoneshaw), [courtneypattison](https://github.com/courtneypattison), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [darkLord19](https://github.com/darkLord19), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [elyscape](https://github.com/elyscape), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [EricMontague](https://github.com/EricMontague), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gea-ecobricks](https://github.com/gea-ecobricks), [gigawhitlocks](https://github.com/gigawhitlocks), [girish17](https://github.com/girish17), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [Hampusholmstrom](https://github.com/Hampusholmstrom), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hastadhana](https://github.com/hastadhana), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [IndushaS](https://github.com/IndushaS), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jecepeda](https://github.com/jecepeda), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [JoelRummel](https://github.com/JoelRummel), [Johennes](https://github.com/Johennes), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [komik966](https://github.com/komik966), [larkox](https://github.com/larkox), [leblanc-simon](https://github.com/leblanc-simon), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [majidsajadi](https://github.com/majidsajadi), [manojmalik20](https://github.com/manojmalik20), [marianunez](https://github.com/marianunez), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [maxerenberg](https://github.com/maxerenberg), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [microolapshare](https://github.com/microolapshare), [migbot](https://github.com/migbot), [mjnagel](https://github.com/mjnagel), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mrckndt](https://github.com/mrckndt), [muratbayan](https://github.com/muratbayan), [natalie-hub](https://github.com/natalie-hub), [Ndawakh](https://github.com/Ndawakh), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [ogi-m](https://github.com/ogi-m), [pablovelezvidal](https://github.com/pablovelezvidal), [prapti](https://github.com/prapti), [qunabu](https://github.com/qunabu), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [sakaitsu](https://github.com/sakaitsu), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shazm](https://github.com/shazm), [signalwerk](https://github.com/signalwerk), [spirosoik](https://github.com/spirosoik), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [Szymongib](https://github.com/Szymongib), [teresa-novoa](https://github.com/teresa-novoa), [thebestwj](https://github.com/thebestwj), [TheDarkestDay](https://github.com/TheDarkestDay), [thePanz](https://github.com/thePanz), [uhlhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xlanor](https://github.com/xlanor), [yashjohar](https://github.com/yashjohar), [YJSoft](https://github.com/YJSoft), [YoheiZuho](https://github.com/YoheiZuho), [zefhemel](https://github.com/zefhemel), [ziprandom](https://github.com/ziprandom), [Zukerherr](https://github.com/Zukerherr) +---- + ## Release v5.34 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.34.5, released 2021-06-21** @@ -2200,6 +4051,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors [abdullahceylan](https://github.com/abdullahceylan), [aconitumnapellus](https://github.com/aconitumnapellus), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [aggmoulik](https://github.com/aggmoulik), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [appleboy](https://github.com/appleboy), [asaadmahmood](https://github.com/asaadmahmood), [asimsedhain](https://github.com/asimsedhain), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [berkeka](https://github.com/berkeka), [BharatKalluri](https://github.com/BharatKalluri), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chenilim](https://github.com/chenilim), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [christian-lim](https://github.com/christian-lim), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [Crimson-riot](https://github.com/Crimson-riot), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [CyrilLD](https://github.com/CyrilLD), [danielsischy](https://github.com/danielsischy), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [ebati](https://github.com/ebati), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [firasm](https://github.com/firasm), [flexo3001](https://github.com/flexo3001), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [haonm](https://github.com/haonm), [hastadhana](https://github.com/hastadhana), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ianatha](https://github.com/ianatha), [icelander](https://github.com/icelander), [IndushaS](https://github.com/IndushaS), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jamiehurewitz](https://github.com/jamiehurewitz), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jbutler992](https://github.com/jbutler992), [jbutlerdev](https://github.com/jbutlerdev), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jials](https://github.com/jials), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jp0707](https://github.com/jp0707), [JtheBAB](https://github.com/JtheBAB), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [larkox](https://github.com/larkox), [lawrencejohnson](https://github.com/lawrencejohnson), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lucievr](https://github.com/lucievr), [lutfuahmet](https://github.com/lutfuahmet), [Maekes](https://github.com/Maekes), [mahmud2011](https://github.com/mahmud2011), [mantlecurve](https://github.com/mantlecurve), [matt-w99](https://github.com/matt-w99), [matthewbirtch](https://github.com/matthewbirtch), [maxerenberg](https://github.com/maxerenberg), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [microolapshare](https://github.com/microolapshare), [migbot](https://github.com/migbot), [minecraftchest1](https://github.com/minecraftchest1), [mistikel](https://github.com/mistikel), [mkdbns](https://github.com/mkdbns), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mrtpcet](https://github.com/mrtpcet), [msal4](https://github.com/msal4), [Mshahidtaj](https://github.com/Mshahidtaj), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nronas](https://github.com/nronas), [ogi-m](https://github.com/ogi-m), [opr77](https://github.com/opr77), [pablovelezvidal](https://github.com/pablovelezvidal), [pat-s](https://github.com/pat-s), [phntom](https://github.com/phntom), [pidgelar](https://github.com/pidgelar), [potatogim](https://github.com/potatogim), [prapti](https://github.com/prapti), [Prescise](https://github.com/Prescise), [proffalken](https://github.com/proffalken), [r-52](https://github.com/r-52), [rakhi2104](https://github.com/rakhi2104), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [renjithgr](https://github.com/renjithgr), [rodcorsi](https://github.com/rodcorsi), [saf6260](https://github.com/saf6260), [sakaitsu](https://github.com/sakaitsu), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shazm](https://github.com/shazm), [spirosoik](https://github.com/spirosoik), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [thePanz](https://github.com/thePanz), [toto6038](https://github.com/toto6038), [tsabi](https://github.com/tsabi), [uhlhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xlanor](https://github.com/xlanor), [YoheiZuho](https://github.com/YoheiZuho), [youtsumi](https://github.com/youtsumi), [zefhemel](https://github.com/zefhemel), [Zukerherr](https://github.com/Zukerherr) +---- + ## Release v5.33 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.33.5, released 2021-06-11** @@ -2225,7 +4078,9 @@ Mattermost v5.33.0 contains low-level security fixes. [Upgrading](/administratio - Deleting a reaction is now a soft delete in the ``Reactions`` table. A schema update is required and may take up to 15 seconds on first run with large data sets. - WebSocket handshakes done with an HTTP version lower than 1.1 will result in a warning, and the server will transparently upgrade the version to 1.1 to comply with the WebSocket RFC. This is done to work around incorrect Nginx (and other proxy) configs that do not set the ``proxy_http_version`` directive to 1.1. This facility will be removed in a future Mattermost version. It is strongly recommended to fix the proxy configuration to correctly use the WebSocket protocol. -**IMPORTANT:** If you upgrade from a release earlier than v5.32, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.32, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -2341,6 +4196,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors [a-c-sreedhar-reddy](https://github.com/a-c-sreedhar-reddy), [aaronrothschild](https://github.com/aaronrothschild), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [Ampit](https://github.com/Ampit), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [anurag6713](https://github.com/anurag6713), [arjunagl](https://github.com/arjunagl), [ashishbhate](https://github.com/ashishbhate), [aspleenic](https://github.com/aspleenic), [BenCookie95](https://github.com/BenCookie95), [berkeka](https://github.com/berkeka), [bjorge82](https://github.com/bjorge82), [calebroseland](https://github.com/calebroseland), [carantunes](https://github.com/carantunes), [catalintomai](https://github.com/catalintomai), [chenilim](https://github.com/chenilim), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cupakob](https://github.com/cupakob), [cwarnermm](https://github.com/cwarnermm), [daniron26](https://github.com/daniron26), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [DSchalla](https://github.com/DSchalla), [elyscape](https://github.com/elyscape), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harryfromwork](https://github.com/harryfromwork), [hectorskypl](https://github.com/hectorskypl), [helios1101](https://github.com/helios1101), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [IndushaS](https://github.com/IndushaS), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jatinjtg](https://github.com/jatinjtg), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [jomaxro](https://github.com/jomaxro), [josephbaylon](https://github.com/josephbaylon), [jp0707](https://github.com/jp0707), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kashifsoofi](https://github.com/kashifsoofi), [kayazeren](https://github.com/kayazeren), [kojiGit55](https://github.com/kojiGit55), [komik966](https://github.com/komik966), [koox00](https://github.com/koox00), [kristinakvn](https://github.com/kristinakvn), [larkox](https://github.com/larkox), [LauSam09](https://github.com/LauSam09), [lawrencejohnson](https://github.com/lawrencejohnson), [Leats](https://github.com/Leats), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lucievr](https://github.com/lucievr), [lynn915](https://github.com/lynn915), [mahmud2011](https://github.com/mahmud2011), [matthewbirtch](https://github.com/matthewbirtch), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [natalie-hub](https://github.com/natalie-hub), [neilharris123](https://github.com/neilharris123), [nevyangelova](https://github.com/nevyangelova), [nronas](https://github.com/nronas), [nurefexc](https://github.com/nurefexc), [ogi-m](https://github.com/ogi-m), [onoklin](https://github.com/onoklin), [pablovelezvidal](https://github.com/pablovelezvidal), [petermcj](https://github.com/petermcj), [Quaqmre](https://github.com/Quaqmre), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [saf6260](https://github.com/saf6260), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [SezalAgrawal](https://github.com/SezalAgrawal), [SimonSimonB](https://github.com/SimonSimonB), [Soriyyx](https://github.com/Soriyyx), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [Szymongib](https://github.com/Szymongib), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [ultra1394](https://github.com/ultra1394), [vpecinka](https://github.com/vpecinka), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak) +---- + ## Release v5.32 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.32.1, released 2021-02-17** @@ -2359,7 +4216,9 @@ Mattermost v5.32.0 contains low level security fixes. [Upgrading](/administratio - Breaking changes to the Golang client API were introduced: ``GetPostThread``, ``GetPostsForChannel``, ``GetPostsSince``, ``GetPostsAfter``, ``GetPostsBefore``, and ``GetPostsAroundLastUnread`` now require an additional collapsedThreads parameter to be passed. Any client making use of these functions will need to update them when upgrading its dependencies. - [A breaking change was introduced when upgrading the Go version to v1.15.5](https://golang.org/doc/go1.15#commonname) where user logins fail with AD/LDAP Sync when the certificate of the LDAP Server has no Subject Alternative Name (SAN) in it. Creating a new certificate on the AD/LDAP Server with the SAN inside fixes this. -**IMPORTANT:** If you upgrade from a release earlier than v5.31, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.31, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -2458,6 +4317,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors [aaronrothschild](https://github.com/aaronrothschild), [Aeiyko](https://github.com/Aeiyko), [aeomin](https://github.com/aeomin), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [Ampit](https://github.com/Ampit), [amwolff](https://github.com/amwolff), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [antwigambrah](https://github.com/antwigambrah), [anurag6713](https://github.com/anurag6713), [arjunagl](https://github.com/arjunagl), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [aspleenic](https://github.com/aspleenic), [Ayanrocks](https://github.com/Ayanrocks), [balan2010](https://github.com/balan2010), [bbodenmiller](https://github.com/bbodenmiller), [BenCookie95](https://github.com/BenCookie95), [ByeongsuPark](https://github.com/ByeongsuPark), [camgraff](https://github.com/camgraff), [chenilim](https://github.com/chenilim), [chikei](https://github.com/chikei), [chrisfromredfin](https://github.com/chrisfromredfin), [coltoneshaw](https://github.com/coltoneshaw), [compiledsound](https://github.com/compiledsound), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [darkLord19](https://github.com/darkLord19), [deanwhillier](https://github.com/deanwhillier), [devinbinnie](https://github.com/devinbinnie), [dmpichugin](https://github.com/dmpichugin), [ebroda](https://github.com/ebroda), [emilyhollinger](https://github.com/emilyhollinger), [emskaplann](https://github.com/emskaplann), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [FlipEnergy](https://github.com/FlipEnergy), [flynbit](https://github.com/flynbit), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [Hassall](https://github.com/Hassall), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [jp0707](https://github.com/jp0707), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kashifsoofi](https://github.com/kashifsoofi), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [koox00](https://github.com/koox00), [kristinakvn](https://github.com/kristinakvn), [larkox](https://github.com/larkox), [lawrencejohnson](https://github.com/lawrencejohnson), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lmammino](https://github.com/lmammino), [lucievr](https://github.com/lucievr), [lynn915](https://github.com/lynn915), [madhavhugar](https://github.com/madhavhugar), [marianunez](https://github.com/marianunez), [maxerenberg](https://github.com/maxerenberg), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mlongo4290](https://github.com/mlongo4290), [moschlar](https://github.com/moschlar), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikkinagar](https://github.com/nikkinagar), [nronas](https://github.com/nronas), [ogi-m](https://github.com/ogi-m), [onoklin](https://github.com/onoklin), [pablovelezvidal](https://github.com/pablovelezvidal), [prapti](https://github.com/prapti), [R8s6](https://github.com/R8s6), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [rolwin100](https://github.com/rolwin100), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [schunka](https://github.com/schunka), [shazm](https://github.com/shazm), [shuang2411](https://github.com/shuang2411), [SimonSimonB](https://github.com/SimonSimonB), [srkgupta](https://github.com/srkgupta), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [svenseeberg](https://github.com/svenseeberg), [Szymongib](https://github.com/Szymongib), [thePanz](https://github.com/thePanz), [uhlhosting](https://github.com/uhlhosting), [vpecinka](https://github.com/vpecinka), [vraravam](https://github.com/vraravam), [wf6DJd8a3xSSCZbn](https://github.com/wf6DJd8a3xSSCZbn), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [yukiisbored](https://github.com/yukiisbored) +---- + ## Release v5.31 - [ESR](/administration/extended-support-release.html) - **v5.31.9, released 2021-08-04** @@ -2553,6 +4414,8 @@ Mattermost v5.31.0 contains a low level security fix. [Upgrading](/administratio ### Contributors - [a-c-sreedhar-reddy](https://github.com/a-c-sreedhar-reddy), [aeomin](https://github.com/aeomin), [agnivade](https://github.com/agnivade), [akshaychhajed](https://github.com/akshaychhajed), [amwsis](https://github.com/amwsis), [amyblais](https://github.com/amyblais), [anurag6713](https://github.com/anurag6713), [ashishbhate](https://github.com/ashishbhate), [avinashlng1080](https://github.com/avinashlng1080), [Ayanrocks](https://github.com/Ayanrocks), [calebroseland](https://github.com/calebroseland), [CandyZack](https://github.com/CandyZack), [catalintomai](https://github.com/catalintomai), [chikei](https://github.com/chikei), [cinlloc](https://github.com/cinlloc), [cpanato](https://github.com/cpanato), [CrHasher](https://github.com/CrHasher), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [daniel-shuy](https://github.com/daniel-shuy), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DigasNikas](https://github.com/DigasNikas), [edtrist](https://github.com/edtrist), [enahum](https://github.com/enahum), [ethervoid](https://github.com/ethervoid), [flynbit](https://github.com/flynbit), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [girish17](https://github.com/girish17), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [HeroicHitesh](https://github.com/HeroicHitesh), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jakaya123](https://github.com/jakaya123), [jakubnovak998](https://github.com/jakubnovak998), [jasonblais](https://github.com/jasonblais), [JeremyShih](https://github.com/JeremyShih), [jespino](https://github.com/jespino), [josephbaylon](https://github.com/josephbaylon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kcc343](https://github.com/kcc343), [KevinMarioGerard](https://github.com/KevinMarioGerard), [larkox](https://github.com/larkox), [lawrencejohnson](https://github.com/lawrencejohnson), [Leryan](https://github.com/Leryan), [lieut-data](https://github.com/lieut-data), [marianunez](https://github.com/marianunez), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [MikeworX](https://github.com/MikeworX), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [msal4](https://github.com/msal4), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nronas](https://github.com/nronas), [pablovelezvidal](https://github.com/pablovelezvidal), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [SBagaria2710](https://github.com/SBagaria2710), [sbishel](https://github.com/sbishel), [sbley](https://github.com/sbley), [snhardin](https://github.com/snhardin), [streamer45](https://github.com/streamer45), [sudheerDev](https://github.com/sudheerDev), [thePanz](https://github.com/thePanz), [tweichart](https://github.com/tweichart), [Tzunhei](https://github.com/Tzunhei), [uhlhosting](https://github.com/uhlhosting), [vraravam](https://github.com/vraravam), [wget](https://github.com/wget), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.30 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.30.3, released 2021-02-02** @@ -2672,6 +4535,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [adamjclarkson](https://github.com/adamjclarkson), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akshaychhajed](https://github.com/akshaychhajed), [Ampit](https://github.com/Ampit), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [Ant0wan](https://github.com/Ant0wan), [antifarben](https://github.com/antifarben), [anurag6713](https://github.com/anurag6713), [ashishbhate](https://github.com/ashishbhate), [AugustasV](https://github.com/AugustasV), [avasconcelos114](https://github.com/avasconcelos114), [BenCookie95](https://github.com/BenCookie95), [bhargav50](https://github.com/bhargav50), [ByeongsuPark](https://github.com/ByeongsuPark), [calebroseland](https://github.com/calebroseland), [CandyZack](https://github.com/CandyZack), [catalintomai](https://github.com/catalintomai), [chikei](https://github.com/chikei), [cinlloc](https://github.com/cinlloc), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [cwarnermm](https://github.com/cwarnermm), [dalcde](https://github.com/dalcde), [daniel-shuy](https://github.com/daniel-shuy), [danielsischy](https://github.com/danielsischy), [darkLord19](https://github.com/darkLord19), [DavidePrincipi](https://github.com/DavidePrincipi), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [dizkek](https://github.com/dizkek), [drraghavendra](https://github.com/drraghavendra), [egrinberg](https://github.com/egrinberg), [eltociear](https://github.com/eltociear), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [erezo9](https://github.com/erezo9), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [fagunbhavsar](https://github.com/fagunbhavsar), [FalseHonesty](https://github.com/FalseHonesty), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [GodlikePenguin](https://github.com/GodlikePenguin), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [haardikdharma10](https://github.com/haardikdharma10), [hack3r-0m](https://github.com/hack3r-0m), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harryfromwork](https://github.com/harryfromwork), [hectorgabucio](https://github.com/hectorgabucio), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [icy-meteor](https://github.com/icy-meteor), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jecepeda](https://github.com/jecepeda), [JeremyShih](https://github.com/JeremyShih), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jials](https://github.com/jials), [johnsonbrothers](https://github.com/johnsonbrothers), [jomaxro](https://github.com/jomaxro), [josephbaylon](https://github.com/josephbaylon), [jrepe](https://github.com/jrepe), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kaiwalyakoparkar](https://github.com/kaiwalyakoparkar), [kayazeren](https://github.com/kayazeren), [kichloo](https://github.com/kichloo), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [lawrencejohnson](https://github.com/lawrencejohnson), [lestgabo](https://github.com/lestgabo), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lucianomagrao](https://github.com/lucianomagrao), [lynn915](https://github.com/lynn915), [Manimaran11](https://github.com/Manimaran11), [marianunez](https://github.com/marianunez), [maticbasle](https://github.com/maticbasle), [mbouzada](https://github.com/mbouzada), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [MikeworX](https://github.com/MikeworX), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [morganrconnolly](https://github.com/morganrconnolly), [msal4](https://github.com/msal4), [muety](https://github.com/muety), [natalie-hub](https://github.com/natalie-hub), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [nronas](https://github.com/nronas), [ogi-m](https://github.com/ogi-m), [OgmaJ](https://github.com/OgmaJ), [pablovelezvidal](https://github.com/pablovelezvidal), [persianopencart](https://github.com/persianopencart), [phntom](https://github.com/phntom), [pikami](https://github.com/pikami), [prithvijit-dasgupta](https://github.com/prithvijit-dasgupta), [promulo](https://github.com/promulo), [razum2um](https://github.com/razum2um), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [Remakh](https://github.com/Remakh), [Revanth47](https://github.com/Revanth47), [rishabh710](https://github.com/rishabh710), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [Saucistophe](https://github.com/Saucistophe), [sbishel](https://github.com/sbishel), [seongwon-kang](https://github.com/seongwon-kang), [SezalAgrawal](https://github.com/SezalAgrawal), [shazm](https://github.com/shazm), [shinnlok](https://github.com/shinnlok), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [Spotts9](https://github.com/Spotts9), [sridhar02](https://github.com/sridhar02), [sstaszkiewicz-copperleaf](https://github.com/sstaszkiewicz-copperleaf), [stafot](https://github.com/stafot), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [tacoelho](https://github.com/tacoelho), [Tak-Iwamoto](https://github.com/Tak-Iwamoto), [tasdomas](https://github.com/tasdomas), [thefactremains](https://github.com/thefactremains), [thePanz](https://github.com/thePanz), [tianlangwu](https://github.com/tianlangwu), [tohn](https://github.com/tohn), [TQuock](https://github.com/TQuock), [trishitapingolia](https://github.com/trishitapingolia), [tw-ayush](https://github.com/tw-ayush), [tweichart](https://github.com/tweichart), [uhlhosting](https://github.com/uhlhosting), [vanya829](https://github.com/vanya829), [VolatianaYuliana](https://github.com/VolatianaYuliana), [vraravam](https://github.com/vraravam), [weblate](https://github.com/weblate), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [wijayaerick](https://github.com/wijayaerick), [zarej](https://github.com/zarej), [ZombiMigz](https://github.com/ZombiMigz) +---- + ## Release v5.29 - [Quality Release](https://handbook.mattermost.com/operations/research-and-development/product/release-process/release-overview) - **v5.29.2, released 2021-01-18** @@ -2685,7 +4550,9 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Compatibility - A new configuration setting ``ThreadAutoFollow`` has been added to support [Collapsed Reply Threads](https://docs.google.com/presentation/d/1QSrPws3N8AMSjVyOKp15FKT7O0fGMSx8YidjSDS4Wng/edit#slide=id.g2f0aecc189_0_245) releasing in beta in Q1 2021. This setting is enabled by default and may affect server performance. It is recommended to review our [documentation on hardware requirements](/install/requirements.html#hardware-requirements) to ensure your servers are appropriately scaled for the size of your user base. -**IMPORTANT:** If you upgrade from a release earlier than v5.28, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.28, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -2763,6 +4630,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [7quantumphysics](https://github.com/7quantumphysics), [93lykevin](https://github.com/93lykevin), [abdusabri](https://github.com/abdusabri), [Adovenmuehle](https://github.com/Adovenmuehle), [aedott](https://github.com/aedott), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [akshaychhajed](https://github.com/akshaychhajed), [akwanmaroso](https://github.com/akwanmaroso), [alexpjohnson](https://github.com/alexpjohnson), [ali-farooq0](https://github.com/ali-farooq0), [altmas5](https://github.com/altmas5), [amsjavan](https://github.com/amsjavan), [amwolff](https://github.com/amwolff), [amyblais](https://github.com/amyblais), [anchepiece](https://github.com/anchepiece), [angeloskyratzakos](https://github.com/angeloskyratzakos), [Ant0wan](https://github.com/Ant0wan), [arc9693](https://github.com/arc9693), [ArcaneDiver](https://github.com/ArcaneDiver), [ArturBa](https://github.com/ArturBa), [ashishbhate](https://github.com/ashishbhate), [AshishMhrzn10](https://github.com/AshishMhrzn10), [asimsedhain](https://github.com/asimsedhain), [aspleenic](https://github.com/aspleenic), [ataboo](https://github.com/ataboo), [attiss](https://github.com/attiss), [AugustasV](https://github.com/AugustasV), [AugustinJose1221](https://github.com/AugustinJose1221), [avasconcelos114](https://github.com/avasconcelos114), [avinashdhinwa](https://github.com/avinashdhinwa), [Ayanrocks](https://github.com/Ayanrocks), [bhargav50](https://github.com/bhargav50), [ByeongsuPark](https://github.com/ByeongsuPark), [calebroseland](https://github.com/calebroseland), [camgraff](https://github.com/camgraff), [carantunes](https://github.com/carantunes), [catalintomai](https://github.com/catalintomai), [CEOehis](https://github.com/CEOehis), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [chrisfromredfin](https://github.com/chrisfromredfin), [cinlloc](https://github.com/cinlloc), [cjmartian](https://github.com/cjmartian), [clarmso](https://github.com/clarmso), [coltoneshaw](https://github.com/coltoneshaw), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [daniloff200](https://github.com/daniloff200), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [devius](https://github.com/devius), [didithilmy](https://github.com/didithilmy), [DigasNikas](https://github.com/DigasNikas), [diode](https://github.com/diode), [dudupopkhadze](https://github.com/dudupopkhadze), [edtrist](https://github.com/edtrist), [emilyacook](https://github.com/emilyacook), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [EnzoBtv](https://github.com/EnzoBtv), [erezo9](https://github.com/erezo9), [ericjaystevens](https://github.com/ericjaystevens), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [evilghostgirl](https://github.com/evilghostgirl), [fakela](https://github.com/fakela), [filipghorbani](https://github.com/filipghorbani), [fireynis](https://github.com/fireynis), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [gabrieljackson](https://github.com/gabrieljackson), [Ganzabahl](https://github.com/Ganzabahl), [GodlikePenguin](https://github.com/GodlikePenguin), [goldsziggy](https://github.com/goldsziggy), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [haardikdharma10](https://github.com/haardikdharma10), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hardikmodi1](https://github.com/hardikmodi1), [hectorgabucio](https://github.com/hectorgabucio), [hectorskypl](https://github.com/hectorskypl), [hiendinhngoc](https://github.com/hiendinhngoc), [hirenchauhan2](https://github.com/hirenchauhan2), [hmhealey](https://github.com/hmhealey), [icy-meteor](https://github.com/icy-meteor), [imakish](https://github.com/imakish), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasimmons](https://github.com/jasimmons), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jaypitroda12](https://github.com/jaypitroda12), [jecepeda](https://github.com/jecepeda), [jekill](https://github.com/jekill), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [jmakhack](https://github.com/jmakhack), [johnsonbrothers](https://github.com/johnsonbrothers), [Jonany](https://github.com/Jonany), [josephbaylon](https://github.com/josephbaylon), [joshuabezaleel](https://github.com/joshuabezaleel), [jufab](https://github.com/jufab), [justinegeffen](https://github.com/justinegeffen), [kaakaa](https://github.com/kaakaa), [kashifsoofi](https://github.com/kashifsoofi), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [khushijindal](https://github.com/khushijindal), [KrishnaSindhur](https://github.com/KrishnaSindhur), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [Leryan](https://github.com/Leryan), [lestgabo](https://github.com/lestgabo), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lipmem](https://github.com/lipmem), [lucianomagrao](https://github.com/lucianomagrao), [lushan01](https://github.com/lushan01), [lynn915](https://github.com/lynn915), [M-Buntoro](https://github.com/M-Buntoro), [Manimaran11](https://github.com/Manimaran11), [marcelo-cardozo](https://github.com/marcelo-cardozo), [marianunez](https://github.com/marianunez), [mathiasvr](https://github.com/mathiasvr), [maticbasle](https://github.com/maticbasle), [mattermod](https://github.com/mattermod), [mbouzada](https://github.com/mbouzada), [mdabydeen](https://github.com/mdabydeen), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michelengelen](https://github.com/michelengelen), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [MikeworX](https://github.com/MikeworX), [mishkaowner](https://github.com/mishkaowner), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [MohanSha](https://github.com/MohanSha), [moussetc](https://github.com/moussetc), [n-thumann](https://github.com/n-thumann), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nbolender](https://github.com/nbolender), [NCC-1031](https://github.com/NCC-1031), [nevyangelova](https://github.com/nevyangelova), [NexWeb](https://github.com/NexWeb), [ng29](https://github.com/ng29), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [nizarmah](https://github.com/nizarmah), [ogi-m](https://github.com/ogi-m), [Oppodelldog](https://github.com/Oppodelldog), [outofgamut](https://github.com/outofgamut), [ozdemirburak](https://github.com/ozdemirburak), [palcodes](https://github.com/palcodes), [paulussujono](https://github.com/paulussujono), [Phizzard](https://github.com/Phizzard), [pikami](https://github.com/pikami), [Poussinette](https://github.com/Poussinette), [pranavtharoor](https://github.com/pranavtharoor), [prapti](https://github.com/prapti), [prazolpp](https://github.com/prazolpp), [promulo](https://github.com/promulo), [radoslavius](https://github.com/radoslavius), [Raj-Datta-Manohar](https://github.com/Raj-Datta-Manohar), [RanadeepPolavarapu](https://github.com/RanadeepPolavarapu), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [Revanth47](https://github.com/Revanth47), [rishabh710](https://github.com/rishabh710), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [sakaitsu](https://github.com/sakaitsu), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [seongwon-kang](https://github.com/seongwon-kang), [SezalAgrawal](https://github.com/SezalAgrawal), [ShajithaMohammed](https://github.com/ShajithaMohammed), [shazm](https://github.com/shazm), [shieldsjared](https://github.com/shieldsjared), [shihanng](https://github.com/shihanng), [Shivam7-1](https://github.com/Shivam7-1), [shred86](https://github.com/shred86), [shtelzerartem](https://github.com/shtelzerartem), [sikloidz](https://github.com/sikloidz), [simross](https://github.com/simross), [singh-sarabjeet](https://github.com/singh-sarabjeet), [SinithH](https://github.com/SinithH), [sirMackk](https://github.com/sirMackk), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [spielers](https://github.com/spielers), [spiritbro1](https://github.com/spiritbro1), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [sudiptog81](https://github.com/sudiptog81), [Sumindar](https://github.com/Sumindar), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [Tak-Iwamoto](https://github.com/Tak-Iwamoto), [talentedunicorn](https://github.com/talentedunicorn), [tasdomas](https://github.com/tasdomas), [tellustheguru](https://github.com/tellustheguru), [teresa-novoa](https://github.com/teresa-novoa), [thefactremains](https://github.com/thefactremains), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [tsabi](https://github.com/tsabi), [tw-ayush](https://github.com/tw-ayush), [uhlhosting](https://github.com/uhlhosting), [utkuufuk](https://github.com/utkuufuk), [vaibhav111tandon](https://github.com/vaibhav111tandon), [vanya829](https://github.com/vanya829), [varunks99](https://github.com/varunks99), [vipul08](https://github.com/vipul08), [vladimirdotk](https://github.com/vladimirdotk), [VolatianaYuliana](https://github.com/VolatianaYuliana), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wijayaerick](https://github.com/wijayaerick), [Willyfrog](https://github.com/Willyfrog), [yash2189](https://github.com/yash2189) +---- + ## Release v5.28 - [Feature Release](/process/release-faq.html#release-overview) - **v5.28.2, released 2020-12-03** @@ -2781,7 +4650,9 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Breaking Changes - Now when the service crashes, it will generate a coredump instead of just dumping the stack trace to the console. This allows us to preserve the full information of the crash to help with debugging it. For more information about coredumps, please see: https://man7.org/linux/man-pages/man5/core.5.html. -**IMPORTANT:** If you upgrade from a release earlier than v5.27, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than v5.27, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -2914,6 +4785,8 @@ Multiple setting options were added to ``config.json``. Below is a list of the a ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [aedott](https://github.com/aedott), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ali-farooq0](https://github.com/ali-farooq0), [amwolff](https://github.com/amwolff), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [apollo13](https://github.com/apollo13), [archit-p](https://github.com/archit-p), [arshchimni](https://github.com/arshchimni), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [asimsedhain](https://github.com/asimsedhain), [avasconcelos114](https://github.com/avasconcelos114), [Ayanrocks](https://github.com/Ayanrocks), [bbodenmiller](https://github.com/bbodenmiller), [bhargav50](https://github.com/bhargav50), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chikei](https://github.com/chikei), [clarmso](https://github.com/clarmso), [colorfusion](https://github.com/colorfusion), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [devius](https://github.com/devius), [DylanWard14](https://github.com/DylanWard14), [elaine-mattermost](https://github.com/elaine-mattermost), [elyscape](https://github.com/elyscape), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [fakoor](https://github.com/fakoor), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [furqanmlk](https://github.com/furqanmlk), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gracion](https://github.com/gracion), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jakubnovak998](https://github.com/jakubnovak998), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jecepeda](https://github.com/jecepeda), [JeremyShih](https://github.com/JeremyShih), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgilliam17](https://github.com/jgilliam17), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [josephk96](https://github.com/josephk96), [jp0707](https://github.com/jp0707), [JtheBAB](https://github.com/JtheBAB), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kashifsoofi](https://github.com/kashifsoofi), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [kosgrz](https://github.com/kosgrz), [lanjp](https://github.com/lanjp), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [Lumexralph](https://github.com/Lumexralph), [luryus](https://github.com/luryus), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [marianunez](https://github.com/marianunez), [MathewtheCoder](https://github.com/MathewtheCoder), [mathiusjohnson](https://github.com/mathiusjohnson), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mozkomor05](https://github.com/mozkomor05), [natalie-hub](https://github.com/natalie-hub), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nikolaizah](https://github.com/nikolaizah), [ogi-m](https://github.com/ogi-m), [openmohan](https://github.com/openmohan), [prapti](https://github.com/prapti), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [RohitJain13](https://github.com/RohitJain13), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shieldsjared](https://github.com/shieldsjared), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [StevenPhan](https://github.com/StevenPhan), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [Tak-Iwamoto](https://github.com/Tak-Iwamoto), [tasdomas](https://github.com/tasdomas), [teresa-novoa](https://github.com/teresa-novoa), [thefactremains](https://github.com/thefactremains), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [txeli](https://github.com/txeli), [uhlhosting](https://github.com/uhlhosting), [vladimirdotk](https://github.com/vladimirdotk), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.27 - [Quality Release](/process/release-faq.html#release-overview) - **v5.27.2, released 2020-12-03** @@ -2992,6 +4865,8 @@ Mattermost v5.27.0 contains a low level security fix. [Upgrading](/administratio ### Contributors - [abdulsmapara](https://github.com/abdulsmapara), [abdusabri](https://github.com/abdusabri), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [aidapira](https://github.com/aidapira), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [ankallio](https://github.com/ankallio), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AugustasV](https://github.com/AugustasV), [avasconcelos114](https://github.com/avasconcelos114), [BaaaZen](https://github.com/BaaaZen), [bbodenmiller](https://github.com/bbodenmiller), [bill2004158](https://github.com/bill2004158), [bradjcoughlin](https://github.com/bradjcoughlin), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chakatz](https://github.com/chakatz), [chikei](https://github.com/chikei), [corey-robinson](https://github.com/corey-robinson), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [danielhelfand](https://github.com/danielhelfand), [DanielSz50](https://github.com/DanielSz50), [dantepippi](https://github.com/dantepippi), [Dartui](https://github.com/Dartui), [dbejanishvili](https://github.com/dbejanishvili), [deanwhillier](https://github.com/deanwhillier), [denniskamp](https://github.com/denniskamp), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [dpanic](https://github.com/dpanic), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [ericjaystevens](https://github.com/ericjaystevens), [esadur](https://github.com/esadur), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [flexo3001](https://github.com/flexo3001), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [gabrieljackson](https://github.com/gabrieljackson), [ghasrfakhri](https://github.com/ghasrfakhri), [gigawhitlocks](https://github.com/gigawhitlocks), [grubbins](https://github.com/grubbins), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hhhhugi](https://github.com/hhhhugi), [hmhealey](https://github.com/hmhealey), [hryuk](https://github.com/hryuk), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jakubnovak998](https://github.com/jakubnovak998), [jasonblais](https://github.com/jasonblais), [javimox](https://github.com/javimox), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [joshuabezaleel](https://github.com/joshuabezaleel), [jseiser](https://github.com/jseiser), [JtheBAB](https://github.com/JtheBAB), [Jukie](https://github.com/Jukie), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kayron8](https://github.com/kayron8), [khos2ow](https://github.com/khos2ow), [kirkjaa](https://github.com/kirkjaa), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [liusy182](https://github.com/liusy182), [Lyimmi](https://github.com/Lyimmi), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [marianunez](https://github.com/marianunez), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mlongo4290](https://github.com/mlongo4290), [moussetc](https://github.com/moussetc), [mustafayildirim](https://github.com/mustafayildirim), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nicolailang](https://github.com/nicolailang), [nikolaizah](https://github.com/nikolaizah), [nperera](https://github.com/nperera), [ofpiyush](https://github.com/ofpiyush), [openmohan](https://github.com/openmohan), [phommasy](https://github.com/phommasy), [prapti](https://github.com/prapti), [qerosi](https://github.com/qerosi), [rahulchheda](https://github.com/rahulchheda), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rmatev](https://github.com/rmatev), [rodcorsi](https://github.com/rodcorsi), [ruzaq](https://github.com/ruzaq), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottjr632](https://github.com/scottjr632), [ShehryarShoukat96](https://github.com/ShehryarShoukat96), [shred86](https://github.com/shred86), [skaramanlis](https://github.com/skaramanlis), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [TRUNGTar](https://github.com/TRUNGTar), [uhlhosting](https://github.com/uhlhosting), [utkuufuk](https://github.com/utkuufuk), [Vars-07](https://github.com/Vars-07), [Venhaus](https://github.com/Venhaus), [vijaynag-bs](https://github.com/vijaynag-bs), [webchick](https://github.com/webchick), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [Yohannesseifu](https://github.com/Yohannesseifu), [YushiOMOTE](https://github.com/YushiOMOTE) +---- + ## Release v5.26 - [Feature Release](/administration/release-definitions.html#feature-release) - **v5.26.2, released 2020-09-03** @@ -3010,7 +4885,9 @@ Mattermost v5.27.0 contains a low level security fix. [Upgrading](/administratio - In v5.26, Elasticsearch indexes needed to be recreated. Admins should re-index Elasticsearch using the **Purge index** and then **Index now** button so that all the changes will be included in the index. Systems may be left with a limited search during the indexing, so it should be done during a time when there is little to no activity because it may take several hours. - An ``EnableExperimentalGossipEncryption`` option was added under ``ClusterSettings``. If this is set to ``true``, and ``UseExperimentalGossip`` is also ``true``, all communication through the cluster using the gossip protocol will be encrypted. The encryption uses ``AES-256`` by default, and it is not kept configurable by design. However, if one wishes, they can set the value in Systems table manually for the ``ClusterEncryptionKey`` row. A key is a byte array converted to base64. It should be either 16, 24, or 32 bytes to select AES-128, AES-192, or AES-256. To update the key, one can execute ``UPDATE Systems SET Value='' WHERE Name='ClusterEncryptionKey';`` in MySQL and ``UPDATE systems SET value='' WHERE name='ClusterEncryptionKey'`` for PostgreSQL. For any change in this config setting to take effect, the whole cluster must be shutdown first. Then the config change made, and then restarted. In a cluster, all servers either will completely use encryption or not. There cannot be any partial usage. -**IMPORTANT:** If you upgrade from a release earlier than 5.25, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.25, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -3165,6 +5042,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors - [abdulsmapara](https://github.com/abdulsmapara), [abdusabri](https://github.com/abdusabri), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [aidapira](https://github.com/aidapira), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [ankallio](https://github.com/ankallio), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [AugustasV](https://github.com/AugustasV), [avasconcelos114](https://github.com/avasconcelos114), [BaaaZen](https://github.com/BaaaZen), [bbodenmiller](https://github.com/bbodenmiller), [bill2004158](https://github.com/bill2004158), [bradjcoughlin](https://github.com/bradjcoughlin), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chakatz](https://github.com/chakatz), [chikei](https://github.com/chikei), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [danielhelfand](https://github.com/danielhelfand), [DanielSz50](https://github.com/DanielSz50), [dantepippi](https://github.com/dantepippi), [Dartui](https://github.com/Dartui), [dbejanishvili](https://github.com/dbejanishvili), [deanwhillier](https://github.com/deanwhillier), [denniskamp](https://github.com/denniskamp), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [djanda97](https://github.com/djanda97), [dpanic](https://github.com/dpanic), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [ericjaystevens](https://github.com/ericjaystevens), [esadur](https://github.com/esadur), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [flexo3001](https://github.com/flexo3001), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [gabrieljackson](https://github.com/gabrieljackson), [ghasrfakhri](https://github.com/ghasrfakhri), [gigawhitlocks](https://github.com/gigawhitlocks), [grubbins](https://github.com/grubbins), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hhhhugi](https://github.com/hhhhugi), [hmhealey](https://github.com/hmhealey), [hryuk](https://github.com/hryuk), [ialorro](https://github.com/ialorro), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jakubnovak998](https://github.com/jakubnovak998), [jasonblais](https://github.com/jasonblais), [javimox](https://github.com/javimox), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnsonbrothers](https://github.com/johnsonbrothers), [josephbaylon](https://github.com/josephbaylon), [joshuabezaleel](https://github.com/joshuabezaleel), [jseiser](https://github.com/jseiser), [JtheBAB](https://github.com/JtheBAB), [Jukie](https://github.com/Jukie), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kayron8](https://github.com/kayron8), [khos2ow](https://github.com/khos2ow), [kirkjaa](https://github.com/kirkjaa), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [liusy182](https://github.com/liusy182), [Lyimmi](https://github.com/Lyimmi), [lynn915](https://github.com/lynn915), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mlongo4290](https://github.com/mlongo4290), [mustafayildirim](https://github.com/mustafayildirim), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nicolailang](https://github.com/nicolailang), [nikolaizah](https://github.com/nikolaizah), [ofpiyush](https://github.com/ofpiyush), [openmohan](https://github.com/openmohan), [phommasy](https://github.com/phommasy), [prapti](https://github.com/prapti), [qerosi](https://github.com/qerosi), [rahulchheda](https://github.com/rahulchheda), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rmatev](https://github.com/rmatev), [rodcorsi](https://github.com/rodcorsi), [ruzaq](https://github.com/ruzaq), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottjr632](https://github.com/scottjr632), [ShehryarShoukat96](https://github.com/ShehryarShoukat96), [shred86](https://github.com/shred86), [skaramanlis](https://github.com/skaramanlis), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [sridhar02](https://github.com/sridhar02), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [Szymongib](https://github.com/Szymongib), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [TRUNGTar](https://github.com/TRUNGTar), [uhlhosting](https://github.com/uhlhosting), [utkuufuk](https://github.com/utkuufuk), [Vars-07](https://github.com/Vars-07), [Venhaus](https://github.com/Venhaus), [vijaynag-bs](https://github.com/vijaynag-bs), [webchick](https://github.com/webchick), [weblate](https://github.com/weblate), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [Yohannesseifu](https://github.com/Yohannesseifu), [YushiOMOTE](https://github.com/YushiOMOTE) +---- + ## Release v5.25 - [ESR](/administration/release-definitions.html#extended-support-release-esr) - **v5.25.7, released 2020-12-03** @@ -3200,7 +5079,9 @@ Mattermost v5.25.0 contains a low level security fix. [Upgrading](/administratio ### Breaking Changes - Some incorrect instructions regarding SAML setup with Active Directory ADFS for setting the “Relying party trust identifier” were corrected. Although the settings will continue to work, it is encouraged to [modify those settings](/deployment/sso-saml-adfs-msws2016.html#add-a-relying-party-trust). -**IMPORTANT:** If you upgrade from a release earlier than 5.24, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.24, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Improvements - Added the ability for admins to request a 30-day E20 trial license directly in the System Console. @@ -3266,6 +5147,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://github.com/aeomin), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [Ashniu123](https://github.com/Ashniu123), [attilamolnar](https://github.com/attilamolnar), [avasconcelos114](https://github.com/avasconcelos114), [bbodenmiller](https://github.com/bbodenmiller), [bradjcoughlin](https://github.com/bradjcoughlin), [brunoro](https://github.com/brunoro), [CEOehis](https://github.com/CEOehis), [checkaayush](https://github.com/checkaayush), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [clarmso](https://github.com/clarmso), [corey-robinson](https://github.com/corey-robinson), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [craigwillis-mm](https://github.com/craigwillis-mm), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [danger89](https://github.com/danger89), [DanielSz50](https://github.com/DanielSz50), [dantepippi](https://github.com/dantepippi), [davebarkerxyz](https://github.com/davebarkerxyz), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dpanic](https://github.com/dpanic), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [ericjaystevens](https://github.com/ericjaystevens), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [Extazx2](https://github.com/Extazx2), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [farah](https://github.com/farah), [fedealconada](https://github.com/fedealconada), [FlaviaBastos](https://github.com/FlaviaBastos), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [GrigalashviliT](https://github.com/GrigalashviliT), [GrSto](https://github.com/GrSto), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gsagula](https://github.com/gsagula), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorgabucio](https://github.com/hectorgabucio), [hectorskypl](https://github.com/hectorskypl), [HilaryClarke](https://github.com/HilaryClarke), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnthompson365](https://github.com/johnthompson365), [josephbaylon](https://github.com/josephbaylon), [jseiser](https://github.com/jseiser), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kadir96](https://github.com/kadir96), [kayazeren](https://github.com/kayazeren), [khos2ow](https://github.com/khos2ow), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [liusy182](https://github.com/liusy182), [lynn915](https://github.com/lynn915), [marianunez](https://github.com/marianunez), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mitchellroe](https://github.com/mitchellroe), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nickmisasi](https://github.com/nickmisasi), [nperera](https://github.com/nperera), [octoquad](https://github.com/octoquad), [prapti](https://github.com/prapti), [promehul](https://github.com/promehul), [Qovaros](https://github.com/Qovaros), [rahimrahman](https://github.com/rahimrahman), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [TheDarkestDay](https://github.com/TheDarkestDay), [thefactremains](https://github.com/thefactremains), [thePanz](https://github.com/thePanz), [uhlhosting](https://github.com/uhlhosting), [waqasraz](https://github.com/waqasraz), [weblate](https://github.com/weblate), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [will7200](https://github.com/will7200), [Willyfrog](https://github.com/Willyfrog), [ztrayner](https://github.com/ztrayner) +---- + ## Release v5.24 - [Feature Release](/process/release-faq.html#release-overview) - **v5.24.3, released 2020-07-23** @@ -3288,7 +5171,9 @@ Mattermost v5.24.0 contains low level security fixes. [Upgrading](/administratio - Due to fixing performance issues related to emoji reactions, the performance of the upgrade has been affected in that the schema upgrade now takes more time in environments with lots of reactions in their database. These environments are recommended to perform the schema migration during low usage times and potentially in advance of the upgrade. Since this migration happens before the Mattermost Server is fully launched, non-High Availability installs will be unreachable during this time. Please see the [Important Upgrade Notes](/administration/important-upgrade-notes.html) for full details. - On mobile apps, users will not be able to see LDAP group mentions (E20 feature) in the autocomplete dropdown. Users will still receive notifications if they are part of an LDAP group. However, the group mention keyword will not be highlighted. -**IMPORTANT:** If you upgrade from a release earlier than 5.23, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.23, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -3431,6 +5316,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors - [aaronrothschild](https://github.com/aaronrothschild), [abdulsmapara](https://github.com/abdulsmapara), [adamjclarkson](https://github.com/adamjclarkson), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://translate.mattermost.com/user/aeomin/), [agarciamontoro](https://github.com/agarciamontoro), [agnivade](https://github.com/agnivade), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [avasconcelos114](https://github.com/avasconcelos114), [avddvd](https://github.com/avddvd), [awerries](https://github.com/awerries), [bbodenmiller](https://github.com/bbodenmiller), [bbuehrle](https://github.com/bbuehrle), [bradjcoughlin](https://github.com/bradjcoughlin), [cadavre](https://github.com/cadavre), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [CEOehis](https://github.com/CEOehis), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [corey-robinson](https://github.com/corey-robinson), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [craigwillis-mm](https://github.com/craigwillis-mm), [craph](https://github.com/craph), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [dantepippi](https://github.com/dantepippi), [dbejanishvili](https://github.com/dbejanishvili), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DSchalla](https://github.com/DSchalla), [ejose19](https://github.com/ejose19), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [fakela](https://github.com/fakela), [fedealconada](https://github.com/fedealconada), [FlaviaBastos](https://github.com/FlaviaBastos), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [funkytwig](https://github.com/funkytwig), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gnello](https://github.com/gnello), [GrigalashviliT](https://github.com/GrigalashviliT), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gsagula](https://github.com/gsagula), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [hzeroo](https://github.com/hzeroo), [ialorro](https://github.com/ialorro), [iamsayantan](https://github.com/iamsayantan), [ikeohachidi](https://github.com/ikeohachidi), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [josephbaylon](https://github.com/josephbaylon), [JtheBAB](https://github.com/JtheBAB), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [khos2ow](https://github.com/khos2ow), [kosgrz](https://github.com/kosgrz), [l0r3zz](https://github.com/l0r3zz), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [liusy182](https://github.com/liusy182), [lynn915](https://github.com/lynn915), [marianunez](https://github.com/marianunez), [mbecca](https://github.com/mbecca), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mterhar](https://github.com/mterhar), [muratbayan](https://github.com/muratbayan), [nadalfederer](https://github.com/nadalfederer), [NassimBounouas](https://github.com/NassimBounouas), [natalie-hub](https://github.com/natalie-hub), [nathanaelhoun](https://github.com/nathanaelhoun), [nevyangelova](https://github.com/nevyangelova), [nperera](https://github.com/nperera), [octoquad](https://github.com/octoquad), [pankajhirway](https://github.com/pankajhirway), [petya-v](https://github.com/petya-v), [pradeepmurugesan](https://github.com/pradeepmurugesan), [prapti](https://github.com/prapti), [psy-q](https://github.com/psy-q), [Qovaros](https://github.com/Qovaros), [Qujja](https://github.com/Qujja), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shibasisp](https://github.com/shibasisp), [Shivam010](https://github.com/Shivam010), [shred86](https://github.com/shred86), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [thefactremains](https://github.com/thefactremains), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [ThiefMaster](https://github.com/ThiefMaster), [tomasmik](https://github.com/tomasmik), [uhlhosting](https://github.com/uhlhosting), [vesari](https://github.com/vesari), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [ztrayner](https://github.com/ztrayner) +---- + ## Release v5.23 - [Quality Release](/process/release-faq.html#release-overview) - **v5.23.2, released 2020-07-23** @@ -3501,6 +5388,8 @@ We highly recommend upgrading to PostgreSQL version 10+. Please follow the instr - [aaronrothschild](https://github.com/aaronrothschild), [adamjclarkson](https://github.com/adamjclarkson), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://translate.mattermost.com/user/aeomin/), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ahmaddanialmohd](https://github.com/ahmaddanialmohd), [akarikuu](https://github.com/akarikuu), [Akendo](https://github.com/Akendo), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [angeloskyratzakos](https://github.com/angeloskyratzakos), [AninditaBasu](https://github.com/AninditaBasu), [asaadmahmood](https://github.com/asaadmahmood), [attilamolnar](https://github.com/attilamolnar), [avasconcelos114](https://github.com/avasconcelos114), [avddvd](https://github.com/avddvd), [bakurits](https://github.com/bakurits), [bbodenmiller](https://github.com/bbodenmiller), [bolariin](https://github.com/bolariin), [bradjcoughlin](https://github.com/bradjcoughlin), [cadavre](https://github.com/cadavre), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [ckavili](https://github.com/ckavili), [clarmso](https://github.com/clarmso), [cpanato](https://github.com/cpanato), [cpurta](https://github.com/cpurta), [craigwillis-mm](https://github.com/craigwillis-mm), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [curiousercreative](https://github.com/curiousercreative), [danger89](https://github.com/danger89), [Danziger](https://github.com/Danziger), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [dhadiseputro](https://github.com/dhadiseputro), [DHaussermann](https://github.com/DHaussermann), [ebaker](https://github.com/ebaker), [emilyhollinger](https://github.com/emilyhollinger), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [fedealconada](https://github.com/fedealconada), [FlaviaBastos](https://github.com/FlaviaBastos), [flynbit](https://github.com/flynbit), [fmunshi](https://github.com/fmunshi), [Francois-D](https://github.com/Francois-D), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gnello](https://github.com/gnello), [gramakri](https://github.com/gramakri), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gsagula](https://github.com/gsagula), [hahmadia](https://github.com/hahmadia), [hajowieland](https://github.com/hajowieland), [hanzei](https://github.com/hanzei), [haydenhw](https://github.com/haydenhw), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ialorro](https://github.com/ialorro), [iamsayantan](https://github.com/iamsayantan), [icelander](https://github.com/icelander), [igor47](https://github.com/igor47), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnthompson365](https://github.com/johnthompson365), [josephbaylon](https://github.com/josephbaylon), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [justledbetter](https://github.com/justledbetter), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lynn915](https://github.com/lynn915), [marianunez](https://github.com/marianunez), [MatthewDorner](https://github.com/MatthewDorner), [mbecca](https://github.com/mbecca), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mo2menelzeiny](https://github.com/mo2menelzeiny), [moussetc](https://github.com/moussetc), [natalie-hub](https://github.com/natalie-hub), [nevyangelova](https://github.com/nevyangelova), [Nirei](https://github.com/Nirei), [nvjacobo](https://github.com/nvjacobo), [oguera](https://github.com/oguera), [Pafzedog](https://github.com/Pafzedog), [popstr](https://github.com/popstr), [promulo](https://github.com/promulo), [Qovaros](https://github.com/Qovaros), [rahimrahman](https://github.com/rahimrahman), [rajeshkp](https://github.com/rajeshkp), [rakhi2104](https://github.com/rakhi2104), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [shred86](https://github.com/shred86), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [syuo7](https://github.com/syuo7), [T0biii](https://github.com/T0biii), [theo-o](https://github.com/theo-o), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [uhlhosting](https://github.com/uhlhosting), [vesari](https://github.com/vesari), [vespian](https://github.com/vespian), [VishalSwarnkar](https://github.com/VishalSwarnkar), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [ztrayner](https://github.com/ztrayner) +---- + ## Release v5.22 - [Feature Release](/process/release-faq.html#release-overview) - **v5.22.3, released 2020-05-11** @@ -3526,7 +5415,9 @@ Mattermost v5.22.0 contains a low level security fix. [Upgrading](/administratio - The Channel Moderation Settings feature is supported on mobile app versions v1.30 and later. In earlier versions of the mobile app, users who attempt to post or react to posts without proper permissions will see an error. - Direct access to the ``Props`` field in the ``model.Post`` structure has been deprecated. The available ``GetProps()`` and ``SetProps()`` methods should now be used. Also, direct copy of the ``model.Post`` structure must be avoided in favor of the provided ``Clone()`` method. -**IMPORTANT:** If you upgrade from a release earlier than 5.21, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.21, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -3638,6 +5529,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [abdulsmapara](https://github.com/abdulsmapara), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://translate.mattermost.com/user/aeomin/), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ali-farooq0](https://github.com/ali-farooq0), [allenlai18](https://github.com/allenlai18), [ami9000](https://github.com/ami9000), [amyblais](https://github.com/amyblais), [amynicol1985](https://github.com/amynicol1985), [angeloskyratzakos](https://github.com/angeloskyratzakos), [AninditaBasu](https://github.com/AninditaBasu), [apoxa](https://github.com/apoxa), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [ashwanisng](https://github.com/ashwanisng), [avasconcelos114](https://github.com/avasconcelos114), [bakurits](https://github.com/bakurits), [Better-Boy](https://github.com/Better-Boy), [bhuvana-guna](https://github.com/bhuvana-guna), [bolariin](https://github.com/bolariin), [bradjcoughlin](https://github.com/bradjcoughlin), [catalintomai](https://github.com/catalintomai), [caugner](https://github.com/caugner), [checkaayush](https://github.com/checkaayush), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [compiledsound](https://github.com/compiledsound), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://github.com/ctlaltdieliet), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [Durgaprasad-Budhwani](https://github.com/Durgaprasad-Budhwani), [ebiiim](https://github.com/ebiiim), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [ericjaystevens](https://github.com/ericjaystevens), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [fedealconada](https://github.com/fedealconada), [flynbit](https://github.com/flynbit), [fm2munsh](https://github.com/fm2munsh), [gabrieljackson](https://github.com/gabrieljackson), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gsagula](https://github.com/gsagula), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [haydenhw](https://github.com/haydenhw), [hectorskypl](https://github.com/hectorskypl), [hiendinhngoc](https://github.com/hiendinhngoc), [HilaryClarke](https://github.com/HilaryClarke), [hmhealey](https://github.com/hmhealey), [iamsayantan](https://github.com/iamsayantan), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [JanhaviC15](https://github.com/JanhaviC15), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [joewaitye](https://github.com/joewaitye), [johnthompson365](https://github.com/johnthompson365), [josephbaylon](https://github.com/josephbaylon), [josephk96](https://github.com/josephk96), [JtheBAB](https://github.com/JtheBAB), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kajumito](https://github.com/kajumito), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kosgrz](https://github.com/kosgrz), [larkox](https://github.com/larkox), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [Lumexralph](https://github.com/Lumexralph), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [MarcoAlejandro](https://github.com/MarcoAlejandro), [marianunez](https://github.com/marianunez), [MatthewDorner](https://github.com/MatthewDorner), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mo2menelzeiny](https://github.com/mo2menelzeiny), [msvbhat](https://github.com/msvbhat), [MuLx10](https://github.com/MuLx10), [nadalfederer](https://github.com/nadalfederer), [natalie-hub](https://github.com/natalie-hub), [NeroBurner](https://github.com/NeroBurner), [nevyangelova](https://github.com/nevyangelova), [phillipahereza](https://github.com/phillipahereza), [Pomyk](https://github.com/Pomyk), [potaito](https://github.com/potaito), [prasoonmayank](https://github.com/prasoonmayank), [promulo](https://github.com/promulo), [rakhi2104](https://github.com/rakhi2104), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [RohitJain13](https://github.com/RohitJain13), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [sbis04](https://github.com/sbis04), [sbishel](https://github.com/sbishel), [shadabk96](https://github.com/shadabk96), [shibasisp](https://github.com/shibasisp), [sibashisbishi](https://github.com/sibashisbishi), [someone-somenet-org](https://github.com/someone-somenet-org), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [teyotan](https://github.com/teyotan), [TheoVitkovskiy](https://github.com/TheoVitkovskiy), [thePanz](https://github.com/thePanz), [thnat1234](https://github.com/thnat1234), [Ths2-9Y-LqJt6](https://github.com/Ths2-9Y-LqJt6), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [upwell](https://github.com/upwell), [vespian](https://github.com/vespian), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.21 - [Quality Release](/process/release-faq.html#release-overview) **Release day: 2020-03-16** @@ -3680,6 +5573,8 @@ Mattermost v5.21.0 contains low level security fixes. [Upgrading](/administratio ### Contributors - [adamjclarkson](https://github.com/adamjclarkson), [Adovenmuehle](https://github.com/Adovenmuehle), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ajh3](https://github.com/ajh3), [ali-farooq0](https://github.com/ali-farooq0), [allenlai18](https://github.com/allenlai18), [ami9000](https://github.com/ami9000), [amyblais](https://github.com/amyblais), [andreiavrammsd](https://github.com/andreiavrammsd), [AninditaBasu](https://github.com/AninditaBasu), [Apollo9999](https://github.com/Apollo9999), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [asutosh97](https://github.com/asutosh97), [avasconcelos114](https://github.com/avasconcelos114), [bbodenmiller](https://github.com/bbodenmiller), [bolariin](https://github.com/bolariin), [bradjcoughlin](https://github.com/bradjcoughlin), [catalintomai](https://github.com/catalintomai), [checkaayush](https://github.com/checkaayush), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [ctlaltdieliet](https://translate.mattermost.com/user/ctlaltdieliet/), [ctmusicnz](https://github.com/ctmusicnz), [darkdebo](https://github.com/darkdebo), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dkbhadeshiya](https://github.com/dkbhadeshiya), [dlclark](https://github.com/dlclark), [DSchalla](https://github.com/DSchalla), [emilioicai](https://github.com/emilioicai), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [esethna](https://github.com/esethna), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [flynbit](https://translate.mattermost.com/user/flynbit/), [fm2munsh](https://github.com/fm2munsh), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [ikeohachidi](https://github.com/ikeohachidi), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [it33](https://github.com/it33), [J35u527](https://github.com/J35u527), [jasonblais](https://github.com/jasonblais), [jasonlanderson](https://github.com/jasonlanderson), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnthompson365](https://github.com/johnthompson365), [josephbaylon](https://github.com/josephbaylon), [joshuabezaleel](https://github.com/joshuabezaleel), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [khos2ow](https://github.com/khos2ow), [larkox](https://github.com/larkox), [lawikip](https://github.com/lawikip), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [marianunez](https://github.com/marianunez), [matthewbirtch](https://github.com/matthewbirtch), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [nadalfederer](https://github.com/nadalfederer), [natalie-hub](https://github.com/natalie-hub), [nevyangelova](https://github.com/nevyangelova), [njkevlani](https://github.com/njkevlani), [nmlc](https://github.com/nmlc), [opllama2](https://github.com/opllama2), [phillipahereza](https://github.com/phillipahereza), [promulo](https://github.com/promulo), [RajatVaryani](https://github.com/RajatVaryani), [ramkumarrn](https://github.com/ramkumarrn), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [Rulikkk](https://github.com/Rulikkk), [RyanCommits](https://github.com/RyanCommits), [s3than](https://github.com/s3than), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [strtw](https://github.com/strtw), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [thePanz](https://github.com/thePanz), [theriverman](https://github.com/theriverman), [Ths2-9Y-LqJt6](https://github.com/Ths2-9Y-LqJt6), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [Unkn0wnCat](https://github.com/Unkn0wnCat), [vesari](https://github.com/vesari), [vespian](https://github.com/vespian), [vovapi](https://github.com/vovapi), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.20 - [Feature Release](/process/release-faq.html#release-overview) - **v5.20.2, released 2020-03-12** @@ -3698,7 +5593,9 @@ Mattermost v5.20.0 contains a low level security fix. [Upgrading](/administratio - Any [pre-packaged plugin](/administration/plugins.html#pre-packaged-plugins) that is not enabled in the ``config.json`` will no longer install automatically, but can continue to be installed via the [plugin marketplace](/administration/plugins.html#plugin-marketplace). - Boolean elements from interactive dialogs are no longer serialized as strings. While we try to avoid breaking changes, this change was necessary to allow both the web and mobile apps to work with the boolean elements introduced with v5.16. -**IMPORTANT:** If you upgrade from a release earlier than 5.19, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.19, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -3819,6 +5716,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors [abdusabri](https://github.com/abdusabri), [aeomin](https://translate.mattermost.com/user/aeomin/), [agarciamontoro](https://github.com/agarciamontoro), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ali-farooq0](https://github.com/ali-farooq0), [allenlai18](https://github.com/allenlai18), [amyblais](https://github.com/amyblais), [andylibrian](https://github.com/andylibrian), [anidok](https://github.com/anidok), [AninditaBasu](https://github.com/AninditaBasu), [anon6789](https://github.com/anon6789), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [atulya-pandey](https://github.com/atulya-pandey), [avasconcelos114](https://github.com/avasconcelos114), [bbodenmiller](https://github.com/bbodenmiller), [bolariin](https://github.com/bolariin), [bpietraga](https://github.com/bpietraga), [bradjcoughlin](https://github.com/bradjcoughlin), [c-yan](https://github.com/c-yan), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [CEOehis](https://github.com/CEOehis), [chikei](https://github.com/chikei), [ChrisDobby](https://github.com/ChrisDobby), [chuttam](https://github.com/chuttam), [cjohannsen81](https://github.com/cjohannsen81), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [ctmusicnz](https://github.com/ctmusicnz), [davidjwilkins](https://github.com/davidjwilkins), [DE-mbecker](https://github.com/DE-mbecker), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [dlclark](https://github.com/dlclark), [dra](https://github.com/dra), [DSchalla](https://github.com/DSchalla), [emilioicai](https://github.com/emilioicai), [enahum](https://github.com/enahum), [enelson720](https://github.com/enelson720), [enolal826](https://github.com/enolal826), [esdrasbeleza](https://github.com/esdrasbeleza), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [flexo3001](https://github.com/flexo3001), [fm2munsh](https://github.com/fm2munsh), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gopheros](https://github.com/gopheros), [grubbins](https://github.com/grubbins), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [gsagula](https://github.com/gsagula), [gupsho](https://github.com/gupsho), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hector2](https://github.com/hector2), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [hunterlester](https://github.com/hunterlester), [ikeohachidi](https://github.com/ikeohachidi), [imisshtml](https://github.com/imisshtml), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [itao](https://github.com/itao), [jasonblais](https://github.com/jasonblais), [jasonlanderson](https://github.com/jasonlanderson), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jomaxro](https://github.com/jomaxro), [josephbaylon](https://github.com/josephbaylon), [JtheBAB](https://github.com/JtheBAB), [jupenur](https://github.com/jupenur), [justinegeffen](https://github.com/justinegeffen), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [karlmarxlopez](https://github.com/karlmarxlopez), [Kaya_Zeren](https://twitter.com/kaya_zeren), [khos2ow](https://github.com/khos2ow), [kosgrz](https://github.com/kosgrz), [larkox](https://github.com/larkox), [lawikip](https://github.com/lawikip), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lukewest](https://github.com/lukewest), [lurcio](https://github.com/lurcio), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [marianunez](https://github.com/marianunez), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mitchellroe](https://github.com/mitchellroe), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [nadalfederer](https://github.com/nadalfederer), [natalie-hub](https://github.com/natalie-hub), [niklabh](https://github.com/niklabh), [NiroshaV](https://github.com/NiroshaV), [nmlc](https://github.com/nmlc), [opllama2](https://github.com/opllama2), [phillipahereza](https://github.com/phillipahereza), [Pomyk](https://github.com/Pomyk), [popstr](https://github.com/popstr), [RajatVaryani](https://github.com/RajatVaryani), [rajudev](https://github.com/rajudev), [rascasoft](https://github.com/rascasoft), [rbradleyhaas](https://github.com/rbradleyhaas), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [RyanCommits](https://github.com/RyanCommits), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottjr632](https://github.com/scottjr632), [sij507](https://github.com/sij507), [somenet](https://github.com/somenet), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tasdomas](https://github.com/tasdomas), [thapakazi](https://github.com/thapakazi), [thefactremains](https://github.com/thefactremains), [themaverikk](https://github.com/themaverikk), [thePanz](https://github.com/thePanz), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [vesari](https://github.com/vesari), [VishalSwarnkar](https://github.com/VishalSwarnkar), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [xalkan](https://github.com/xalkan) +---- + ## Release v5.19 - [ESR](/administration/extended-support-release.html) Mattermost v5.19.0 contains low to high level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -3838,7 +5737,9 @@ Mattermost v5.19.0 contains low to high level security fixes. [Upgrading](/admin #### Breaking Changes - ``LockTeammateNameDisplay`` setting was moved to Enterprise Edition E20 as it was erroneously available in Team Edition and Enterprise Edition E10. -**IMPORTANT:** If you upgrade from a release earlier than 5.18, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.18, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Bug Fixes - Fixed an issue where email notifications were still sent in some cases while disabled in the user interface. @@ -3886,6 +5787,8 @@ Mattermost v5.19.0 contains low to high level security fixes. [Upgrading](/admin ### Contributors [aaronrothschild](https://github.com/aaronrothschild), [abdusabri](https://github.com/abdusabri), [abhisek](https://github.com/abhisek), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [ali-farooq0](https://github.com/ali-farooq0), [allenlai18](https://github.com/allenlai18), [alxsah](https://github.com/alxsah), [amyblais](https://github.com/amyblais), [anidok](https://github.com/anidok), [AninditaBasu](https://github.com/AninditaBasu), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [avegrv](https://github.com/avegrv), [benbhall](https://github.com/benbhall), [bpietraga](https://github.com/bpietraga), [bradjcoughlin](https://github.com/bradjcoughlin), [calebroseland](https://github.com/calebroseland), [catalintomai](https://github.com/catalintomai), [chikei](https://github.com/chikei), [ChrisDobby](https://github.com/ChrisDobby), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [darkestofdans](https://github.com/darkestofdans), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [ethervoid](https://github.com/ethervoid), [faase](https://github.com/faase), [fm2munsh](https://github.com/fm2munsh), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gopheros](https://github.com/gopheros), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [gsagula](https://github.com/gsagula), [gupsho](https://github.com/gupsho), [hahmadia](https://github.com/hahmadia), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [igomonov88](https://github.com/igomonov88), [ilgooz](https://github.com/ilgooz), [imisshtml](https://github.com/imisshtml), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jimiolaniyan](https://github.com/jimiolaniyan), [JtheBAB](https://github.com/JtheBAB), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kop](https://github.com/kop), [kosgrz](https://github.com/kosgrz), [larkox](https://github.com/larkox), [Lena](https://translate.mattermost.com/user/Lena/), [lenucksi](https://github.com/lenucksi), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lurcio](https://github.com/lurcio), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [MariadeAnton](https://github.com/MariadeAnton), [marianunez](https://github.com/marianunez), [mavegaf](https://github.com/mavegaf), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [Mycobee](https://github.com/Mycobee), [nadalfederer](https://github.com/nadalfederer), [natalie-hub](https://github.com/natalie-hub), [nevyangelova](https://github.com/nevyangelova), [nick-brady](https://github.com/nick-brady), [phillipahereza](https://github.com/phillipahereza), [Pomyk](https://github.com/Pomyk), [RajatVaryani](https://github.com/RajatVaryani), [ramkumarvenkat](https://github.com/ramkumarvenkat), [reflog](https://github.com/reflog), [renilJoseph](https://github.com/renilJoseph), [rodcorsi](https://github.com/rodcorsi), [saneletm](https://github.com/saneletm), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [sij507](https://github.com/sij507), [smacgregor](https://github.com/smacgregor), [src-r-r](https://github.com/src-r-r), [srkgupta](https://github.com/srkgupta), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [sunsingerus](https://github.com/sunsingerus), [svelle](https://github.com/svelle), [themaverikk](https://github.com/themaverikk), [thePanz](https://github.com/thePanz), [tomasmik](https://github.com/tomasmik), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [valentijnnieman](https://github.com/valentijnnieman), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [zujko](https://github.com/zujko) +---- + ## Release v5.18 - [Feature Release](/process/release-faq.html#release-overview) Mattermost v5.18.0 contains low to high level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -3908,7 +5811,9 @@ Mattermost v5.18.0 contains low to high level security fixes. [Upgrading](/admin - Removed ``Team.InviteId`` from the related Websocket event and sanitized it on all team API endpoints for users without invite permissions. - Removed the ability to change the type of a channel using the ``PUT /channels/{channel_id}`` API endpoint. The new ``PUT /channels/{channel_id}/privacy`` endpoint should be used for that purpose. -**IMPORTANT:** If you upgrade from a release earlier than 5.17, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.17, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -4050,6 +5955,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors [3mard](https://github.com/3mard), [a8uhnf](https://github.com/a8uhnf), [aaronrothschild](https://github.com/aaronrothschild), [abdusabri](https://github.com/abdusabri), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [akshaychhajed](https://github.com/akshaychhajed), [ali-farooq0](https://github.com/ali-farooq0), [allenlai18](https://github.com/allenlai18), [alxsah](https://github.com/alxsah), [amyblais](https://github.com/amyblais), [andresoro](https://github.com/andresoro), [anindha](https://github.com/anindha), [AninditaBasu](https://github.com/AninditaBasu), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [ashishbhate](https://github.com/ashishbhate), [avasconcelos114](https://github.com/avasconcelos114), [bradjcoughlin](https://github.com/bradjcoughlin), [brewsterbhg](https://github.com/brewsterbhg), [bvineyar](https://github.com/bvineyar), [cardoso](https://github.com/cardoso), [catalintomai](https://github.com/catalintomai), [chapa](https://github.com/chapa), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [cinlloc](https://github.com/cinlloc), [cjohannsen81](https://github.com/cjohannsen81), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [cpurta](https://github.com/cpurta), [crspeller](https://github.com/crspeller), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [drekar](https://github.com/drekar), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [enolal826](https://github.com/enolal826), [ethervoid](https://github.com/ethervoid), [etoaster](https://github.com/etoaster), [FlaviaBastos](https://github.com/FlaviaBastos), [fm2munsh](https://github.com/fm2munsh), [focusonmx](https://github.com/focusonmx), [g3rv4](https://github.com/g3rv4), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [goku321](https://github.com/goku321), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [HilalNazli](https://github.com/HilalNazli), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [ilgooz](https://github.com/ilgooz), [imisshtml](https://github.com/imisshtml), [iomodo](https://github.com/iomodo), [ishanray](https://github.com/ishanray), [ivanvc](https://github.com/ivanvc), [jabshire](https://github.com/jabshire), [jasonblais](https://github.com/jasonblais), [jaydeland](https://github.com/jaydeland), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jgbaylon](https://github.com/jgbaylon), [jimiolaniyan](https://github.com/jimiolaniyan), [johnthompson365](https://github.com/johnthompson365), [joshuabezaleel](https://github.com/joshuabezaleel), [jozuenoon](https://github.com/jozuenoon), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kanozec](https://github.com/kanozec), [karlmarxlopez](https://github.com/karlmarxlopez), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kdenz](https://github.com/kdenz), [kosgrz](https://github.com/kosgrz), [KuSh](https://github.com/KuSh), [larkox](https://github.com/larkox), [last-partizan](https://github.com/last-partizan), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [M-ZubairAhmed](https://github.com/M-ZubairAhmed), [m4ver1k](https://github.com/m4ver1k), [malaDev](https://github.com/malaDev), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [MathewtheCoder](https://github.com/MathewtheCoder), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [michaelschiffmm](https://github.com/michaelschiffmm), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [natalie-hub](https://github.com/natalie-hub), [nathanmkaya](https://github.com/nathanmkaya), [niklabh](https://github.com/niklabh), [nrekretep](https://github.com/nrekretep), [Pomyk](https://github.com/Pomyk), [pqzx](https://github.com/pqzx), [pradeepmurugesan](https://github.com/pradeepmurugesan), [promulo](https://github.com/promulo), [PunitGr](https://github.com/PunitGr), [r4zorgeek](https://github.com/r4zorgeek), [RajatVaryani](https://github.com/RajatVaryani), [reflog](https://github.com/reflog), [rfoyard](https://github.com/rfoyard), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [SamWolfs](https://github.com/SamWolfs), [saneletm](https://github.com/saneletm), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottleedavis](https://github.com/scottleedavis), [Sheshagiri](https://github.com/Sheshagiri), [sij507](https://github.com/sij507), [sphr](https://github.com/sphr), [srkgupta](https://github.com/srkgupta), [sstaszkiewicz-copperleaf](https://github.com/sstaszkiewicz-copperleaf), [steevsachs](https://github.com/steevsachs), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [sunsingerus](https://github.com/sunsingerus), [svelle](https://github.com/svelle), [thePanz](https://github.com/thePanz), [TonPC64](https://github.com/TonPC64), [TQuock](https://github.com/TQuock), [uhlhosting](https://github.com/uhlhosting), [unlikelygeek](https://github.com/unlikelygeek), [valentijnnieman](https://github.com/valentijnnieman), [ventz](https://github.com/ventz), [vinicio](https://github.com/vinicio), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [wiggin77](https://github.com/wiggin77), [Willyfrog](https://github.com/Willyfrog), [wlsf82](https://github.com/wlsf82), [YuikoTakada](https://github.com/YuikoTakada) +---- + ## Release v5.17 - [Quality Release](/process/release-faq.html#release-overview) Mattermost v5.17.0 contains medium to high level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -4117,6 +6024,8 @@ A setting option was added to `config.json`. Below is a list of the additions an ### Contributors [a-arias](https://github.com/a-arias), [A-Hilaly](https://github.com/A-Hilaly), [a8uhnf](https://github.com/a8uhnf), [aaronrothschild](https://github.com/aaronrothschild), [abadojack](https://github.com/abadojack), [abdusabri](https://github.com/abdusabri), [abelharisov](https://github.com/abelharisov), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [agnivade](https://github.com/agnivade), [agusl88](https://github.com/agusl88), [akantsevoi](https://github.com/akantsevoi), [akpark](https://github.com/akpark), [akshaychhajed](https://github.com/akshaychhajed), [aladhims](https://github.com/aladhims), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [ananichev](https://github.com/ananichev), [anchepiece](https://github.com/anchepiece), [andresoro](https://github.com/andresoro), [anindha](https://github.com/anindha), [aqche](https://github.com/aqche), [arjitc](https://github.com/arjitc), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [bensooraj](https://github.com/bensooraj), [boonwj](https://github.com/boonwj), [bradjcoughlin](https://github.com/bradjcoughlin), [brewsterbhg](https://github.com/brewsterbhg), [bryanculver](https://github.com/bryanculver), [catalintomai](https://github.com/catalintomai), [cedrickring](https://github.com/cedrickring), [chahat-arora](https://github.com/chahat-arora), [chikei](https://github.com/chikei), [ChrisDobby](https://github.com/ChrisDobby), [chuttam](https://github.com/chuttam), [cinlloc](https://github.com/cinlloc), [codevbus](https://github.com/codevbus), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [CSBatchelor](https://github.com/CSBatchelor), [dailos2coders](https://github.com/dailos2coders), [DaKeiser](https://github.com/DaKeiser), [deanwhillier](https://github.com/deanwhillier), [dedifferentiator](https://github.com/dedifferentiator), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [dnguy078](https://github.com/dnguy078), [drekar](https://github.com/drekar), [DropNib](https://github.com/DropNib), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [FlaviaBastos](https://github.com/FlaviaBastos), [gabrieljackson](https://github.com/gabrieljackson), [gfelixc](https://github.com/gfelixc), [gigawhitlocks](https://github.com/gigawhitlocks), [goku321](https://github.com/goku321), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [guigui64](https://github.com/guigui64), [gupsho](https://github.com/gupsho), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [hector2](https://github.com/hector2), [hectorskypl](https://github.com/hectorskypl), [HelioStrike](https://github.com/HelioStrike), [heowc](https://github.com/heowc), [hmhealey](https://github.com/hmhealey), [hypnoglow](https://github.com/hypnoglow), [iDevoid](https://github.com/iDevoid), [imavroukakis](https://github.com/imavroukakis), [imisshtml](https://github.com/imisshtml), [iomodo](https://github.com/iomodo), [isacikgoz](https://github.com/isacikgoz), [italolelis](https://github.com/italolelis), [iwataka](https://github.com/iwataka), [jairojj](https://github.com/jairojj), [jasminexie](https://github.com/jasminexie), [jasonblais](https://github.com/jasonblais), [jatinjtg](https://github.com/jatinjtg), [JeewhanR](https://github.com/JeewhanR), [jesperhansen17](https://github.com/jesperhansen17), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jkl5616](https://github.com/jkl5616), [joebordes](https://github.com/joebordes), [johnthompson365](https://github.com/johnthompson365), [jordeguevara](https://github.com/jordeguevara), [jorgeruvalcaba](https://github.com/jorgeruvalcaba), [josephk96](https://github.com/josephk96), [JosephSamela](https://github.com/JosephSamela), [joshuabezaleel](https://github.com/joshuabezaleel), [jozuenoon](https://github.com/jozuenoon), [JtheBAB](https://github.com/JtheBAB), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [karanrn](https://github.com/karanrn), [karlmarxlopez](https://github.com/karlmarxlopez), [kashifsoofi](https://github.com/kashifsoofi), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kethinov](https://github.com/kethinov), [kgeorgiou](https://github.com/kgeorgiou), [larkox](https://github.com/larkox), [laurapareja](https://github.com/laurapareja), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [LK4D4](https://github.com/LK4D4), [lucianomagrao](https://github.com/lucianomagrao), [Lumexralph](https://github.com/Lumexralph), [lurcio](https://github.com/lurcio), [malaDev](https://github.com/malaDev), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [mauricio](https://github.com/mauricio), [MayMeow](https://github.com/MayMeow), [mbluemer](https://github.com/mbluemer), [meilon](https://github.com/meilon), [Menelion](https://github.com/Menelion), [mgdelacroix](https://github.com/mgdelacroix), [mhartenbower](https://github.com/mhartenbower), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mistikel](https://github.com/mistikel), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [Mrigank11](https://github.com/Mrigank11), [Muscaw](https://github.com/Muscaw), [Mycobee](https://github.com/Mycobee), [nfriend](https://github.com/nfriend), [nicnicknicky](https://github.com/nicnicknicky), [niklabh](https://github.com/niklabh), [njkevlani](https://github.com/njkevlani), [octoquad](https://github.com/octoquad), [oksmelnik](https://github.com/oksmelnik), [pbitty](https://github.com/pbitty), [Pensu](https://github.com/Pensu), [phillipahereza](https://github.com/phillipahereza), [Phizzard](https://github.com/Phizzard), [pikami](https://github.com/pikami), [Pomyk](https://github.com/Pomyk), [pqzx](https://github.com/pqzx), [pradeepmurugesan](https://github.com/pradeepmurugesan), [ptisserand](https://github.com/ptisserand), [pushkyn](https://github.com/pushkyn), [raghuiamsingh](https://github.com/raghuiamsingh), [RajatVaryani](https://github.com/RajatVaryani), [reflog](https://github.com/reflog), [rfoyard](https://github.com/rfoyard), [rodcorsi](https://github.com/rodcorsi), [rohanjulka19](https://github.com/rohanjulka19), [rv404674](https://github.com/rv404674), [sahilsharma011](https://github.com/sahilsharma011), [SamWolfs](https://github.com/SamWolfs), [sascha-andres](https://github.com/sascha-andres), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottleedavis](https://github.com/scottleedavis), [sdesani](https://github.com/sdesani), [SezalAgrawal](https://github.com/SezalAgrawal), [shahbour](https://github.com/shahbour), [Sheshagiri](https://github.com/Sheshagiri), [simonfrey](https://github.com/simonfrey), [simross](https://github.com/simross), [sourabkumarkeshri](https://github.com/sourabkumarkeshri), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [srkgupta](https://github.com/srkgupta), [steevsachs](https://github.com/steevsachs), [stefan-malcek](https://github.com/stefan-malcek), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tgkouras](https://github.com/tgkouras), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [ThiefMaster](https://github.com/ThiefMaster), [tpaschalis](https://github.com/tpaschalis), [uhlhosting](https://github.com/uhlhosting), [Vaelor](https://github.com/Vaelor), [valentijnnieman](https://github.com/valentijnnieman), [vdepatla](https://github.com/vdepatla), [VictorAvelar](https://github.com/VictorAvelar), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [willdot](https://github.com/willdot), [Willyfrog](https://github.com/Willyfrog), [wyze](https://github.com/wyze), [xrav3nz](https://github.com/xrav3nz) +---- + ## Release v5.16 - [Feature Release](/process/release-faq.html#release-overview) - **v5.16.5, released 2020-01-08** @@ -4285,6 +6194,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors [a-arias](https://github.com/a-arias), [aaronrothschild](https://github.com/aaronrothschild), [abdusabri](https://github.com/abdusabri), [adarj](https://github.com/adarj), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [agusl88](https://github.com/agusl88), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [aneeeshp](https://github.com/aneeeshp), [ankitrgadiya](https://github.com/ankitrgadiya), [anuragbhd](https://github.com/anuragbhd), [arjitc](https://github.com/arjitc), [arshchimni](https://github.com/arshchimni), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [bradjcoughlin](https://github.com/bradjcoughlin), [cardoso](https://github.com/cardoso), [carlosasj](https://github.com/carlosasj), [chikei](https://github.com/chikei), [chuttam](https://github.com/chuttam), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [DarrellRichards](https://github.com/DarrellRichards), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [dhadiseputro](https://github.com/dhadiseputro), [DHaussermann](https://github.com/DHaussermann), [enahum](https://github.com/enahum), [esdrasbeleza](https://github.com/esdrasbeleza), [esethna](https://github.com/esethna), [freerider7777](https://github.com/freerider7777), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [hector2](https://github.com/hector2), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [hvhallmann](https://github.com/hvhallmann), [imisshtml](https://github.com/imisshtml), [iomodo](https://github.com/iomodo), [it33](https://github.com/it33), [janvt](https://github.com/janvt), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jkl5616](https://github.com/jkl5616), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [liusy182](https://github.com/liusy182), [Lumexralph](https://github.com/Lumexralph), [lurcio](https://github.com/lurcio), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [MatthewDorner](https://github.com/MatthewDorner), [mcrwfrd](https://github.com/mcrwfrd), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [nfriend](https://github.com/nfriend), [niklabh](https://github.com/niklabh), [OCram85](https://github.com/OCram85), [paddatrapper](https://github.com/paddatrapper), [patrickkang](https://github.com/patrickkang), [pbitty](https://github.com/pbitty), [phillipahereza](https://github.com/phillipahereza), [QamarFarooq](https://github.com/QamarFarooq), [RajatVaryani](https://github.com/RajatVaryani), [reflog](https://github.com/reflog), [renilJoseph](https://github.com/renilJoseph), [rodcorsi](https://github.com/rodcorsi), [rohanjulka19](https://github.com/rohanjulka19), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [sbishel](https://github.com/sbishel), [scottleedavis](https://github.com/scottleedavis), [Selimix](https://github.com/Selimix), [sij507](https://github.com/sij507), [sowmiyamuthuraman](https://github.com/sowmiyamuthuraman), [srkgupta](https://github.com/srkgupta), [stoerchl](https://github.com/stoerchl), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [tejashreecd](https://github.com/tejashreecd), [tekminewe](https://github.com/tekminewe), [tgkouras](https://github.com/tgkouras), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [threepwood-mm](https://github.com/threepwood-mm), [tnir](https://github.com/tnir), [ulhosting](https://github.com/uhlhosting), [valentijnnieman](https://github.com/valentijnnieman), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [Willyfrog](https://github.com/Willyfrog), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.15 - [Quality Release](/process/release-faq.html#release-overview) - **v5.15.5, released 2020-01-08** @@ -4372,6 +6283,8 @@ Mattermost v5.15.0 contains low level security fixes. [Upgrading](/administratio - [a-arias](https://github.com/a-arias), [aaronrothschild](https://github.com/aaronrothschild), [accxiagmbh](https://github.com/accxiagmbh), [aeomin](https://translate.mattermost.com/user/aeomin/), [Akito13](https://github.com/Akito13), [ali-farooq0](https://github.com/ali-farooq0), [Amonith](https://github.com/Amonith), [amyblais](https://github.com/amyblais), [angelbarrera92](https://github.com/angelbarrera92), [ankitrgadiya](https://github.com/ankitrgadiya), [asaadmahmood](https://github.com/asaadmahmood), [atpons](https://github.com/atpons), [bradjcoughlin](https://github.com/bradjcoughlin), [cardoso](https://github.com/cardoso), [cdncat](https://github.com/cdncat), [chikei](https://github.com/chikei), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [eilgin](https://github.com/eilgin), [ejachang](https://github.com/ejachang), [elyscape](https://github.com/elyscape), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [eshyong](https://github.com/eshyong), [ethervoid](https://github.com/ethervoid), [g3rv4](https://github.com/g3rv4), [gabrieljackson](https://github.com/gabrieljackson), [gigawhitlocks](https://github.com/gigawhitlocks), [goku321](https://github.com/goku321), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [hahmadia](https://github.com/hahmadia), [hanzei](https://github.com/hanzei), [healthchecks](https://github.com/healthchecks), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [iomodo](https://github.com/iomodo), [irbrad](https://github.com/irbrad), [it33](https://github.com/it33), [ivenk](https://github.com/ivenk), [janvt](https://github.com/janvt), [jasonblais](https://github.com/jasonblais), [jesperhansen17](https://github.com/jesperhansen17), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jozuenoon](https://github.com/jozuenoon), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kdenz](https://github.com/kdenz), [kosgrz](https://github.com/kosgrz), [krjn](https://github.com/krjn), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [Lisenish](https://github.com/Lisenish), [liusy182](https://github.com/liusy182), [lurcio](https://github.com/lurcio), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [MatthewDorner](https://github.com/MatthewDorner), [matthewshirley](https://github.com/matthewshirley), [meilon](https://github.com/meilon), [metanerd](https://github.com/metanerd), [mgdelacroix](https://github.com/mgdelacroix), [michaelgamble](https://github.com/michaelgamble), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [pichouk](https://github.com/pichouk), [Rajakavitha1](https://github.com/Rajakavitha1), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [sadohert](https://github.com/sadohert), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [sij507](https://github.com/sij507), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [threepwood-mm](https://github.com/threepwood-mm), [tnir](https://github.com/tnir), [ulhosting](https://github.com/uhlhosting), [uusijani](https://github.com/uusijani), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [Willyfrog](https://github.com/Willyfrog), [wyze](https://github.com/wyze) +---- + ## Release v5.14 - [Feature Release](/process/release-faq.html#release-overview) - **v5.14.5, released 2019-10-24** @@ -4401,7 +6314,9 @@ Mattermost v5.14.0 contains a medium level security fix. [Upgrading](/administra - Webhooks are now only displayed if the user is the creator of the webhook or a system administrator. - With the update from Google+ to Google People, system admins need to ensure the ``GoogleSettings.Scope`` config.json setting is set to ``profile email`` and ``UserAPIEndpoint`` setting should be set to ``https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata`` per [updated documentation](/deployment/sso-google.html). -**IMPORTANT:** If you upgrade from a release earlier than 5.13, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.13, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -4564,6 +6479,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [a-arias](https://github.com/a-arias), [aaronrothschild](https://github.com/aaronrothschild), [aayushbisen](https://github.com/aayushbisen), [adzimzf](https://github.com/adzimzf), [aeomin](https://translate.mattermost.com/user/aeomin/), [AGMETEOR](https://github.com/AGMETEOR), [alejandrosame](https://github.com/alejandrosame), [ali-farooq0](https://github.com/ali-farooq0), [alxsah](https://github.com/alxsah), [amyblais](https://github.com/amyblais), [asaadmahmood](https://github.com/asaadmahmood), [bbodenmiller](https://github.com/bbodenmiller), [bnoggle](https://github.com/bnoggle), [bradjcoughlin](https://github.com/bradjcoughlin), [chikei](https://github.com/chikei), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [devinbinnie](https://github.com/devinbinnie), [DSchalla](https://github.com/DSchalla), [elyscape](https://github.com/elyscape), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [eshyong](https://github.com/eshyong), [gabrieljackson](https://github.com/gabrieljackson), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [hvhallmann](https://github.com/hvhallmann), [Hyaxia](https://github.com/Hyaxia), [Inconnu08](https://github.com/Inconnu08), [irbrad](https://github.com/irbrad), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jesperhansen17](https://github.com/jesperhansen17), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnthompson365](https://github.com/johnthompson365), [Jonany](https://github.com/Jonany), [joshuabezaleel](https://github.com/joshuabezaleel), [justinegeffen](https://github.com/justinegeffen), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [keaton185](https://github.com/keaton185), [kosgrz](https://github.com/kosgrz), [krjn](https://github.com/krjn), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lpadgett](https://github.com/lpadgett), [lurcio](https://github.com/lurcio), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mounicapaladugu](https://github.com/mounicapaladugu), [mzaks](https://github.com/mzaks), [noxer](https://github.com/noxer), [ollykel](https://github.com/ollykel), [PeterDaveHello](https://github.com/PeterDaveHello), [phillipahereza](https://github.com/phillipahereza), [piperRyan](https://github.com/piperRyan), [Rajakavitha1](https://github.com/Rajakavitha1), [RajatVaryani](https://github.com/RajatVaryani), [rajiv-k](https://github.com/rajiv-k), [reflog](https://github.com/reflog), [rexredinger](https://github.com/rexredinger), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [Selimix](https://github.com/Selimix), [SezalAgrawal](https://github.com/SezalAgrawal), [srkgupta](https://github.com/srkgupta), [steevsachs](https://github.com/steevsachs), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tapaswenipathak](https://github.com/tapaswenipathak), [tekminewe](https://github.com/tekminewe), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [ulhosting](https://github.com/uhlhosting), [VolatianaYuliana](https://github.com/VolatianaYuliana), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [Willyfrog](https://github.com/Willyfrog) +---- + ## Release v5.13 - [Quality Release](/process/release-faq.html#release-overview) Mattermost v5.13.0 contains low level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -4658,6 +6575,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [aaronrothschild](https://github.com/aaronrothschild), [aeomin](https://translate.mattermost.com/user/aeomin/), [adzimzf](https://github.com/adzimzf), [alxsah](https://github.com/alxsah), [amyblais](https://github.com/amyblais), [asaadmahmood](https://github.com/asaadmahmood), [Banyango](https://github.com/Banyango), [bbodenmiller](https://github.com/bbodenmiller), [bezumkin](https://github.com/bezumkin), [bolariin](https://github.com/bolariin), [bradjcoughlin](https://github.com/bradjcoughlin), [carmo-evan](https://github.com/carmo-evan), [chikei](https://github.com/chikei), [cjohannsen81](https://github.com/cjohannsen81), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cseeger-epages](https://github.com/cseeger-epages), [Dak425](https://github.com/Dak425), [danmaas](https://github.com/danmaas), [deanwhillier](https://github.com/deanwhillier), [dependabot[bot]](https://github.com/dependabot[bot]), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [elyscape](https://github.com/elyscape), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [ewwollesen](https://github.com/ewwollesen), [gabrieljackson](https://github.com/gabrieljackson), [georgewitteman](https://github.com/georgewitteman), [GianOrtiz](https://github.com/GianOrtiz), [giorgosdi](https://github.com/giorgosdi), [glebtv](https://github.com/glebtv), [goku321](https://github.com/goku321), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [hanzei](https://github.com/hanzei), [harshilsharma63](https://github.com/harshilsharma63), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [Inconnu08](https://github.com/Inconnu08), [iomodo](https://github.com/iomodo), [it33](https://github.com/it33), [ivenk](https://github.com/ivenk), [jasonblais](https://github.com/jasonblais), [jesperhansen17](https://github.com/jesperhansen17), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jkl5616](https://github.com/jkl5616), [joewaitye](https://github.com/joewaitye), [johnthompson365](https://github.com/johnthompson365), [Jonany](https://github.com/Jonany), [jsmestad](https://github.com/jsmestad), [JtheBAB](https://github.com/JtheBAB), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kevinetienne](https://github.com/kevinetienne), [kim95175](https://github.com/kim95175), [kincl](https://github.com/kincl), [kosgrz](https://github.com/kosgrz), [krjn](https://github.com/krjn), [lassimus](https://github.com/lassimus), [Lena](https://translate.mattermost.com/user/Lena/), [letsila](https://github.com/letsila), [levb](https://github.com/levb),[lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [LocalHeroPro](https://github.com/LocalHeroPro), [lurcio](https://github.com/lurcio), [manland](https://github.com/manland), [marianunez](https://github.com/marianunez), [maruTA-bis5](https://github.com/maruTA-bis5), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mjthomp95](https://github.com/mjthomp95), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [moksahero](https://github.com/moksahero), [mounicapaladugu](https://github.com/mounicapaladugu), [mstoli](https://github.com/mstoli), [mzaks](https://github.com/mzaks), [nafisfaysal](https://github.com/nafisfaysal), [nils-schween](https://github.com/nils-schween), [patterns](https://github.com/patterns), [piperRyan](https://github.com/piperRyan), [pradeepmurugesan](https://github.com/pradeepmurugesan), [RajatVaryani](https://github.com/RajatVaryani), [reflog](https://github.com/reflog), [renatopeterman](https://github.com/renatopeterman), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [SezalAgrawal](https://github.com/SezalAgrawal), [Sheshagiri](https://github.com/Sheshagiri), [srkgupta](https://github.com/srkgupta), [steevsachs](https://github.com/steevsachs), [streamer45](https://github.com/streamer45), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tapaswenipathak](https://github.com/tapaswenipathak), [tarikeshaq](https://github.com/tarikeshaq), [tekminewe](https://github.com/tekminewe), [Theaxiom](https://github.com/Theaxiom), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [ThiefMaster](https://github.com/ThiefMaster), [tomasmik](https://github.com/tomasmik), [ulhosting](https://github.com/uhlhosting), [utaani](https://github.com/utaani), [waseem18](https://github.com/waseem18), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [willdot](https://github.com/willdot), [Willyfrog](https://github.com/Willyfrog), [Wipeout55](https://github.com/Wipeout55), [yuya-oc](https://github.com/yuya-oc), [zkry](https://github.com/zkry) +---- + ## Release v5.12 - Feature Release Mattermost v5.12.0 contains low to medium level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -4686,7 +6605,9 @@ Mattermost v5.12.0 contains low to medium level security fixes. [Upgrading](/adm - Image link and YouTube previews do not display unless **System Console > Enable Link Previews** is enabled. Please ensure that your Mattermost server is connected to the internet and has network access to the websites from which previews are expected to appear. [Learn more here](/administration/config-settings.html#enable-link-previews). - ``ExperimentalEnablePostMetadata`` setting was removed. Post metadata, including post dimensions, is now stored in the database to correct scroll position and eliminate scroll jumps as content loads in a channel. -**IMPORTANT:** If you upgrade from a release earlier than 5.11, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.11, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -4834,6 +6755,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors - [aeomin](https://translate.mattermost.com/user/aeomin/), [adzimzf](https://github.com/adzimzf), [amyblais](https://github.com/amyblais), [andresoro](https://github.com/andresoro), [asaadmahmood](https://github.com/asaadmahmood), [bolariin](https://github.com/bolariin), [bradjcoughlin](https://github.com/bradjcoughlin), [carmo-evan](https://github.com/carmo-evan), [chahat-arora](https://github.com/chahat-arora), [chikei](https://github.com/chikei), [cjohannsen81](https://github.com/cjohannsen81), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [composednitin](https://github.com/composednitin), [CooperAtive](https://github.com/CooperAtive), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [d28park](https://github.com/d28park), [danmaas](https://github.com/danmaas), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [dustinkirkland](https://github.com/dustinkirkland), [ejachang](https://github.com/ejachang), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [evan-a-a](https://github.com/evan-a-a), [farhadab](https://github.com/farhadab), [fjaeger](https://github.com/fjaeger), [gabrieljackson](https://github.com/gabrieljackson), [GianOrtiz](https://github.com/GianOrtiz), [giorgosdi](https://github.com/giorgosdi), [greensteve](https://github.com/greensteve), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [henrymori](https://github.com/henrymori), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [iomodo](https://github.com/iomodo), [IshankGulati](https://github.com/IshankGulati), [it33](https://github.com/it33), [ivanaairenee](https://github.com/ivanaairenee), [jasonblais](https://github.com/jasonblais), [JerryFireman](https://github.com/JerryFireman), [jesperhansen17](https://github.com/jesperhansen17), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [jkl5616](https://github.com/jkl5616), [johnthompson365](https://github.com/johnthompson365), [JtheBAB](https://github.com/JtheBAB), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kkirsche](https://github.com/kkirsche), [kosgrz](https://github.com/kosgrz), [Lena](https://translate.mattermost.com/user/Lena/), [letsila](https://github.com/letsila), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [liusy182](https://github.com/liusy182), [marianunez](https://github.com/marianunez), [matshch](https://github.com/matshch), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [MikeNicholls](https://github.com/MikeNicholls), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [pichouk](https://github.com/pichouk), [pradeepmurugesan](https://github.com/pradeepmurugesan), [prapti](https://github.com/prapti), [pravan](https://github.com/pravan), [redg3ar](https://github.com/redg3ar), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [rvillablanca](https://github.com/rvillablanca), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [seansackowitz](https://github.com/seansackowitz), [sebastien-prudhomme](https://github.com/sebastien-prudhomme), [sergeyzhukov](https://github.com/sergeyzhukov), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tapaswenipathak](https://github.com/tapaswenipathak), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thePanz), [therealpuneeth20](https://github.com/therealpuneeth20), [torgeirl](https://github.com/torgeirl), [ulhosting](https://github.com/uhlhosting), [VolatianaYuliana](https://github.com/VolatianaYuliana), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [Wipeout55](https://github.com/Wipeout55), [z4cco](https://github.com/z4cco) +---- + ## Release v5.11 - Quality Release Mattermost v5.11.0 contains low level security fixes. [Upgrading](/administration/upgrade.html) is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -4847,7 +6770,9 @@ Mattermost v5.11.0 contains low level security fixes. [Upgrading](/administratio - If your integration uses ``Update.Props == nil`` to clear ``Props``, this will no longer work in 5.11+. Instead, use ``Update.Props == {}`` to clear properties. This change was made because ``Update.Props == nil`` unintentionally cleared all ``Props``, such as the profile picture, instead of preserving them. -**IMPORTANT:** If you upgrade from a release earlier than 5.10, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.10, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Bug Fixes - Fixed an issue where plugin settings link didn't appear until refresh after uploading a plugin in the System Console. @@ -4892,6 +6817,8 @@ Thank you to everyone who contributed to the Mattermost project in April 2019! [aeomin](https://translate.mattermost.com/user/aeomin/), [akrfjmt](https://github.com/akrfjmt), [ali-farooq0](https://github.com/ali-farooq0), [amyblais](https://github.com/amyblais), [andresoro](https://github.com/andresoro), [asaadmahmood](https://github.com/asaadmahmood), [BotKube](https://www.botkube.io/), [bradjcoughlin](https://github.com/bradjcoughlin), [bytemine GmbH](https://github.com/bytemine), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/com/comharris), [CooperAtive](https://github.com/CooperAtive), [coreyhulen](https://github.com/coreyhulen), [courtneypattison](https://github.com/courtneypattison), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [d28park](https://github.com/d28park), [danmaas](https://github.com/danmaas), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fcorrea](https://github.com/fcorrea), [gabrieljackson](https://github.com/gabrieljackson), [gnufede](https://github.com/gnufede), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [happygaijin](https://github.com/happygaijin), [harshilsharma](https://github.com/harshilsharma), [hectorskypl](https://github.com/hectorskypl), [Herzum](https://github.com/herzum), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jfrerich](https://github.com/jfrerich), [johnbellone](https://github.com/johnbellone), [johnthompson365](https://github.com/johnthompson365), [JVasky](https://github.com/JVasky), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kingisaac95](https://github.com/kingisaac95), [kmandagie](https://github.com/kmandagie), [kosgrz](https://github.com/kosgrz), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [liusy182](https://github.com/liusy182), [ljmccaff](https://github.com/ljmccaff), [Mario-Hofstaetter](https://github.com/Mario-Hofstaetter), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [MParvin](https://github.com/MParvin), [mstoli](https://github.com/mstoli), [ninanung](https://github.com/ninanung), [oliverJurgen](https://github.com/oliverJurgen), [PeterDaveHello](https://github.com/PeterDaveHello), [prapti](https://github.com/prapti), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [RyPoints](https://github.com/RyPoints), [s4kh](https://github.com/s4kh), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [Sheshagiri](https://github.com/Sheshagiri), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tengis617](https://github.com/tengis617), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thepanz), [thepill](https://github.com/thepill), [therealpuneeth20](https://github.com/therealpuneeth20), [ThiefMaster](https://github.com/ThiefMaster), [torgeirl](https://github.com/torgeirl), [tylarb](https://github.com/tylarb), [ulhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [z4cco](https://github.com/z4cco) +---- + ## Release v5.10 - Feature Release Mattermost v5.10.0 contains medium to high level security fixes. [Upgrading](/administration/upgrade.html) is highly recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -4907,7 +6834,9 @@ Mattermost v5.10.0 contains medium to high level security fixes. [Upgrading](/ad - ``SupportedTimezonesPath`` setting in config.json and changes to timezones in the UI based on the timezones.json file was removed. This was made to support [storing configurations in the database](/administration/config-in-database.html#configuration-in-a-database). -**IMPORTANT:** If you upgrade from a release earlier than 5.9, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from a release earlier than 5.9, please read the other [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5037,6 +6966,8 @@ Thank you to everyone who contributed to the Mattermost project in March 2019! - [7-plus-t](https://github.com/7-plus-t), [aeomin](https://translate.mattermost.com/user/aeomin/), [ali-farooq0](https://github.com/ali-farooq0), [amaddio](https://github.com/amaddio), [amyblais](https://github.com/amyblais), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [bcalik](https://github.com/bcalik), [benschuster788](https://github.com/benschuster788), [bradjcoughlin](https://github.com/bradjcoughlin), [checkaayush](https://github.com/checkaayush), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [comharris](https://github.com/comharris), [courtneypattison](https://github.com/courtneypattison), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [d28park](https://github.com/d28park), [danmaas](https://github.com/danmaas), [dchukmasov](https://github.com/dchukmasov), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fcorrea](https://github.com/fcorrea), [gnufede](https://github.com/gnufede), [grundleborg](https://github.com/grundleborg), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [gulhe](https://github.com/gulhe), [gupsho](https://github.com/gupsho), [hanzei](https://github.com/hanzei), [harshilsharma](https://github.com/harshilsharma), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [Hobby-Student](https://github.com/Hobby-Student), [it33](https://github.com/it33), [j8r](https://github.com/j8r), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jk2K](https://github.com/jk2K), [johnsenner](https://github.com/johnsenner), [JtheBAB](https://github.com/JtheBAB), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kelvintyb](https://github.com/kelvintyb), [kjkeane](https://github.com/kjkeane), [kosgrz](https://github.com/kosgrz), [Lena](https://translate.mattermost.com/user/Lena/), [letsila](https://github.com/letsila), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [m3phistopheles](https://github.com/m3phistopheles), [MartB](https://github.com/MartB), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [MirlanMaksv](https://github.com/MirlanMaksv), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [nadaa](https://github.com/nadaa), [oliverJurgen](https://github.com/oliverJurgen), [pesintta](https://github.com/pesintta), [reflog](https://github.com/reflog), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [sadohert](https://github.com/sadohert), [sandlis](https://github.com/sandlis), [saturninoabril](https://github.com/saturninoabril), [stylianosrigas](https://github.com/stylianosrigas), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tejasbubane](https://github.com/tejasbubane), [thekiiingbob](https://github.com/thekiiingbob), [thePanz](https://github.com/thepanz), [ulhosting](https://github.com/uhlhosting), [wbernest](https://github.com/wbernest), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.9 - [ESR](/administration/extended-support-release.html) Mattermost v5.9.0 contains low to medium level security fixes. [Upgrading](/administration/upgrade.html) is highly recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -5066,7 +6997,9 @@ Mattermost v5.9.0 contains low to medium level security fixes. [Upgrading](/admi - If **DisableLegacyMfa** setting in ``config.json`` is set to ``true`` and multi-factor authentication is enabled, ensure your users have upgraded to mobile app version 1.17 or later. Otherwise, users who have MFA enabled may not be able to log in successfully. See [Important Upgrade Notes](/administration/important-upgrade-notes.html) for more details. - The public IP of the Mattermost application server is considered a reserved IP for additional security hardening in the context of untrusted external requests such as Open Graph metadata, webhooks or slash commands. See [Important Upgrade Notes](/administration/important-upgrade-notes.html) for more details. -**IMPORTANT:** If you upgrade from another release than 5.8, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.8, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Bug Fixes @@ -5119,6 +7052,8 @@ Thank you to everyone who contributed to the Mattermost project in February 2019 [adzimzf](https://github.com/adzimzf), [aeomin](https://translate.mattermost.com/user/aeomin/), [amyblais](https://github.com/amyblais), [asaadmahmood](https://github.com/asaadmahmood), [aswathkk](https://github.com/aswathkk), [awbraunstein](https://github.com/awbraunstein), [bbodenmiller](https://github.com/bbodenmiller), [BK1603](https://github.com/BK1603), [bradjcoughlin](https://github.com/bradjcoughlin), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [courtneypattison](https://github.com/courtneypattison), [cpanato](https://github.com/cpanato), [cpoile](https://github.com/cpoile), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [danmaas](https://github.com/danmaas), [dannymohammad](https://github.com/dannymohammad), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [dom3k](https://github.com/dom3k), [dos1701](https://github.com/dos1701), [DSchalla](https://github.com/DSchalla), [ejachang](https://github.com/ejachang), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fcorrea](https://github.com/fcorrea), [gabrieljackson](https://github.com/gabrieljackson), [gruceqq](https://translate.mattermost.com/user/gruceqq/), [gupsho](https://github.com/gupsho), [hannaparks](https://github.com/hannaparks), [hanzei](https://github.com/hanzei), [hectorskypl](https://github.com/hectorskypl), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jdillard](https://github.com/jdillard), [jespino](https://github.com/jespino), [jfcastroluis](https://github.com/jfcastroluis), [jfrerich](https://github.com/jfrerich), [JtheBAB](https://github.com/JtheBAB), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kosgrz](https://github.com/kosgrz), [koukouloforos](https://github.com/koukouloforos), [kscheel](https://github.com/kscheel), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [manland](https://github.com/manland), [maruTA-bis5](https://github.com/maruTA-bis5), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [migbot](https://github.com/migbot), [MirlanMaksv](https://github.com/MirlanMaksv), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [onnadi-work](https://github.com/onnadi-work), [patniharshit](https://github.com/patniharshit), [pichouk](https://github.com/pichouk), [R-Wang97](https://github.com/R-Wang97), [Robbe7730](https://github.com/Robbe7730), [rodcorsi](https://github.com/rodcorsi), [sadohert](https://github.com/sadohert), [sandlis](https://github.com/sandlis), [sanojsubran](https://github.com/sanojsubran), [saturninoabril](https://github.com/saturninoabril), [staabm](https://github.com/staabm), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tauu](https://github.com/tauu), [thedingwing](https://github.com/thedingwing), [thePanz](https://github.com/thepanz), [ulhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc), [zetaab](https://github.com/zetaab) +---- + ## Release v5.8 - Feature Release Mattermost v5.8.0 contains low to high level security fixes. [Upgrading](/administration/upgrade.html) is highly recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -5135,7 +7070,9 @@ Mattermost v5.8.0 contains low to high level security fixes. [Upgrading](/admini - The local image proxy has been added, and images displayed within the client are now affected by the ``AllowUntrustedInternalConnections`` setting. See [documentation](/administration/image-proxy.html#local-image-proxy) for more details if you have trouble loading images. -**IMPORTANT:** If you upgrade from another release than 5.7, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.7, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5228,7 +7165,9 @@ Multiple setting options were added to `config.json`. Below is a list of the add Thank you to everyone who contributed to the Mattermost project in January 2019! [adzimzf](https://github.com/adzimzf), [aeomin](https://translate.mattermost.com/user/aeomin/), [amorriscode](https://github.com/amorriscode), [amyblais](https://github.com/amyblais), [ArchRoller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [bradjcoughlin](https://github.com/bradjcoughlin), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [danmaas](https://github.com/danmaas), [dannymohammad](https://github.com/dannymohammad), [deanwhillier](https://github.com/deanwhillier), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [dmamills](https://github.com/dmamills), [dom3k](https://github.com/dom3k), [DSchalla](https://github.com/DSchalla), [dv29](https://github.com/dv29), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [gabrieljackson](https://github.com/gabrieljackson), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [ja11sop](https://github.com/ja11sop), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [JtheBAB](https://github.com/JtheBAB), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [Kaya_Zeren](https://twitter.com/kaya_zeren), [kosgrz](https://github.com/kosgrz), [Lena](https://translate.mattermost.com/user/Lena/), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [maruTA-bis5](https://github.com/maruTA-bis5), [meilon](https://github.com/meilon), [mgdelacroix](https://github.com/mgdelacroix), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mollyyoung](https://github.com/mollyyoung), [nashik](https://github.com/nashik), [nlowe](https://github.com/nlowe), [Ovski4](https://github.com/Ovski4), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [pradeepmurugesan](https://github.com/pradeepmurugesan), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [rononline](https://github.com/rononline), [ryoon](https://github.com/ryoon), [s4kh](https://github.com/s4kh), [sadohert](https://github.com/sadohert), [sapnasivakumar](https://github.com/sapnasivakumar), [saturninoabril](https://github.com/saturninoabril), [Sheshagiri](https://github.com/Sheshagiri), [sonasingh46](https://github.com/sonasingh46), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [thePanz](https://github.com/thepanz), [tomocy](https://github.com/tomocy), [ulhosting](https://github.com/uhlhosting), [unigiriunini](https://github.com/unigiriunini), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc), [zeroimpl](https://github.com/zeroimpl), [zetaab](https://github.com/zetaab) - + +---- + ## Release v5.7 - Quality Release Mattermost v5.7.0 contains low to medium level security fixes. [Upgrading](/administration/upgrade.html) is highly recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -5280,6 +7219,8 @@ Mattermost v5.7.0 contains low to medium level security fixes. [Upgrading](/admi [aeomin](https://github.com/aeomin), [akhilanandbv003](https://github.com/akhilanandbv003), [amyblais](https://github.com/amyblais), [andrewbanchich](https://github.com/andrewbanchich), [ArchRoller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [bezumkin](https://github.com/bezumkin), [bradjcoughlin](https://github.com/bradjcoughlin), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [danmaas](https://github.com/danmaas), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [hanzei](https://github.com/hanzei), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [ja11sop](https://github.com/ja11sop), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [johnthompson365](https://github.com/johnthompson365), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kosgrz](https://github.com/kosgrz), [Lena](https://translate.mattermost.com/user/Lena/), [letsila](https://github.com/letsila), [levb](https://github.com/levb), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [meilon](https://github.com/meilon), [mickmister](https://github.com/mickmister), [migbot](https://github.com/migbot), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mukulrawat1986](https://github.com/mukulrawat1986), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [rononline](https://github.com/rononline), [ryoon](https://github.com/ryoon), [s4kh](https://github.com/s4kh), [saturninoabril](https://github.com/saturninoabril), [Schrooms](https://github.com/Schrooms), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [thePanz](https://github.com/thePanz), [uhlhosting](https://github.com/uhlhosting), [vaithak](https://github.com/vaithak), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yakimant](https://github.com/yakimant), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.6 - Feature Release - **v5.6.5, released 2019-02-16** @@ -5304,7 +7245,9 @@ Mattermost v5.7.0 contains low to medium level security fixes. [Upgrading](/admi - Removed support for IE11 Mobile View due to low usage and instability in order to invest that effort in maintaining a high quality experience on other more used browsers. End users on IE11 will thus have an increased minimum screen size. - If EnablePublicChannelsMaterialization setting in config.json is set to false, an offline migration prior to upgrade may be required to synchronize the materialized table for public channels to increase channel search performance in the channel switcher (CTRL/CMD+K), channel autocomplete (~) and elsewhere in the UI. See [Important Upgrade Notes](/administration/important-upgrade-notes.html) for more details. -**IMPORTANT:** If you upgrade from another release than 5.5, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.5, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5461,6 +7404,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [aeomin](https://github.com/aeomin), [amorriscode](https://github.com/amorriscode), [amyblais](https://github.com/amyblais), [ArchRoller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [bbodenmiller](https://github.com/bbodenmiller), [bd12](https://github.com/bd12), [chclaus](https://github.com/chclaus), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [chrux](https://github.com/chrux), [cobenash](https://github.com/cobenash), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [danmaas](https://github.com/danmaas), [der-test](https://github.com/der-test), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [gy741](https://github.com/gy741), [hanzei](https://github.com/hanzei), [harshilsharma](https://github.com/harshilsharma), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jlevesy](https://github.com/jlevesy), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [knrt10](https://github.com/knrt10), [letsila](https://github.com/letsila), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [meilon](https://github.com/meilon), [mickmister](https://github.com/mickmister), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mojicaj](https://github.com/mojicaj), [murugesan](https://github.com/pradeepmurugesan), [patniharshit](https://github.com/patniharshit), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [rononline](https://github.com/rononline), [ryoon](https://github.com/ryoon), [sandlis](https://github.com/sandlis), [saturninoabril](https://github.com/saturninoabril), [scottleedavis](https://github.com/scottleedavis), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [thePanz](https://github.com/thePanz), [ThiefMaster](https://github.com/ThiefMaster), [torlenor](https://github.com/torlenor), [tuxfamily](https://github.com/tuxfamily), [uhlhosting](https://github.com/uhlhosting), [vaithak](https://github.com/vaithak), [waseem18](https://github.com/waseem18), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc), [zeroimpl](https://github.com/zeroimpl), [zetaab](https://github.com/zetaab) +---- + ## Release v5.5 - Quality Release - **v5.5.3, released 2019-02-01** @@ -5512,6 +7457,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [aeomin](https://github.com/aeomin), [Akash4927](https://github.com/Akash4927), [alexander-akhmetov](https://github.com/alexander-akhmetov), [amogozov](https://github.com/amogozov), [amorriscode](https://github.com/amorriscode), [amyblais](https://github.com/amyblais), [anchepiece](https://github.com/anchepiece), [ArchRoller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [Charliekenney23](https://github.com/Charliekenney23), [charvp](https://github.com/charvp), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [cjohannsen81](https://github.com/cjohannsen81), [cobenash](https://github.com/cobenash), [cometkim](https://github.com/cometkim), [cored](https://github.com/cored), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [czertbytes](https://github.com/czertbytes), [danmaas](https://github.com/danmaas), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [dos1701](https://github.com/dos1701), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [florianeichin](https://github.com/florianeichin), [fraziern](https://github.com/fraziern), [grundleborg](https://github.com/grundleborg), [gupsho](https://github.com/gupsho), [gy741](https://github.com/gy741), [hanzei](https://github.com/hanzei), [harshilsharma](https://github.com/harshilsharma), [harshilsharma](https://github.com/harshilsharma), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasimmons](https://github.com/jasimmons), [jasonblais](https://github.com/jasonblais), [JayaKrishnaNamburu](https://github.com/JayaKrishnaNamburu), [jespino](https://github.com/jespino), [JtheBAB](https://github.com/JtheBAB), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [KerryAlsace](https://github.com/KerryAlsace), [klingtnet](https://github.com/klingtnet), [knrt10](https://github.com/knrt10), [leblanc-simon](https://github.com/leblanc-simon), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lologarithm](https://github.com/lologarithm), [MattMattV](https://github.com/MattMattV), [meilon](https://github.com/meilon), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [mojicaj](https://github.com/mojicaj), [mukulrawat1986](https://github.com/mukulrawat1986), [n7st](https://github.com/n7st), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [powhu](https://github.com/powhu), [pradeepmurugesan](https://github.com/pradeepmurugesan), [pushkyn](https://github.com/pushkyn), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [rononline](https://github.com/rononline), [ryoon](https://github.com/ryoon), [s4kh](https://github.com/s4kh), [SaashaJoshi](https://github.com/SaashaJoshi), [saturninoabril](https://github.com/saturninoabril), [SergeyShpak](https://github.com/SergeyShpak), [sonasingh46](https://github.com/sonasingh46), [sudheerDev](https://github.com/sudheerDev), [thePanz](https://github.com/thePanz), [torlenor](https://github.com/torlenor), [tyvsmith](https://github.com/tyvsmith), [uhlhosting](https://github.com/uhlhosting), [uusijani](https://github.com/uusijani), [VPashkov](https://github.com/VPashkov), [waseem18](https://github.com/waseem18), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.4 - Feature Release Release date: 2018-10-16 @@ -5523,7 +7470,9 @@ Release date: 2018-10-16 - Mattermost mobile app version 1.13+ is required. File uploads will fail on earlier mobile app versions. - In certain upgrade scenarios the new Allow Team Administrators to edit others posts setting under General then Users and Teams may be set to True while the Mattermost default in 5.1 and earlier and with new 5.4+ installations is False. -**IMPORTANT:** If you upgrade from another release than 5.3, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.3, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5625,6 +7574,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [aeomin](https://github.com/aeomin), [amyblais](https://github.com/amyblais), [asaadmahmood](https://github.com/asaadmahmood), [ArchRoller](https://github.com/archroller), [avasconcelos114](https://github.com/avasconcelos114), [balcsida](https://github.com/balcsida), [bezumkin](https://github.com/bezumkin), [ccpaging](https://github.com/ccpaging), [chetanyakan](https://github.com/chetanyakan), [chikei](https://github.com/chikei), [cimfalab](https://github.com/cimfalab), [cjbirk](https://github.com/cjbirk), [cometkim](https://github.com/cometkim), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [cvitter](https://github.com/cvitter), [danmaas](https://github.com/danmaas), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [dmitrysamuylovpharo](https://github.com/dmitrysamuylovpharo), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [FurmanovD](https://github.com/FurmanovD), [gramakri](https://github.com/gramakri), [greensteve](https://github.com/greensteve), [grundleborg](https://github.com/grundleborg), [gvengel](https://github.com/gvengel), [hanzei](https://github.com/hanzei), [harshilsharma](https://github.com/harshilsharma), [hmhealey](https://github.com/hmhealey), [jasonblais](https://github.com/jasonblais), [jazzzz](https://github.com/jazzzz), [jespino](https://github.com/jespino), [jkurian](https://github.com/jkurian), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kongr45gpen](https://github.com/kongr45gpen), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [meilon](https://github.com/meilon), [mikroskeem](https://github.com/mikroskeem), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [n1aba](https://github.com/n1aba), [n7st](https://github.com/n7st), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [pkuhner](https://github.com/pkuhner), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [ryoon](https://github.com/ryoon), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [sudheerDev](https://github.com/sudheerDev), [tejasbubane](https://github.com/tejasbubane), [thawn](https://github.com/thawn), [thePanz](https://github.com/thepanz), [ThiefMaster](https://github.com/ThiefMaster), [uhlhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [xcompass](https://github.com/xcompass), [yuya-oc](https://github.com/yuya-oc), [zetaab](https://github.com/zetaab) +---- + ## Release v5.3 - Feature Release Mattermost v5.3.0 contains a high level security fix. [Upgrading](/administration/upgrade.html) is highly recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 14 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.org/responsible-disclosure-policy/). @@ -5638,7 +7589,9 @@ Mattermost v5.3.0 contains a high level security fix. [Upgrading](/administratio - Those servers with Elasticsearch enabled will notice that hashtag search is case-sensitive. -**IMPORTANT:** If you upgrade from another release than 5.2, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.2, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5708,6 +7661,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [aeomin](https://github.com/aeomin), [amyblais](https://github.com/amyblais), [ArchRoller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [dcherniv](https://github.com/dcherniv), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [dmitrysamuylovpharo](https://github.com/dmitrysamuylovpharo), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [gvengel](https://github.com/gvengel), [Hanzei](https://github.com/Hanzei), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [Jessica-c53](https://github.com/Jessica-c53), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [meilon](https://github.com/meilon), [MerlinDMC](https://github.com/MerlinDMC), [michaelkochub](https://github.com/michaelkochub), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [n1aba](https://github.com/n1aba), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [pradeepmurugesan](https://github.com/pradeepmurugesan), [robert843](https://github.com/robert843), [rodcorsi](https://github.com/rodcorsi), [rononline](https://github.com/rononline), [rqtaylor](https://github.com/rqtaylor), [ryoon](https://github.com/ryoon), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [sjstyle](https://github.com/sjstyle), [sudheerDev](https://github.com/sudheerDev), [thePanz](https://github.com/thepanz), [ThiefMaster](https://github.com/ThiefMaster), [uhlhosting](https://github.com/uhlhosting), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.2 - Feature Release - **v5.2.2, released 2018-09-16** @@ -5725,7 +7680,9 @@ Multiple setting options were added to `config.json`. Below is a list of the add - Those servers upgrading from v4.1 - v4.4 directly to v5.2 or later and have JIRA enabled will need to re-enable the JIRA plugin after an upgrade. -**IMPORTANT:** If you upgrade from another release than 5.1, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.1, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5836,6 +7793,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add ### Contributors [aeomin](https://github.com/aeomin), [alanpog](https://github.com/alanpog), [Alexgoodman7](https://github.com/Alexgoodman7), [amyblais](https://github.com/amyblais), [archroller](https://github.com/archroller), [asaadmahmood](https://github.com/asaadmahmood), [burguyd](https://github.com/burguyd), [chikei](https://github.com/chikei), [cometkim](https://github.com/cometkim), [comharris](https://github.com/comharris), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [der-test](https://github.com/der-test), [DHaussermann](https://github.com/DHaussermann), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [falcon78921](https://github.com/falcon78921), [fdebrabander](https://github.com/fdebrabander), [grundleborg](https://github.com/grundleborg), [herooftimeandspace](https://github.com/herooftimeandspace), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [Jessica-c53](https://github.com/Jessica-c53), [JustinReynolds-MM](https://github.com/JustinReynolds-MM), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [kennethjeremyau](https://github.com/kennethjeremyau), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [meilon](https://github.com/meilon), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [pepf](https://github.com/pepf), [pichouk](https://github.com/pichouk), [pietroglyph](https://github.com/pietroglyph), [pjgrizel](https://github.com/pjgrizel), [pradeepmurugesan](https://github.com/pradeepmurugesan), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [ryoon](https://github.com/ryoon), [santos22](https://github.com/santos22), [saturninoabril](https://github.com/saturninoabril), [scherno2](https://github.com/scherno2), [seansackowitz](https://github.com/seansackowitz), [sudheerDev](https://github.com/sudheerDev), [tejasbubane](https://github.com/tejasbubane), [theblueskies](https://github.com/theblueskies), [ThiefMaster](https://github.com/ThiefMaster), [uhlhosting](https://github.com/uhlhosting), [uusijani](https://github.com/uusijani), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.1 - Feature Release - **v5.1.2, released 2018-09-16** @@ -5853,7 +7812,9 @@ Multiple setting options were added to `config.json`. Below is a list of the add - ``mattermost export`` CLI command is renamed to ``mattermost export schedule``. Make sure to update your scripts if you use this command. -**IMPORTANT:** If you upgrade from another release than 5.0, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 5.0, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -5937,6 +7898,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [Alexgoodman7](https://github.com/Alexgoodman7), [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [asaadmahmood](https://github.com/asaadmahmood), [Brodan](https://github.com/Brodan), [cjohannsen81](https://github.com/cjohannsen81), [cometkim](https://github.com/cometkim). [comharris](https://github.com/comharris), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [dmeza](https://github.com/dmeza), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [evelikov](https://github.com/evelikov), [fbartels](https://github.com/fbartels), [greensteve](https://github.com/greensteve), [grundleborg](https://github.com/grundleborg), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jkurian](https://github.com/jkurian), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kennethjeremyau](https://github.com/kennethjeremyau), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lisakycho](https://github.com/lisakycho), [michaelgamble](https://github.com/michaelgamble), [mkraft](https://github.com/mkraft), [pichouk](https://github.com/pichouk), [Roy-Orbison](https://github.com/Roy-Orbison), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [stanchan](https://github.com/stanchan), [sudheerDev](https://github.com/sudheerDev),[svelle](https://github.com/svelle), [tejasbubane](https://github.com/tejasbubane), [ThiefMaster](https://github.com/ThiefMaster), [wiersgallak](https://github.com/wiersgallak), [wildloop](https://github.com/wildloop), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v5.0 - Feature Release - **v5.0.3, released 2018-08-07** @@ -5958,7 +7921,9 @@ Multiple setting options were added to `config.json`. Below is a list of the add - A new `config.json` setting to disable the [permanent APIv4 delete team parameter](https://api.mattermost.com/#tag/teams%2Fpaths%2F~1teams~1%7Bteam_id%7D%2Fput) has been added. The setting is off by default for all new and existing installs, except those deployed on GitLab Omnibus. A System Administrator can enable the API v4 endpoint from the config.json file. [Ticket #9916](https://mattermost.atlassian.net/browse/MM-9916). - An unused `ExtraUpdateAt` field has been removed from the channel model. [Ticket #9739](https://mattermost.atlassian.net/browse/MM-9739). -**IMPORTANT:** If you upgrade from another release than 4.10, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +```{Important} +If you upgrade from another release than 4.10, please read the [Important Upgrade Notes](/administration/important-upgrade-notes.html). +``` ### Highlights @@ -6072,6 +8037,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [aeomin](https://translate.mattermost.com/user/aeomin/), [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [asaadmahmood](https://github.com/asaadmahmood), [balasankarc](https://github.com/balasankarc), [chclaus](https://github.com/chclaus), [chikei](https://github.com/chikei), [comharris](https://github.com/comharris), [compilenix](https://github.com/compilenix), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [der-test](https://github.com/der-test), [dkadioglu](https://github.com/dkadioglu), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fbartels](https://github.com/fbartels), [gnufede](https://github.com/gnufede), [grundleborg](https://github.com/grundleborg), [haraldkubota](https://github.com/haraldkubota), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jordanbuchman](https://github.com/jordanbuchman), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kayazeren](https://github.com/kayazeren), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [meilon](https://github.com/meilon), [mkraft](https://github.com/mkraft), [mlongo4290](https://github.com/mlongo4290), [odontomachus](https://github.com/odontomachus), [pichouk](https://github.com/pichouk), [pjgrizel](https://github.com/pjgrizel), [rodcorsi](https://github.com/rodcorsi), [Roy-Orbison](https://github.com/Roy-Orbison), [ryoon](https://github.com/ryoon), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [sudheerDev](https://github.com/sudheerDev), [thePanz](https://github.com/thepanz), [uturkdogan](https://github.com/uturkdogan), [wget](https://github.com/wget), [wiersgallak](https://github.com/wiersgallak), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.10 - [ESR](/administration/extended-support-release.html) - **v4.10.10, released 2019-06-20** @@ -6216,6 +8183,8 @@ The following deprecations are planned for the Mattermost v5.0 release, which is ### Contributors [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [antoineHC](https://github.com/antoineHC), [asaadmahmood](https://github.com/asaadmahmood), [Autre31415](https://github.com/Autre31415), [cometkim](https://github.com/cometkim), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [daanlevi](https://github.com/daanlevi), [DSchalla](https://github.com/DSchalla), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [grundleborg](https://github.com/grundleborg), [guydemi](https://github.com/guydemi), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [iri-dw](https://github.com/iri-dw), [it33](https://github.com/it33), [james-mm](https://github.com/james-mm), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jordanbuchman](https://github.com/jordanbuchman), [jwilander](https://github.com/jwilander), [kethinov](https://github.com/kethinov), [koxen](https://github.com/koxen), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [liusy182](https://github.com/liusy182), [Merlin2001](https://github.com/merlin2001), [michaeltaylor-kerauno](https://github.com/michaeltaylor-kerauno), [mkraft](https://github.com/mkraft), [n1aba](https://github.com/n1aba), [pichouk](https://github.com/pichouk), [saturninoabril](https://github.com/saturninoabril), [stanchan](https://github.com/stanchan), [sudheerDev](https://github.com/sudheerDev), [tejasbubane](https://github.com/tejasbubane), [timconner](https://github.com/timconner), [tomo667a](https://github.com/tomo667a), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.9 - Feature Release - **v4.9.4, released 2018-06-04** @@ -6376,6 +8345,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [asaadmahmood](https://github.com/asaadmahmood), [ccbrown](https://github.com/ccbrown), [chclaus](https://github.com/chclaus), [chumbalum](https://github.com/chumbalum), [cjohannsen81](https://github.com/cjohannsen81), [CoolMoeDee](https://github.com/CoolMoeDee), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [dmeza](https://github.com/dmeza), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [gajananpp](https://github.com/gajananpp), [GitHubJasper](https://github.com/GitHubJasper), [gnufede](https://github.com/gnufede), [grundleborg](https://github.com/grundleborg), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [james-mm](https://github.com/james-mm), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [koxen](https://github.com/koxen), [letsila](https://github.com/letsila), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [mkraft](https://github.com/mkraft), [moonmeister](https://github.com/moonmeister), [MusikPolice](https://github.com/MusikPolice), [panditsavitags](https://github.com/panditsavitags), [philippe-granet](https://github.com/philippe-granet), [pichouk](https://github.com/pichouk), [qichengzx](https://github.com/qichengzx), [Rudloff](https://github.com/Rudloff), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [stanchan](https://github.com/stanchan), [stephenkiers](https://github.com/stephenkiers), [sudheerDev](https://github.com/sudheerDev), [svelle](https://github.com/svelle), [tejasbubane](https://github.com/tejasbubane), [thePanz](https://github.com/thePanz), [timconner](https://github.com/timconner), [tomo667a](https://github.com/tomo667a), [Vorlif](https://github.com/Vorlif), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.8 - Feature Release - **v4.8.2, released 2018-06-04** @@ -6515,6 +8486,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [Alexgoodman7](https://github.com/Alexgoodman7), [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [andruwa13](https://github.com/andruwa13), [asaadmahmood](https://github.com/asaadmahmood), [avasconcelos114](https://github.com/avasconcelos114), [billybrown1](https://github.com/billybrown1), [ccbrown](https://github.com/ccbrown), [chumbalum](https://github.com/chumbalum), [cometkim](https://github.com/cometkim), [CoolTomatos](https://github.com/CoolTomatos), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [GitHubJasper](https://github.com/GitHubJasper), [gnufede](https://github.com/gnufede), [grundleborg](https://github.com/grundleborg), [hmhealey](https://github.com/hmhealey), [icelander](https://github.com/icelander), [it33](https://github.com/it33), [james-mm](https://github.com/james-mm), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kemenaran](https://github.com/kemenaran), [koxen](https://github.com/koxen), [leblanc-simon](https://github.com/leblanc-simon), [letsila](https://github.com/letsila), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lip-d](https://github.com/lip-d), [liusy182](https://github.com/liusy182), [lmikaellukerad](https://github.com/lmikaellukerad), [mkraft](https://github.com/mkraft), [moonmeister](https://github.com/moonmeister), [MusikPolice](https://github.com/MusikPolice), [pichouk](https://github.com/pichouk), [rqtaylor](https://github.com/rqtaylor), [saturninoabril](https://github.com/saturninoabril), [stanchan](https://github.com/stanchan), [stephenkiers](https://github.com/stephenkiers), [tejasbubane](https://github.com/tejasbubane), [thePanz](https://github.com/thePanz), [torgeirl](https://github.com/torgeirl), [Vaelor](https://github.com/Vaelor), [vordimous](https://github.com/vordimous), [XinyueWang94](https://github.com/XinyueWang94), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.7 - Feature Release - **v4.7.4, released 2018-04-09** @@ -6701,6 +8674,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [andruwa13](https://github.com/andruwa13), [asaadmahmood](https://github.com/asaadmahmood), [bbodenmiller](https://github.com/bbodenmiller), [Brunzer](https://github.com/Brunzer), [ccbrown](https://github.com/ccbrown), [chclaus](https://github.com/chclaus), [cherniavskii](https://github.com/cherniavskii), [CometKim](https://github.com/CometKim), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [darkman](https://github.com/darkman), [der-test](https://github.com/der-test), [dlahn](https://github.com/dlahn), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [fermulator](https://github.com/fermulator), [gig177](https://github.com/gig177), [grundleborg](https://github.com/grundleborg), [Hanzei](https://github.com/Hanzei), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [james-mm](https://github.com/james-mm), [jarredwitt](https://github.com/jarredwitt), [jasonblais](https://github.com/jasonblais), [jespino](https://github.com/jespino), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [kemenaran](https://github.com/kemenaran), [knechtionscoding](https://github.com/knechtionscoding), [laginha87](https://github.com/laginha87), [lasley](https://github.com/lasley), [letsila](https://github.com/letsila), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [liusy182](https://github.com/liusy182), [Matterchen](https://github.com/Matterchen), [mkraft](https://github.com/mkraft), [MusikPolice](https://github.com/MusikPolice), [phuihock](https://github.com/phuihock), [pichouk](https://github.com/pichouk), [Rohlik](https://github.com/Rohlik), [R-Wang97](https://github.com/R-Wang97), [santos22](https://github.com/santos22), [saturninoabril](https://github.com/saturninoabril), [stephenkiers](https://github.com/stephenkiers), [sudheerDev](https://github.com/sudheerDev), [tayre](https://github.com/tayre), [tejasbubane](https://github.com/tejasbubane), [tkbky](https://github.com/tkbky), [Tristramg](https://github.com/Tristramg), [ulm0](https://github.com/ulm0), [watadarkstar](https://github.com/watadarkstar), [xuxip](https://github.com/xuxip), [yeoji](https://github.com/yeoji), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.6 - Feature Release - **v4.6.3, release date 2018-04-09** @@ -6849,6 +8824,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [amyblais](https://github.com/amyblais), [AndersonWebStudio](https://github.com/AndersonWebStudio), [asaadmahmood](https://github.com/asaadmahmood), [ccbrown](https://github.com/ccbrown), [coreyhulen](https://github.com/coreyhulen), [cpanato](https://github.com/cpanato), [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte), [cvitter](https://github.com/cvitter), [dlahn](https://github.com/dlahn), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [g3d](https://github.com/g3d), [grundleborg](https://github.com/grundleborg), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [james-mm](https://github.com/james-mm), [jarredwitt](https://github.com/jarredwitt), [jespino](https://github.com/jespino), [jwilander](https://github.com/jwilander), [kaakaa](https://github.com/kaakaa), [letsila](https://github.com/letsila), [lfbrock](https://github.com/lfbrock), [lieut-data](https://github.com/lieut-data), [lindalumitchell](https://github.com/lindalumitchell), [lindy65](https://github.com/lindy65), [lisakycho](https://github.com/lisakycho), [liusy182](https://github.com/liusy182), [LordVeovis](https://github.com/LordVeovis), [Matterchen](https://github.com/Matterchen), [mkraft](https://github.com/mkraft), [MusikPolice](https://github.com/MusikPolice), [panditsavitags](https://github.com/panditsavitags), [pichouk](https://github.com/pichouk), [pixelbrackets](https://github.com/pixelbrackets), [pruthvip](https://github.com/pruthvip), [R-Wang97](https://github.com/R-Wang97), [saturninoabril](https://github.com/saturninoabril), [skvale](https://github.com/skvale), [stephenkiers](https://github.com/stephenkiers), [sudheerDev](https://github.com/sudheerDev), [sumantro93](https://github.com/sumantro93), [tayre](https://github.com/tayre), [tborg](https://github.com/tborg), [tejasbubane](https://github.com/tejasbubane), [watadarkstar](https://github.com/watadarkstar), [yuya-oc](https://github.com/yuya-oc) +---- + ## Release v4.5 - Feature Release - **v4.5.2, release date 2018-02-23** @@ -7065,6 +9042,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [hmhealey](https://github.com/hmhealey) +---- + ## Release v4.4.5 - Feature Release - **v4.4.5, release date 2017-12-11** @@ -7308,6 +9287,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [crspeller](https://github.com/crspeller), [jasonblais](https://github.com/jasonblais) +---- + ## Release v4.3.4 - Feature Release - **v4.3.4, release date 2017-12-11** @@ -7501,6 +9482,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [crspeller](https://github.com/crspeller) +---- + ## Release v4.2.2 - Feature Release - **v4.2.2, release date 2017-12-11** @@ -7717,6 +9700,8 @@ Multiple setting options were added to `config.json`. Below is a list of the add - [crspeller](https://github.com/crspeller) +---- + ## Release v4.1.2 - Feature Release - **v4.1.2, released 2017-10-20** @@ -7958,6 +9943,8 @@ Many thanks to all our contributors. In alphabetical order: - [fkr](https://github.com/fkr), [hmhealey](https://github.com/hmhealey) +---- + ## Release v4.0.5 - Feature Release - **v4.0.5, released 2017-09-16** @@ -8235,6 +10222,8 @@ Many thanks to all our contributors. In alphabetical order: - [crspeller](https://github.com/crspeller), [JeffSchering](https://github.com/JeffSchering) +---- + ## Release v3.10.3 - **v3.10.3, released 2017-08-18** @@ -8440,6 +10429,8 @@ Many thanks to all our contributors. In alphabetical order: - [coreyhulen](https://github.com/coreyhulen) +---- + ## Release v3.9.2 - **v3.9.2, released 2017-07-18** @@ -8682,6 +10673,8 @@ Many thanks to all our contributors. In alphabetical order: - [coreyhulen](https://github.com/coreyhulen), [csduarte](https://github.com/csduarte) +---- + ## Release v3.8.3 ### Notes on Patch Release @@ -8907,6 +10900,7 @@ Many thanks to all our contributors. In alphabetical order: - [crspeller](https://github.com/crspeller), [csduarte](https://github.com/csduarte) +---- ## Release v3.7.5 @@ -9196,6 +11190,8 @@ Many thanks to all our contributors. In alphabetical order: - [coreyhulen](https://github.com/coreyhulen), [crspeller](https://github.com/crspeller) +---- + ## Release v3.6.7 ### Notes on Patch Release @@ -9506,6 +11502,8 @@ Thanks also to those who reported bugs that benefited the release, in alphabetic - [bjoernr-de](https://github.com/bjoernr-de) ([#5079](https://github.com/mattermost//mattermost-server/issues/5079)), [S6066](https://github.com/S6066) ([#5011](https://github.com/mattermost//mattermost-server/issues/5011)) +---- + ## Release v3.5.1 ### Notes on Patch Release @@ -9826,6 +11824,8 @@ Many thanks to all our contributors. In alphabetical order: - [dmeza](https://github.com/dmeza), [hmhealey](https://github.com/hmhealey), [it33](https://github.com/it33), [jasonblais](https://github.com/jasonblais), [mfpiccolo](https://github.com/mfpiccolo), [thomchop](https://github.com/thomchop) +---- + ## Release v3.4.0 Release date: 2016-09-16 @@ -9984,6 +11984,8 @@ Many thanks to all our contributors. In alphabetical order: /mattermost-heroku - [it33](https://github.com/it33), [jwilander](https://github.com/jwilander) +---- + ## Release v3.3.0 Expected release date: 2016-08-16 @@ -10250,6 +12252,8 @@ Many thanks to all our contributors. In alphabetical order: - [coreyhulen](https://github.com/coreyhulen), [jasonblais](https://github.com/jasonblais) +---- + If we missed your name, please let us know at feedback@mattermost.com. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release. ## Release v3.2.0 @@ -10471,6 +12475,8 @@ Many thanks to all our contributors. In alphabetical order: If we missed your name, please let us know at feedback@mattermost.com. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release. +---- + ## Release v3.1.0 Release date: 2016-06-16 @@ -10654,6 +12660,8 @@ Many thanks to all our contributors. In alphabetical order: If we missed your name, please let us know at feedback@mattermost.com. Recognition is a manual process and mistakes can happen. We want to include anyone who's made a pull request that got merged during the release. +---- + ## Release v3.0.3 Release date: 2016-05-27 @@ -10865,6 +12873,8 @@ Many thanks to all our contributors. In alphabetical order: /docs - [ajerezr](https://github.com/ajerezr), [apheleia](https://github.com/apheleia), [asaadmahmood](https://github.com/asaadmahmood), [crspeller](https://github.com/crspeller), [DavidLu1997](https://github.com/DavidLu1997), [enahum](https://github.com/enahum), [esethna](https://github.com/esethna), [it33](https://github.com/it33), [lfbrock](https://github.com/lfbrock), [lindy65](https://github.com/lindy65), [pjgrizel](https://github.com/pjgrizel), [schemacs](https://github.com/schemacs) +---- + ## Release v2.2.0 Release date: 2016-04-16 @@ -10930,6 +12940,8 @@ Many thanks to all our external contributors. In no particular order: - [pjgrizel](https://github.com/pjgrizel), [tbolon](https://github.com/tbolon) , [jblobel](https://github.com/jblobel), [rodrigocorsi2](https://github.com/rodrigocorsi2) , [enahum](https://github.com/enahum), [schemacs](https://github.com/schemacs), [raelga](https://github.com/raelga) +---- + ## Release v2.1.0 Release date: 2016-03-16 @@ -11058,6 +13070,8 @@ Many thanks to all our external contributors. In no particular order: - [yuya-oc](https://github.com/yuya-oc), [rodrigocorsi2](https://github.com/rodrigocorsi2), [enahum](https://github.com/enahum), [khoa-le](https://github.com/khoa-le), [alanmoo](https://github.com/alanmoo), [daizenberg](https://github.com/daizenberg), [GuillaumeAmat](https://github.com/GuillaumeAmat), [kernicPanel](https://github.com/kernicPanel), [timlyo](https://github.com/timlyo), [ttyniwa](https://github.com/ttyniwa) +---- + ## Release v2.0.0 Expected Release date: 2016-02-16 @@ -11245,6 +13259,8 @@ Many thanks to all our external contributors. In no particular order: - [enahum](https://github.com/enahum), [trashcan](https://github.com/trashcan), [khoa-le](https://github.com/khoa-le), [alanmoo](https://github.com/alanmoo), [fallenby](https://github.com/fallenby), [loafoe](https://github.com/loafoe), [gramakri](https://github.com/gramakri), [pawelad](https://github.com/pawelad), [cifvts](https://github.com/cifvts), [rosskusler](https://github.com/rosskusler), [apskim](https://github.com/apskim) +---- + ## Release v1.4.0 Expected Release date: 2016-01-16 @@ -11370,6 +13386,8 @@ Many thanks to our external contributors. In no particular order: - [npcode](https://github.com/npcode), [hjf288](https://github.com/hjf288), [apskim](https://github.com/apskim), [ejm2172](https://github.com/ejm2172), [hvnsweeting](https://github.com/hvnsweeting), [benburkert](https://github.com/benburkert), [erikthered](https://github.com/erikthered) +---- + ## Release v1.3.0 Release date: 2015-12-16 @@ -11475,6 +13493,8 @@ Many thanks to our external contributors. In no particular order: - [florianorben](https://github.com/florianorben), [npcode](https://github.com/npcode), [42wim](https://github.com/42wim), [cifvts](https://github.com/cifvts), [rompic](https://github.com/rompic), [jdhoek](https://github.com/jdhoek), [Tsynapse](https://github.com/Tsynapse), [alexgaribay](https://github.com/alexgaribay), [vladikoff](https://github.com/vladikoff), [jonathanwiesel](https://github.com/jonathanwiesel), [tamtamchik](https://github.com/tamtamchik) +---- + ## Release v1.2.1 - **Released:** 2015-11-16 @@ -11622,6 +13642,8 @@ Many thanks to our external contributors. In no particular order: - [florianorben](https://github.com/florianorben), [trashcan](https://github.com/trashcan), [girishso](https://github.com/girishso), [apaatsio](https://github.com/apaatsio), [jlebleu](https://github.com/jlebleu), [stasvovk](https://github.com/stasvovk), [mcmillhj](https://github.com/mcmillhj), [sharms](https://github.com/sharms), [jvasallo](https://github.com/jvasallo), [layzerar](https://github.com/layzerar), [optimistiks](https://github.com/optimistiks), [Tsynapse](https://github.com/Tsynapse), [vinnymac](https://github.com/vinnymac), [yuvipanda](https://github.com/yuvipanda), [toyorg](https://github.com/toyorg) +---- + ## Release v1.2.0 (Redacted Release) - **Final release:** 2015-11-16 (**Note:** This release was removed from public availability and replaced by v1.2.1 owing to a security issue with the new outgoing webhooks feature. See v1.2.1 Release Notes for details). @@ -11725,6 +13747,8 @@ Many thanks to our external contributors. In no particular order: - [chengweiv5](https://github.com/chengweiv5), [pstonier](https://github.com/pstonier), [teviot](https://github.com/teviot), [tmuwandi](https://github.com/tmuwandi), [driou](https://github.com/driou), [justyns](https://github.com/justyns), [drbaker](https://github.com/drbaker), [thomas9987](https://github.com/thomas9987), [chuck5](https://github.com/chuck5), [sjmog](https://github.com/sjmog), [chengkun](https://github.com/chengkun), [sexybern](https://github.com/sexybern), [tomitm](https://github.com/tomitm), [stephenfin](https://github.com/stephenfin) +---- + ## Release v1.0.0 Released 2015-10-02 @@ -12051,6 +14075,7 @@ Extra special thanks to GitLab community leaders for successful release of GitLa - [marin](https://gitlab.com/u/marin), [sytse](https://gitlab.com/u/sytse) +---- ## Release v0.6.0 (Alpha) diff --git a/source/deploy/mattermost-changelog.md b/source/deploy/mattermost-changelog.md new file mode 100644 index 00000000000..36bf98b05c4 --- /dev/null +++ b/source/deploy/mattermost-changelog.md @@ -0,0 +1,87 @@ +# Mattermost changelog + +[Mattermost](https://mattermost.com) is an open source platform for secure collaboration across the entire software development lifecycle. + +```{Important} +From Mattermost v9.2, this changelog summarizes updates for the latest cloud and self-hosted versions of Mattermost to be [deployed and upgraded on infrastructure you control](https://docs.mattermost.com/guides/deployment.html). + +- See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) documentation for details on upgrading. +- See the [changelog in progress](https://bit.ly/2nK3cVf) for details about the upcoming release. +- **Self-Hosted Releases Prior to v9.2**: See the [Mattermost Legacy Self-Hosted Changelog](/deploy/legacy-self-hosted-changelog) for details. +- **Cloud Releases Prior to v9.2**: See the [Mattermost Legacy Cloud Changelog](/deploy/legacy-cloud-changelog) for details. +``` + +```{contents} On ths page +:depth: 2 +``` + +## Release v9.2 - [Feature Release](https://docs.mattermost.com/upgrade/release-definitions.html#feature-release) + +- **9.2.2, released 2023-11-08** + - Mattermost v9.2.2 contains a high severity level security fix. [Upgrading](https://docs.mattermost.com/upgrade/upgrading-mattermost-server.html) to this release is recommended. Details will be posted on our [security updates page](https://mattermost.com/security-updates/) 30 days after release as per the [Mattermost Responsible Disclosure Policy](https://mattermost.com/security-vulnerability-report/). + - Fixed an issue where the **About Mattermost** dialog reported an incorrect server version. +- **9.2.1, released 2023-11-06** + - Fixed an issue where Ubuntu GLIBC errors were thrown on Ubuntu 20.04 and Debian Bullseye versions. +- **9.2.0, released 2023-11-02** + - Original 9.2.0 release + +### Important Upgrade Notes + - Please read the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) before upgrading. + +### Compatibility + - Updated minimum required Edge version to 116+. + +### Improvements + +#### User Interface (UI) + - Improved readability by displaying system messages on multiple lines when editing a channel header. + - Combined "joined/left" event types in system messages. + - Added a new user preference to disable webapp prefetching via **Settings > Advanced > Allow Mattermost to prefetch channel posts**. + - Pre-packaged NPS plugin version [v1.3.3](https://github.com/mattermost/mattermost-plugin-nps/releases/tag/v1.3.3). + - Pre-packaged Todo plugin version [v0.7.1](https://github.com/mattermost/mattermost-plugin-todo/releases/tag/v0.7.1). + +#### Administration + - JSON null value cases are now handled correctly by also checking that the pointer is no longer null when unmarshalling to a pointer. + - An annotated logger is now used to capture LDAP and SAML logs. + - Replaced ``github.com/mattermost/gziphandler`` with ``github.com/klauspost/compress/gzhttp``. + - Performance metrics now contain information on if a given request was sent during a page load or a websocket reconnect. + - Elasticsearch aggregation jobs no longer start when a bulk indexing job is currently running. + - Added heap profile, CPU profile, and goroutines profile to the support package. + - Merged WIP i18n locales, but disallowed selecting unsupported locales. + +### Bug Fixes + - Fixed a panic where a simple worker would crash if it failed to get a job. + - Fixed post props on update to properly see channel links. + - Fixed an issue where the API for drafts would return empty drafts. + - Fixed the alignment of the **Help** menu in the global header. + - Fixed a broken link in the **Edit Channel** header modal. + - Fixed an issue that prevented users to be added to channels from the System Console. + - Fixed an issue where the channel member count increased when adding an already present user. + - Fixed an issue where plugin developers were unable to create a ``textarea`` in interactive dialogs. + - Fixed an issue where copy pasting images from Chrome failed. + +### config.json + - Multiple setting options were added to ``config.json``. Below is a list of the additions and their default values on install. The settings can be modified in ``config.json``, or the System Console when available. + +#### Changes to all plans: + - Under ``LogSettings`` in ``config.json``: + - Added a new configuration setting ``MaxFieldSize`` to add the ability to size-limit log fields during logging. + +### API Changes + - Added ``origin_client`` to the ``mattermost_api_time`` metrics. + +### Go Version + - v9.2 is built with Go ``v1.20.7``. + +### Known Issues + - Adding an @mention at the start of a post draft and pressing the left or right arrow key can clear the post draft and the undo history [MM-33823](https://mattermost.atlassian.net/browse/MM-33823). + - Status may sometimes get stuck as **Away** or **Offline** in High Availability mode with IP Hash turned off. + - Searching stop words in quotation marks with Elasticsearch enabled returns more than just the searched terms. + - Slack import through the CLI fails if email notifications are enabled. + - Push notifications don't always clear on iOS when running Mattermost in High Availability mode. + - The Playbooks left-hand sidebar doesn't update when a user is added to a run or playbook without a refresh. + - If a user isn't a member of a configured broadcast channel, posting a status update might fail without any error feedback. As a temporary workaround, join the configured broadcast channels, or remove those channels from the run configuration. + - The Playbooks left-hand sidebar does not update when a user is added to a run or playbook without a refresh. + +### Contributors + - To be added. diff --git a/source/deploy/postgres-migration.rst b/source/deploy/postgres-migration.rst index 4beb376387c..a0ba27544c5 100644 --- a/source/deploy/postgres-migration.rst +++ b/source/deploy/postgres-migration.rst @@ -110,7 +110,7 @@ To drop indexes, run the following commands before the migration (These are incl DROP INDEX IF EXISTS idx_fileinfo_content_txt; Artifacts may remain from previous configurations/versions -~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Prior to ``v6.4``, Mattermost was using `golang-migrate `__ to handle the schema migrations. Since we don't use it anymore, we exclude the table ``schema_migrations``. If you were using Mattermost before ``v6.4`` consider dropping this table and excluding it from comparison as well. @@ -336,7 +336,7 @@ Once we are ready to migrate, we can start migrating the **schema** and the **da Focalboard ~~~~~~~~~~ -As of ``v9.0`` Boards will transition to being fully community supported as the Focalboard plugin. Hence this guide covers only the version ``v7.10.x`` of the schema. `Official announcement `__. +As of ``v9.0`` Boards will transition to being fully community supported as the Focalboard plugin. Hence this guide covers only the version ``v7.10.x`` of the schema. `Official announcement `__. Once we are ready to migrate, we can start migrating the **schema** and the **data** by running ``pgLoader`` \*\* diff --git a/source/guides/changelogs.rst b/source/guides/changelogs.rst index 169ee0762c1..e389872029e 100644 --- a/source/guides/changelogs.rst +++ b/source/guides/changelogs.rst @@ -6,18 +6,18 @@ Changelogs :hidden: :titlesonly: - Mattermost self-hosted - Mattermost legacy self-hosted - Mattermost Cloud + Mattermost changelog + Mattermost legacy self-hosted + Mattermost legacy Cloud Mobile apps - Desktop apps - Deprecated features + Desktop app + Deprecated features These changelogs will help you clarify what's new, changed, and deprecated in every Mattermost release. -* :doc:`Mattermost self-hosted ` -* :doc:`Mattermost legacy self-hosted ` -* :doc:`Mattermost Cloud ` +* :doc:`Mattermost changelog ` +* :doc:`Mattermost legacy self-hosted ` +* :doc:`Mattermost legacy Cloud ` * :doc:`Mobile apps ` -* :doc:`Desktop apps ` -* :doc:`Deprecated features ` \ No newline at end of file +* :doc:`Desktop apps ` +* :doc:`Deprecated features ` \ No newline at end of file diff --git a/source/guides/deploy-aws.rst b/source/guides/deploy-aws.rst index 33fe3882fd7..725cef062e9 100644 --- a/source/guides/deploy-aws.rst +++ b/source/guides/deploy-aws.rst @@ -2,7 +2,7 @@ Deploy Apps to AWS ================== Deployment in self-managed environments -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------------------------------------- An App designed and bundled for AWS Lambda can be deployed to the customer's own AWS environment, and then installed on a self-managed ("on-prem") Mattermost @@ -112,27 +112,27 @@ The command requires that the following environment variables are set: Once deployed, apps can be installed interactively in Mattermost using ``/apps install listed`` command which will show all the deployed apps available for installation in Mattermost. Deployed app details -~~~~~~~~~~~~~~~~~~~~ +--------------------- -AWS Lambda Functions Naming ----------------------------- +AWS Lambda functions naming +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AWS Lambda functions have semantic names, meaning that a function described in the ``manifest.json`` file translates to AWS as ``$appID_$appVersion_$functionName`` to avoid collisions with other apps' or other versions' functions. **appsctl** deploys lambda functions using this naming convention. For example, the name of a ``servicenow`` app's lambda function might be ``com-mattermost-servicenow_0-1-0_go-function``. **appsctl** handles the naming of AWS Lambda functions. The dedicated S3 bucket name is stored in the environment variable: ``MM_APPS_S3_BUCKET``. -Storage of App Assets and Manifests ------------------------------------- +Storage of app assets and manifests +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The AWS S3 bucket mentioned above is used to store all app static assets and manifest files. All files in the static folder of the bundle are considered to be the app's static assets and are stored in the above-mentioned bucket. Stored assets also have semantic keys and are generated using the rule: ``static/$appID_$appVersion/filename``. For example, the ``servicenow`` app's static file key can be accessed at ``"static/com.mattermost.servicenow_0.1.0_app/photo.png"``. -Storage of Manifest File ------------------------- +Storage of manifest file +~~~~~~~~~~~~~~~~~~~~~~~~~ The ``manifest.json`` file of an app is stored in the same S3 bucket with the key: ``manifests/$appID_$appVersion.json``. -Flow of Deploying Custom Apps to AWS -------------------------------------- +Deploy ustom apps to AWS +^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: deploy-third-party-aws.png :width: 800 @@ -146,8 +146,8 @@ The deployer needs lambda function names, asset keys, and the manifest key to de ``appsctl generate-terraform-data /PATH/TO/YOUR/APP/BUNDLE`` -Flow of deploying custom apps to AWS -------------------------------------- +Deploy custom apps to AWS +^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: deploy-mm-aws.png :width: 800 diff --git a/source/guides/get-help.rst b/source/guides/get-help.rst index 9a19d5f1b02..c1608498a0c 100644 --- a/source/guides/get-help.rst +++ b/source/guides/get-help.rst @@ -1,18 +1,47 @@ Get help with Mattermost ========================= -Get the help you need with Mattermost via robust documentation, extensive community support, and professional support services. If you’re struggling with something on your Mattermost journey, take a look at the following resources: +Get the help you need with Mattermost via robust documentation, extensive community support, and professional support services. We have a diverse community spread across the internet, and web searches via your favorite search engine are often the quickest way to get answers. -We have a diverse community spread across the internet, and web searches via your favorite search engine are often the quickest way to get answers. +If you’re struggling with something on your Mattermost journey, take a look at the following learning resources: -The following learning assets are also available: +Free online training +-------------------- + +.. image:: ../_static/images/badges/academy-qrcode.png + :alt: Mattermost Academy QR Code. Scan to enrol in available courses. + +Scan this QR Code to enrol in `Mattermost Academy `__ end user and system admin courses for self-hosted deployments. Get the most out of your Mattermost deployment! + +Documentation +-------------- + +- `Mattermost Product Documentation: `__ This comprehensive documentation site features information about deploying, managing, and using Mattermost. +- `Mattermost Developer Documentation: `__ This site features information for developers, integrators, and community contributors integrating, extending, customizing, and contributing to Mattermost. +- `Mattermost API Reference: `__ This site features information about the Mattermost Web Services API used by Mattermost clients and third-party applications to interact with the Mattermost server. + +Support knowledge base +---------------------- + +`Support Knowledge Base: `__ Get answers to frequently asked questions and common problems. + +Mattermost Community server +--------------------------- + +`Community chat server: `__ Chat directly with the Mattermost community in chat channels tailored to share knowledge and expertise. + +Mattermost user forums +---------------------- + +`Forums: `__ Search past discussions for helpful information, or start your own thread. + +Feedback +-------- -- `Free online training courses `__: Enrol in Mattermost Academy courses to get the most out of your Mattermost deployment. -- `Documentation: `__ This comprehensive documentation site features information about deploying, managing, and using Mattermost. -- `Support Knowledge Base: `__ Get answers to frequently asked questions and common problems. -- `Community chat server: `__ Chat directly with the Mattermost community in chat channels tailored to share knowledge and expertise. -- `Forums: `__ Search past discussions for helpful information, or start your own thread. - `Report an issue: `__ Report bugs or other issues you encounter when using Mattermost to our development team. -- `Propose a feature: `__ Vote for feature proposals or submit your ideas. +- `Propose a feature: `__ Vote for feature proposals or submit your feature ideas. + +Enterprise support +---------------- -Mattermost also offers `support services `__ to our Enterprise customers, where Mattermost customers can make a `support request `__ to get help from our team. \ No newline at end of file +Mattermost offers `support services `__ to our Enterprise customers, where Mattermost customers can make a `support request `__ to get help from our team. \ No newline at end of file diff --git a/source/guides/package-aws.rst b/source/guides/package-aws.rst index adcfacbeb1d..a1072bc0862 100644 --- a/source/guides/package-aws.rst +++ b/source/guides/package-aws.rst @@ -3,8 +3,8 @@ Package Apps for AWS Lambda Developers must prepare apps for deployment to AWS, which includes creating an app bundle and making the app runnable as an AWS Lambda function. -App Bundle -^^^^^^^^^^ +App bundle +---------- An app bundle is a convenient way to deliver an app to the Mattermost ecosystem. It provides a way to organize code and resources needed for an app to run. An app bundle is created by the developer of the app. Mattermost uses app bundles to deploy and install/uninstall apps. @@ -13,8 +13,9 @@ The app bundle contains a ``manifest.json`` file, a ``static/`` folder (optional - The ``static/`` folder contains all the static files the app needs. For the Mattermost AWS apps, static files are automatically deployed and stored in the dedicated AWS S3 bucket. Apps have unlimited access to them by providing the static file name to the Apps Plugin. For the third-party hosted AWS apps, static files are stored in a different S3 bucket (specified by the third-party). For the HTTP apps, when creating a server, the developer should store the static files in the ``/static/$FILE_NAME`` relative URL. - The ``manifest.json`` file contains details about the app such as appID, appVersion, appType (HTTP or an AWS app), requested permissions, requested locations, and information about the functions such as function path, name, runtime, and handler. - Each of the lambda function bundles is a valid and runnable AWS Lambda function, deployed in AWS by the |Mattermost Apps Cloud Deployer|. The AWS Lambda function bundle is a ``.zip`` file which contains scripts or compiled programs and their dependencies. Note that it must be smaller than 50 MB. Exact specification of the bundle varies for different runtimes. For example, one can see more details for ``node.js`` bundles |bundles here|. -Making your app runnable as an AWS Lambda function -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Make your app runnable as an AWS Lambda function +-------------------------------------------------- In order for your app to run as an AWS Lambda function, it must use one of the supported languages for AWS Lambda. You can find the list |list here|. diff --git a/source/guides/preferences.rst b/source/guides/preferences.rst index 67ead024287..0eaa6e006ea 100644 --- a/source/guides/preferences.rst +++ b/source/guides/preferences.rst @@ -6,6 +6,9 @@ Customize your preferences You can customize many aspects of your Mattermost experience based on your preferences, including notifications for Mattermost activity, how unread channels are organized, the number of direct messages displayed, your Mattermost look and feel, and more! +.. include:: ../_static/badges/academy-customize-ui.rst + :start-after: :nosearch: + Learn more ---------- diff --git a/source/guides/repeatable-processes.rst b/source/guides/repeatable-processes.rst index 45643808b08..6b59c8a93f1 100644 --- a/source/guides/repeatable-processes.rst +++ b/source/guides/repeatable-processes.rst @@ -6,7 +6,11 @@ Build repeatable processes Use the Mattermost Playbooks plugin to create and manage pre-built, configurable checklists that define a repeatable process for teams to achieve specific and predictable outcomes. Mattermost Playbooks is enabled by default for Mattermost self-hosted and Mattermost Cloud workspaces. You can access Playbooks via the product menu in the top-left corner of Mattermost. -With playbooks, your development teams can orchestrate prescribed workflows and define, streamline, and document complex, recurring operations. Playbooks help you stay in command with integrated communication, collaboration, and status dashboards to manage your entire workflow lifecycle. +With playbooks, your development teams can orchestrate prescribed workflows and define, streamline, and document complex, recurring operations. +Playbooks help you stay in command with integrated communication, collaboration, and status dashboards to manage your entire workflow lifecycle. + +.. include:: ../_static/badges/academy-playbooks.rst + :start-after: :nosearch: .. image:: ../images/Playbooks_Hero.png :alt: An example of the Mattermost Playbooks screen that includes active run details in the right-hand pane. diff --git a/source/guides/use-mattermost.rst b/source/guides/use-mattermost.rst index be0e82767b8..dd227866ce8 100644 --- a/source/guides/use-mattermost.rst +++ b/source/guides/use-mattermost.rst @@ -4,6 +4,9 @@ Use Mattermost .. include:: ../_static/badges/allplans-cloud-selfhosted.rst :start-after: :nosearch: +.. |lightbulb| image:: ../images/lightbulb-outline_F0336.svg + :alt: Lightbulb icon. + This Mattermost end user documentation is designed for anyone looking to connect and collaborate in Mattermost, build repeatable, automated processes, and make Mattermost match your work preferences. .. toctree:: @@ -19,6 +22,9 @@ This Mattermost end user documentation is designed for anyone looking to connect * :doc:`Build repeatable processes ` - Learn how to build repeatable processes, move faster, and make fewer mistakes with checklist-based automations in Mattermost. * :doc:`Customize your preferences ` - Learn how to make Mattermost match the way you prefer to work. +.. include:: ../_static/badges/academy-platform-overview.rst + :start-after: :nosearch: + .. image:: ../images/Channels_Hero.png :alt: An example of the Mattermost screen that includes teams, the channel sidebar, an active conversation in the center pane, reply threads in the right-hand pane. diff --git a/source/images/ESR_update.png b/source/images/ESR_update.png new file mode 100644 index 0000000000000000000000000000000000000000..75aab706db0db096e8b0a56e3a742673052be033 GIT binary patch literal 252325 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 UWI3K4V1Mr3HqoupdHC!<02z&9_y7O^ literal 0 HcmV?d00001 diff --git a/source/images/urgent-message.png b/source/images/urgent-message.png new file mode 100644 index 0000000000000000000000000000000000000000..39095c2c7e37de07e6ceefd30035ca78d1c2a85e GIT binary patch literal 62425 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 literal 0 HcmV?d00001 diff --git a/source/install/download-latest-tarball.rst b/source/install/download-latest-tarball.rst index 69b6e0e57aa..05f2d842a44 100644 --- a/source/install/download-latest-tarball.rst +++ b/source/install/download-latest-tarball.rst @@ -15,7 +15,7 @@ Using ``wget``, download the Mattermost Server release you want to install.

- wget https://releases.mattermost.com/9.1.2/mattermost-9.1.2-linux-amd64.tar.gz + wget https://releases.mattermost.com/9.2.2/mattermost-9.2.2-linux-amd64.tar.gz Copied to clipboard
diff --git a/source/install/install-tar.rst b/source/install/install-tar.rst index 36af589749c..5e35ce68733 100644 --- a/source/install/install-tar.rst +++ b/source/install/install-tar.rst @@ -35,6 +35,9 @@ Install Mattermost Server using the tarball You can install the Mattermost Server on any 64-bit Linux system using the tarball. This is the most flexible installation method, but it comes with the highest effort, normally favored by advanced system administrators. +.. include:: ../_static/badges/academy-tarball-deployment.rst + :start-after: :nosearch: + .. tip:: If you are running the Mattermost Server and database on a single system, we recommend the `Mattermost Omnibus install method `__ as this greatly reduces setup and ongoing maintenance, and uses the Mattermost PPA for updates. More modern installation methods such as the Mattermost Helm Chart or Kubernetes Operator are available and are highly recommended. diff --git a/source/install/software-hardware-requirements.rst b/source/install/software-hardware-requirements.rst index f69e7312b46..a7def4a33e5 100644 --- a/source/install/software-hardware-requirements.rst +++ b/source/install/software-hardware-requirements.rst @@ -52,7 +52,7 @@ PC web "Chrome", "v116+", "v116+" "Firefox", "v102+", "v102+" "Safari", "v16.2+", "v16.2+" - "Edge", "v112+", "v112+" + "Edge", "v116+", "v116+" `*` Internet Explorer (IE11) is no longer supported. We recommend using the `Mattermost desktop app `_ or another supported browser. See `this forum post `__ to learn more. diff --git a/source/manage/in-product-notices.rst b/source/manage/in-product-notices.rst index f29f583dabf..53d0d12e0fe 100644 --- a/source/manage/in-product-notices.rst +++ b/source/manage/in-product-notices.rst @@ -8,35 +8,24 @@ Mattermost in-product notices keep users and administrators informed of the newe .. contents:: On this page :local: - :depth: 1 Administrator notices --------------------- -Administrator notices inform System Admins when: - -- A new Mattermost Server version is available, and when upgrades are required due to ending support life cycles. -- External dependencies are being deprecated. -- Mattermost recommends Server configuration options to optimize the user's product experience. -- Mattermost is gathering user feedback to improve the product and user experience. +Administrator notices inform System Admins when a new server version is available, when external dependencies are being deprecated, or when server upgrades are recommended due to ending support life cycles. System Admins may also receive notices about recommended server configuration options to optimize the user experience of their deployment. .. image:: ../images/notices_admin.png - :alt: An example of an in-product administrator notice announcing that a new server version of Mattermost is available. Admin notices can be disabled. + :alt: An example of an in-product administrator notice announcing that a new server version of Mattermost is available. Admin notices also announce when external dependencies are being deprecated, or when server upgrades or optimizations are recommended. -System admins can disable end user notices by going to the **System Console > Site Configuration > Notices** page. +Administrator notices can be disabled in the **System Console > Site Configuration > Notices** page. End user notices ---------------- -End user notices are used to inform all users when: - -- new desktop app versions and feature enhancements are available. -- Mattermost is gathering user feedback to improve the product and user experience. - -System admins can disable end user notices by going to the **System Console > Site Configuration > Notices** page. +End user notices are used to inform users and Admins of new feature enhancements and when new desktop versions are available. They can be disabled in **System Console > Site Configuration > Notices**. .. image:: ../images/notices.png - :alt: An example of an end user in-product notice announcing that a new Mattermost desktop app release is available. End user notices can be disabled. + :alt: An example of an end user in-product notice announcing that a new Mattermost Desktop App version is available. End user notices announce when new features and versions are available, and can be disabled. Frequently asked questions (FAQs) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/manage/telemetry.rst b/source/manage/telemetry.rst index e3a1aae8723..2a1773f8897 100644 --- a/source/manage/telemetry.rst +++ b/source/manage/telemetry.rst @@ -89,7 +89,7 @@ Server Configuration Settings **Type values (enumerated integer and enumerated boolean)** - **ServiceSettings**: enum WebserverMode, bool EnableSecurityFixAlert, bool EnableInsecureOutgoingConnections, bool EnableIncomingWebhooks, bool EnableOutgoingWebhooks, bool EnableCommands, bool EnableDeveloper, bool EnableOnlyAdminIntegrations, bool EnablePostUsernameOverride, bool EnablePostIconOverride, bool EnableCustomEmoji, enum RestrictCustomEmojiCreation, bool EnableTesting, bool DeveloperFlags, bool EnableClientPerformanceDebugging, bool EnableMultifactorAuthentication, bool EnableOAuthServiceProvider, enum ConnectionSecurity, bool UseLetsEncrypt, bool Forward80To443, enum ConnectionSecurity, bool TLSStrictTransport, bool EnforceMultifactorAuthentication, enum RestrictPostDelete, bool AllowEditPost, bool EnableUserTypingMessages, bool EnablePostSearch, bool EnableUserStatuses, bool EnableChannelViewMessages, bool EnableEmojiPicker, bool EnableGifPicker, bool EnableAuthenticationTransfer, enum TeammateNameDisplay, bool EnableUserAccessTokens, enum MaximumLoginAttempts, bool ExtendSessionLengthWithActivity, enum SessionLengthWebInHours, enum SessionLengthMobileInHours, enum SessionLengthSSOInHours, int SessionCacheInMinutes, enum SessionIdleTimeoutInMinutes, enum PostEditTimeLimit, enum TimeBetweenUserTypingUpdatesMilliseconds, enum ClusterLogTimeoutMilliseconds, bool CloseUnusedDirectMessages, bool EnablePreviewFeatures, bool EnableTutorial, bool EnableOnboarding, bool ExperimentalEnableDefaultChannelLeaveJoinMessages, bool ExperimentalGroupUnreadChannels, bool AllowCookiesForSubdomains, bool EnableAPITeamDeletion, bool EnableAPITriggerAdminNotifications, bool EnableAPIUserDeletion, bool EnableAPIChannelDeletion, bool ExperimentalEnableHardenedMode, bool DisableLegacyMFA, bool ExperimentalStrictCSRFEnforcement, bool EnableEmailInvitations, bool ExperimentalChannelOrganization, bool ExperimentalChannelSidebarOrganization, bool EnableLegacySidebar, bool CorsAllowCredentials, bool CorsDebug, bool DisableBotsWhenOwnerIsDeactivated, bool EnableBotAccountCreation, bool RestrictLinkPreviews, bool EnablePermalinkPreviews, bool EnableSVGs, bool EnableLatex, bool EnableInlineLatex, bool EnableOpenTracing, bool Directory, bool RetentionDays, bool ExperimentalDataPrefetch, bool EnableLocalMode; **TeamSettings**: bool EnableUserCreation, bool EnableTeamCreation, bool RestrictTeamNames, enum RestrictTeamInvite, enum RestrictPublicChannelManagement, enum RestrictPrivateChannelManagement, enum RestrictPublicChannelCreation, enum RestrictPrivateChannelCreation, enum RestrictPublicChannelDeletion, enum RestrictPrivateChannelDeletion, enum RestrictPrivateChannelManageMembers, bool EnableOpenServer, bool EnableUserDeactivation, bool EnableCustomBrand, bool RestrictDirectMessage, enum MaxNotificationsPerChannel, bool EnableConfirmNotificationsToChannel; enum MaxUsersPerTeam, enum MaxChannelsPerTeam, bool EnableJoinLeaveMessageByDefault, bool EnableCustomUserStatuses, bool EnableLastActiveTime, bool ExperimentalTownSquareIsReadOnly, bool ExperimentalHideTownSquareinLHS, bool EnableXToLeaveChannelsFromLHS, bool ExperimentalEnableAutomaticReplies, bool ExperimentalViewArchivedChannels, bool LockTeammateNameDisplay; **ClientRequirementSettings**: enum AndroidLatestVersion, enum AndroidMinVersion, enum DesktopLatestVersion, enum DesktopMinVersion, enum IosLatestVersion, enum IosMinVersion; **DisplaySettings**: bool ExperimentalTimezone; **GuestAccountsSettings**: bool Enable, bool AllowEmailAccounts, bool EnforceMultifactorAuthentication; **SqlSettings**: enum DriverName, bool Trace, enum MaxIdleConns, enum ConnMaxIdleTimeMilliseconds, bool ConnMaxLifetimeMilliseconds; enum MaxOpenC onns, enum QueryTimeout, bool DisableDatabaseSearch; **LogSettings**: bool EnableConsole, enum ConsoleLevel, bool ConsoleJson, bool EnableFile, enum FileLevel, bool FileJson, bool EnableWebhookDebugging; **NotificationLogSettings**: bool EnableConsole, bool ConsoleLevel, bool ConsoleJson, bool EnableFile, bool FileLevel, bool FileJson **PasswordSettings**: bool Lowercase, bool Number, bool Uppercase, bool Symbol, enum MinimumLength; **FileSettings**: bool EnablePublicLink, enum DriverName, enum MaxFileSize, enum FileSettings.MaxImageResolution, enum MaxImageDecoderConcurrency, bool FileSettings.ExtractContent, bool FileSettings.ArchiveRecursion, bool AmazonS3SSL, bool AmazonS3SignV2, bool AmazonS3SSE, bool AmazonS3Trace, bool EnableFileAttachments, bool EnableMobileUpload, bool EnableMobileDownload; **EmailSettings**: bool EnableSignUpWithEmail, bool EnableSignInWithEmail, bool EnableSignInWithUsername, bool RequireEmailVerification, bool SendEmailNotifications, bool UseChannelInEmailNotifications, bool EmailNotificationContentsType, bool EnableSMTPAuth, enum ConnectionSecurity, bool SendPushNotifications, enum PushNotificationContents, bool EnableEmailBatching, bool SkipServerCertificateVerification, enum EmailBatchingBufferSize, enum EmailBatchingInterval, bool EnablePreviewModeBanner, enum SMTPServerTimeout; **MessageExportSettings**: bool DownloadExportResults; **RateLimitSettings**: bool EnableRateLimiter, bool VaryByRemoteAddr, bool VaryByUser, enum PerSec, enum MaxBurst, enum MemoryStoreSize; **PrivacySettings**: bool ShowEmailAddress, bool ShowFullName; **ThemeSettings**: bool EnableThemeSelection, bool AllowCustomThemes; **GitLabSettings**: bool Enable; **GoogleSettings**: bool Enable; **Office365Settings**: bool Enable; **SupportSettings**: bool CustomTermsOfServiceEnabled; enum CustomTermsOfServiceReAcceptancePeriod; **LdapSettings**: bool Enable, bool EnableSync, enum ConnectionSecurity, bool SkipCertificateVerification, enum SyncIntervalMinutes, enum QueryTimeout, enum MaxPageSize, bool EnableAdminFilter; **ComplianceSettings**: bool Enable, bool EnableDaily; **LocalizationSettings**: enum DefaultServerLocale, enum DefaultClientLocale, enum AvailableLocales; **SamlSettings**: bool Enable, bool EnableSyncWithLdap, bool IgnoreGuestsLdapSync, bool EnableSyncWithLdapIncludeAuth, bool Verify, bool Encrypt, bool SignRequest, bool EnableAdminFilter; **ClusterSettings**: bool Enable, bool UseIpAddress, bool UseExperimentalGossip, bool ReadOnlyConfig, bool EnableExperimentalGossipEncryption, bool EnableGossipCompression; **MetricsSettings**: bool Enable, enum BlockProfileRate; **WebrtcSettings** (only in v5.5 and earlier): bool Enable; **ExperimentalSettings** bool ClientSideCertEnable, bool EnablePostMetadata, bool LinkMetadataTimeoutMilliseconds, bool EnableClickToReply, bool RestrictSystemAdmin, bool UseNewSAMLLibrary, bool CloudBilling, bool RemoteClusters, bool EnableSharedChannels, bool EnableRemoteClusterService, bool PatchPluginsReactDOM, bool Disableappbar, bool AllowSyncedDrafts; **AnnouncementSettings**: bool EnableBanner, bool AllowBannerDismissal, bool AdminNoticesEnabled, bool UserNoticesEnabled; **ElasticsearchSettings**: bool EnableIndexing, bool EnableSearching, bool Sniff, enum PostIndexReplicas, enum PostIndexShards, enum LiveIndexingBatchSize, enum BatchSize, enum RequestTimeoutSeconds, bool SkipTLSVerification, bool Trace; **PluginSettings**: bool Enable, bool EnableUploads, bool EnableHealthCheck, bool EnableMarketplace, bool EnableRemoteMarketplace, bool AutomaticPrepackagedPlugins, bool RequirePluginSignature; **DataRetentionSettings**: bool EnableMessageDeletion, bool MessageRetentionDays, bool AllowInsecureDownloadUrl, bool EnableFileDeletion, bool FileRetentionDays, enum DeletionJobStartTime; **MessageExportSettings**: bool EnableExport, enum ExportFormat, enum DailyRunTime, enum ExportFromTimestamp, enum BatchSize, enum GlobalRelaySettings.CustomerType; **ExperimentalAuditSettings**: bool SysLogEnabled, bool SysLogInsecure, enum SysLogMaxQueueSize, bool FileEnabled, enum FileMaxSizeMB, enum FileMaxAgeDays, bool FileMaxBackups, bool FileCompress, enum FileMaxQueueSize; **BleveSettings**: bool EnableIndexing, bool EnableSearching, bool EnableAutocomplete, enum BatchSize; bool FeatureFlags + **ServiceSettings**: enum WebserverMode, bool EnableSecurityFixAlert, bool EnableInsecureOutgoingConnections, bool EnableIncomingWebhooks, bool EnableOutgoingWebhooks, bool EnableCommands, bool EnableDeveloper, bool EnableOnlyAdminIntegrations, bool EnablePostUsernameOverride, bool EnablePostIconOverride, bool EnableCustomEmoji, enum RestrictCustomEmojiCreation, bool EnableTesting, bool DeveloperFlags, bool EnableClientPerformanceDebugging, bool EnableMultifactorAuthentication, bool EnableOAuthServiceProvider, enum ConnectionSecurity, bool UseLetsEncrypt, bool Forward80To443, enum ConnectionSecurity, bool TLSStrictTransport, bool EnforceMultifactorAuthentication, enum RestrictPostDelete, bool AllowEditPost, bool EnableUserTypingMessages, bool EnablePostSearch, bool EnableUserStatuses, bool EnableChannelViewMessages, bool EnableEmojiPicker, bool EnableGifPicker, bool EnableAuthenticationTransfer, enum TeammateNameDisplay, bool EnableUserAccessTokens, enum MaximumLoginAttempts, bool ExtendSessionLengthWithActivity, enum SessionLengthWebInHours, enum SessionLengthMobileInHours, enum SessionLengthSSOInHours, int SessionCacheInMinutes, enum SessionIdleTimeoutInMinutes, enum PostEditTimeLimit, enum TimeBetweenUserTypingUpdatesMilliseconds, enum ClusterLogTimeoutMilliseconds, bool CloseUnusedDirectMessages, bool EnablePreviewFeatures, bool EnableTutorial, bool EnableOnboarding, bool ExperimentalEnableDefaultChannelLeaveJoinMessages, bool ExperimentalGroupUnreadChannels, bool AllowCookiesForSubdomains, bool EnableAPITeamDeletion, bool EnableAPITriggerAdminNotifications, bool EnableAPIUserDeletion, bool EnableAPIChannelDeletion, bool ExperimentalEnableHardenedMode, bool DisableLegacyMFA, bool ExperimentalStrictCSRFEnforcement, bool EnableEmailInvitations, bool ExperimentalChannelOrganization, bool ExperimentalChannelSidebarOrganization, bool EnableLegacySidebar, bool CorsAllowCredentials, bool CorsDebug, bool DisableBotsWhenOwnerIsDeactivated, bool EnableBotAccountCreation, bool RestrictLinkPreviews, bool EnablePermalinkPreviews, bool EnableSVGs, bool EnableLatex, bool EnableInlineLatex, bool EnableOpenTracing, bool Directory, bool RetentionDays, bool ExperimentalDataPrefetch, bool EnableLocalMode; **TeamSettings**: bool EnableUserCreation, bool EnableTeamCreation, bool RestrictTeamNames, enum RestrictTeamInvite, enum RestrictPublicChannelManagement, enum RestrictPrivateChannelManagement, enum RestrictPublicChannelCreation, enum RestrictPrivateChannelCreation, enum RestrictPublicChannelDeletion, enum RestrictPrivateChannelDeletion, enum RestrictPrivateChannelManageMembers, bool EnableOpenServer, bool EnableUserDeactivation, bool EnableCustomBrand, bool RestrictDirectMessage, enum MaxNotificationsPerChannel, bool EnableConfirmNotificationsToChannel; enum MaxUsersPerTeam, enum MaxChannelsPerTeam, bool EnableJoinLeaveMessageByDefault, bool EnableCustomUserStatuses, bool EnableLastActiveTime, bool ExperimentalTownSquareIsReadOnly, bool ExperimentalHideTownSquareinLHS, bool EnableXToLeaveChannelsFromLHS, bool ExperimentalEnableAutomaticReplies, bool ExperimentalViewArchivedChannels, bool LockTeammateNameDisplay, bool MaxFieldSize; **ClientRequirementSettings**: enum AndroidLatestVersion, enum AndroidMinVersion, enum DesktopLatestVersion, enum DesktopMinVersion, enum IosLatestVersion, enum IosMinVersion; **DisplaySettings**: bool ExperimentalTimezone; **GuestAccountsSettings**: bool Enable, bool AllowEmailAccounts, bool EnforceMultifactorAuthentication; **SqlSettings**: enum DriverName, bool Trace, enum MaxIdleConns, enum ConnMaxIdleTimeMilliseconds, bool ConnMaxLifetimeMilliseconds; enum MaxOpenC onns, enum QueryTimeout, bool DisableDatabaseSearch; **LogSettings**: bool EnableConsole, enum ConsoleLevel, bool ConsoleJson, bool EnableFile, enum FileLevel, bool FileJson, bool EnableWebhookDebugging; **NotificationLogSettings**: bool EnableConsole, bool ConsoleLevel, bool ConsoleJson, bool EnableFile, bool FileLevel, bool FileJson **PasswordSettings**: bool Lowercase, bool Number, bool Uppercase, bool Symbol, enum MinimumLength; **FileSettings**: bool EnablePublicLink, enum DriverName, enum MaxFileSize, enum FileSettings.MaxImageResolution, enum MaxImageDecoderConcurrency, bool FileSettings.ExtractContent, bool FileSettings.ArchiveRecursion, bool AmazonS3SSL, bool AmazonS3SignV2, bool AmazonS3SSE, bool AmazonS3Trace, bool EnableFileAttachments, bool EnableMobileUpload, bool EnableMobileDownload; **EmailSettings**: bool EnableSignUpWithEmail, bool EnableSignInWithEmail, bool EnableSignInWithUsername, bool RequireEmailVerification, bool SendEmailNotifications, bool UseChannelInEmailNotifications, bool EmailNotificationContentsType, bool EnableSMTPAuth, enum ConnectionSecurity, bool SendPushNotifications, enum PushNotificationContents, bool EnableEmailBatching, bool SkipServerCertificateVerification, enum EmailBatchingBufferSize, enum EmailBatchingInterval, bool EnablePreviewModeBanner, enum SMTPServerTimeout; **MessageExportSettings**: bool DownloadExportResults; **RateLimitSettings**: bool EnableRateLimiter, bool VaryByRemoteAddr, bool VaryByUser, enum PerSec, enum MaxBurst, enum MemoryStoreSize; **PrivacySettings**: bool ShowEmailAddress, bool ShowFullName; **ThemeSettings**: bool EnableThemeSelection, bool AllowCustomThemes; **GitLabSettings**: bool Enable; **GoogleSettings**: bool Enable; **Office365Settings**: bool Enable; **SupportSettings**: bool CustomTermsOfServiceEnabled; enum CustomTermsOfServiceReAcceptancePeriod; **LdapSettings**: bool Enable, bool EnableSync, enum ConnectionSecurity, bool SkipCertificateVerification, enum SyncIntervalMinutes, enum QueryTimeout, enum MaxPageSize, bool EnableAdminFilter; **ComplianceSettings**: bool Enable, bool EnableDaily; **LocalizationSettings**: enum DefaultServerLocale, enum DefaultClientLocale, enum AvailableLocales; **SamlSettings**: bool Enable, bool EnableSyncWithLdap, bool IgnoreGuestsLdapSync, bool EnableSyncWithLdapIncludeAuth, bool Verify, bool Encrypt, bool SignRequest, bool EnableAdminFilter; **ClusterSettings**: bool Enable, bool UseIpAddress, bool UseExperimentalGossip, bool ReadOnlyConfig, bool EnableExperimentalGossipEncryption, bool EnableGossipCompression; **MetricsSettings**: bool Enable, enum BlockProfileRate; **WebrtcSettings** (only in v5.5 and earlier): bool Enable; **ExperimentalSettings** bool ClientSideCertEnable, bool EnablePostMetadata, bool LinkMetadataTimeoutMilliseconds, bool EnableClickToReply, bool RestrictSystemAdmin, bool UseNewSAMLLibrary, bool CloudBilling, bool RemoteClusters, bool EnableSharedChannels, bool EnableRemoteClusterService, bool PatchPluginsReactDOM, bool Disableappbar, bool AllowSyncedDrafts; **AnnouncementSettings**: bool EnableBanner, bool AllowBannerDismissal, bool AdminNoticesEnabled, bool UserNoticesEnabled; **ElasticsearchSettings**: bool EnableIndexing, bool EnableSearching, bool Sniff, enum PostIndexReplicas, enum PostIndexShards, enum LiveIndexingBatchSize, enum BatchSize, enum RequestTimeoutSeconds, bool SkipTLSVerification, bool Trace; **PluginSettings**: bool Enable, bool EnableUploads, bool EnableHealthCheck, bool EnableMarketplace, bool EnableRemoteMarketplace, bool AutomaticPrepackagedPlugins, bool RequirePluginSignature; **DataRetentionSettings**: bool EnableMessageDeletion, bool MessageRetentionDays, bool AllowInsecureDownloadUrl, bool EnableFileDeletion, bool FileRetentionDays, enum DeletionJobStartTime; **MessageExportSettings**: bool EnableExport, enum ExportFormat, enum DailyRunTime, enum ExportFromTimestamp, enum BatchSize, enum GlobalRelaySettings.CustomerType; **ExperimentalAuditSettings**: bool SysLogEnabled, bool SysLogInsecure, enum SysLogMaxQueueSize, bool FileEnabled, enum FileMaxSizeMB, enum FileMaxAgeDays, bool FileMaxBackups, bool FileCompress, enum FileMaxQueueSize; **BleveSettings**: bool EnableIndexing, bool EnableSearching, bool EnableAutocomplete, enum BatchSize; bool FeatureFlags **Counts (integer)** diff --git a/source/preferences/manage-advanced-options.rst b/source/preferences/manage-advanced-options.rst index 379abf795a3..0dad8383dd7 100644 --- a/source/preferences/manage-advanced-options.rst +++ b/source/preferences/manage-advanced-options.rst @@ -136,6 +136,21 @@ By default, `message drafts `__ are synchron This option isn't applicable to the mobile app. +Allow Mattermost to prefetch channel posts +------------------------------------------ + +By default, Mattermost pre-fetches messages and user information when you start Mattermost in a browser. You can disable webapp pre-fetching so that Mattermost prefetches messages and user information as you open channels instead. Disabling prefetch is recommended for users with a high unread channel count in order to improve application performance. + +.. tabs:: + + .. tab:: Web/Desktop + + Select **Allow Mattermost to prefetch channel posts** to disable webapp pre-fetching on startup, and pre-fetch the data as you open channels. + + .. tab:: Mobile + + This option isn't applicable to the mobile app. + Delete local files ------------------ diff --git a/source/preferences/manage-your-notifications.rst b/source/preferences/manage-your-notifications.rst index 0aad18f69d5..dba18a6c6a7 100644 --- a/source/preferences/manage-your-notifications.rst +++ b/source/preferences/manage-your-notifications.rst @@ -31,8 +31,8 @@ Mattermost notifies you of new activity in the following ways: - **Push notifications**: Mobile app alert you to new activity when you're on the go. - **Sounds**: Audible sounds alert you to new activity. - -.. tip:: Missing notifications? Visit our `notifications knowledge base article `__ for troubleshooting tips and tricks. +.. include:: ../_static/badges/academy-notifications.rst + :start-after: :nosearch: Get notified ------------- @@ -164,4 +164,8 @@ On mobile, select the **Settings** |gear| icon and tap **Notifications**. By default, you don’t automatically follow new conversation threads unless you start a thread or reply to a thread, follow a thread, or are @mentioned in a thread. - You can configure Mattermost to automatically follow every thread in a channel. When enabled, you can access all threads in the **Threads** view, and unfollow individual threads as you prefer. \ No newline at end of file + You can configure Mattermost to automatically follow every thread in a channel. When enabled, you can access all threads in the **Threads** view, and unfollow individual threads as you prefer. + +.. tip:: + + Missing notifications? Visit our `notifications knowledge base article `__ for troubleshooting tips and tricks. \ No newline at end of file diff --git a/source/preferences/set-your-status-availability.rst b/source/preferences/set-your-status-availability.rst index a3e0de10972..34f911a4181 100644 --- a/source/preferences/set-your-status-availability.rst +++ b/source/preferences/set-your-status-availability.rst @@ -63,6 +63,9 @@ To set your availability, select your profile picture, then specify your availab | | - By default, notifications are sent to the browser, the desktop app, and the mobile app. | +------------------+-------------------------------------------------------------------------------------------------------------------+ | |away| | - Set automatically for you when you've been inactive for more than 5 minutes. | +| | | +| | - You're inactive when you're not: typing in or navigating between channels, switching to another browser tab, | +| | or when you've minimized or moved the browser window to the background. | | | - You can manually set yourself as **Away** any time. | | | - By default, notifications are sent to your Mattermost mobile app. | +------------------+-------------------------------------------------------------------------------------------------------------------+ @@ -75,8 +78,6 @@ To set your availability, select your profile picture, then specify your availab | | - By default, notifications are sent to your Mattermost mobile app. | +------------------+-------------------------------------------------------------------------------------------------------------------+ - - Other members can see your availability anywhere they can see your name, such as the channel sidebar, within conversations, and within Direct Messages. Set your availability as Do Not Disturb @@ -87,17 +88,4 @@ Set your availability to **Do Not Disturb** to disable all desktop, email, and p You can specify how long to disable notifications by selecting a preset expiration or setting a custom expiration. Your availability setting automatically reverts to its previous setting once the expiration is reached (this may take up to five minutes). .. image:: ../images/set-your-availability.png - :alt: Example of setting your Mattermost availability to Do Not Disturb. - -How Mattermost determines your availability -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. csv-table:: - :header: "Client", "**Online**", "**Away**", "**Offline**" - - "**Desktop App**", "You're interacting with your computer", "You've been inactive on your computer for five minutes", "You close Mattermost, sleep, or lock your computer" - "**Web Browser**", "You're interacting with Mattermost in a browser", " - - You have not typed or navigated between channels for five minutes - - The tab is unfocused for five minutes - - The browser is in the background or minimized for five minutes", "You close the Mattermost browser window" - "**Mobile App**", "Mattermost is open", "Mattermost is open with five minutes of inactivity", "You change apps, close Mattermost, or lock your screen" + :alt: Example of setting your Mattermost availability as Do Not Disturb. \ No newline at end of file diff --git a/source/scale/scaling-for-enterprise.rst b/source/scale/scaling-for-enterprise.rst index a31770ca654..586565f2e8c 100644 --- a/source/scale/scaling-for-enterprise.rst +++ b/source/scale/scaling-for-enterprise.rst @@ -13,7 +13,6 @@ Single machine deployment Organizations can typically run Mattermost on a single server with up to 2,000 users, though more users have been observed based on different usage and server configurations. -- See `install guides for step-by-step configuration instructions for single machine setup `__. - See `hardware and software requirements for hardware sizing `__. Multi machine deployment @@ -21,7 +20,6 @@ Multi machine deployment Deployments between 2,000 and 10,000 registered users with moderate usage can run on a standard three-machine Mattermost deployment with a proxy, an application server and a database server. At this scale, demands of larger organizations can typically be met by using powerful hardware in a standard configuration. -- See `install guides for step-by-step configuration instructions for multi-machine setup `__. - See `hardware and software requirements for hardware sizing `__. Cluster-based deployment diff --git a/source/templates/header.html b/source/templates/header.html index ac087c1db0a..6cf8fae86f1 100644 --- a/source/templates/header.html +++ b/source/templates/header.html @@ -302,4 +302,4 @@ {% endif %} - + \ No newline at end of file diff --git a/source/upgrade/extended-support-release.rst b/source/upgrade/extended-support-release.rst index b376914379a..0c4f7cb878b 100644 --- a/source/upgrade/extended-support-release.rst +++ b/source/upgrade/extended-support-release.rst @@ -10,7 +10,7 @@ What is an Extended Support Release? During each monthly release, Mattermost backports security fixes and high impact bug fixes to the previous three monthly releases. Extended Support Releases (ESRs) are releases that will receive backports for security fixes and major bug fixes for the length of their life cycle. .. important:: - Support for Mattermost Server v7.8 Extended Support Release is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is recommended. + Support for Mattermost Server v7.8 Extended Support Release has come to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is required. What is the life cycle of an Extended Support Release? ------------------------------------------------------ @@ -21,7 +21,7 @@ When an ESR is at the end of its life cycle, there will be announcements ahead o To receive updates about Extended Support Releases, sign up for our mailing list `here `__. -.. image:: ../images/ESR_graphic.png +.. image:: ../images/ESR_update.png :alt: Timeline-based chart showing the lifecycle of Mattermost Extended Support Releases and feature releases from last year and this year. What is included in an Extended Support Release dot release? @@ -106,12 +106,12 @@ What Mobile and Desktop App versions are compatible with the latest ESR? Earlier 4.x versions of Mattermost Desktop App and earlier v1.x versions of the Mobile App are backwards compatible and are supported with our supported Extended Support Releases. However, for an optimal user experience and for latest security fixes, we strongly recommend upgrading both your Mattermost Desktop and Mobile Apps to the latest version. -Please review the `Desktop App changelog `_ and the `Mobile App changelog `_ notes for any self-hosted version requirements for features and functionalities, as well as notes on security fixes. +Please review the `Desktop App changelog `_ and the `Mobile App changelog `_ notes for any self-hosted version requirements for features and functionalities, as well as notes on security fixes. See more details in our `release lifecycle documentation `_. If we upgrade to the latest ESR with a legacy `E10 or E20 license key `_, will we have compatibility issues? -------------------------------------------------------------------------- +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- No. Your license key is decoupled from the Mattermost server version. You can freely upgrade to any ESR regardless of your license key or plan. diff --git a/source/upgrade/important-upgrade-notes.rst b/source/upgrade/important-upgrade-notes.rst index 09700c07916..c0928d8459c 100644 --- a/source/upgrade/important-upgrade-notes.rst +++ b/source/upgrade/important-upgrade-notes.rst @@ -5,7 +5,7 @@ Important Upgrade Notes :start-after: :nosearch: .. important:: - - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle in November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is recommended. + - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` has come to the end of its life cycle in November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is required. - MySQL 8.0.22 contains an `issue with JSON column types `__ changing string values to integers which is preventing Mattermost from working properly. Users are advised to avoid this database version. - Upgrading the Microsoft Teams Calling plugin to v2.0.0 requires users to reconnect their accounts. - When upgrading to 7.x from a 5.x release please make sure to upgrade to 5.37.10 first for the upgrade to complete successfully. @@ -14,6 +14,12 @@ Important Upgrade Notes +----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | If you’re upgrading from a version earlier than... | Then... | +====================================================+==================================================================================================================================================================+ +| v9.2 | Fixed data retention policies to run jobs when any custom retention policy is enabled even when the global retention policy is set to "keep-forever". Before | +| | this fix, the enabled custom data retention policies wouldn't run as long as the global data retention policy was set to "keep-forever" or was disabled. After | +| | the fix, the custom data retention policies will run automatically even when the global data retention policy is set to "keep-forever". Once the server is | +| | upgraded, posts may unintentionally be deleted. Admins should make sure to disable all custom data retention policies before upgrading, and then re-enable | +| | them again after upgrading. | ++----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | v9.1 | In v9.1.0, improved performance on data retention ``DeleteOrphanedRows`` queries. | | | | | | New migration for a new table: | diff --git a/source/upgrade/open-source-components.rst b/source/upgrade/open-source-components.rst index 35887095263..1ef00d84caf 100644 --- a/source/upgrade/open-source-components.rst +++ b/source/upgrade/open-source-components.rst @@ -28,6 +28,7 @@ Desktop Mobile ------- + - Mattermost Mobile v2.10.0 - `View Open Source Components `_. - Mattermost Mobile v2.9.0 - `View Open Source Components `_. - Mattermost Mobile v2.8.0 - `View Open Source Components `_. - Mattermost Mobile v2.7.0 - `View Open Source Components `_. @@ -98,6 +99,7 @@ Mobile Server ------------------------------ + - Mattermost Enterprise Edition v9.2.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v9.1.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v9.0.0 - `View Open Source Components `_. - Mattermost Enterprise Edition v8.1.0 - `View Open Source Components `_. diff --git a/source/upgrade/prepare-to-upgrade-mattermost.rst b/source/upgrade/prepare-to-upgrade-mattermost.rst index 78a74701bbd..694df043e87 100644 --- a/source/upgrade/prepare-to-upgrade-mattermost.rst +++ b/source/upgrade/prepare-to-upgrade-mattermost.rst @@ -63,7 +63,7 @@ We strongly recommend that you: .. important:: - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is recommended. Upgrading from a previous Extended Support Release to the latest Extended Support Release is supported. Upgrading from v5.31 to v5.37 should take roughly the same amount of time as upgrading from v5.31 to v5.35, then upgrading v5.35 to 5.37. However, an upgrade directly from v5.31 to v5.37 could potentially take hours due to the database schema migrations required for v5.35. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` has come to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 Extended Support Release or later is required. Upgrading from a previous Extended Support Release to the latest Extended Support Release is supported. Upgrading from v5.31 to v5.37 should take roughly the same amount of time as upgrading from v5.31 to v5.35, then upgrading v5.35 to 5.37. However, an upgrade directly from v5.31 to v5.37 could potentially take hours due to the database schema migrations required for v5.35. Review the :doc:`important-upgrade-notes` for all intermediate versions in between to ensure you’re aware of the possible migrations that could affect your upgrade. v6.0 database schema migrations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/source/upgrade/release-lifecycle.rst b/source/upgrade/release-lifecycle.rst index 199bc4c9556..b9896b4aa10 100644 --- a/source/upgrade/release-lifecycle.rst +++ b/source/upgrade/release-lifecycle.rst @@ -11,11 +11,13 @@ During each monthly release, Mattermost backports high severity or high impact s .. important:: - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 or later is recommended. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` has come to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 or later is required. +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | Version | Release Type | Lifecyle Start Date | Lifecycle End Date | Extended Support Release | +=============+=======================+==========================+==========================+==========================+ +| 9.3 | Feature | 2023-12-16 | 2024-03-15 | | ++-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 9.2 | Feature | 2023-11-16 | 2024-02-15 | | +-------------+-----------------------+--------------------------+--------------------------+--------------------------+ | 9.1 | Feature | 2023-10-16 | 2024-01-15 | | @@ -170,4 +172,4 @@ Desktop and mobile app compatibility Mattermost desktop and mobile apps are backwards compatible; however, we strongly recommend updating to the latest version for an optimal user experience. The latest versions include the latest security fixes, and are compatible with the oldest supported `extended support release `__ of Mattermost Server to ensure backwards compatibility. -Please review the `desktop app changelog `__ and the `mobile app changelog `__ notes for any self-hosted or Cloud-specific version requirements for features and functionalities, as well as notes on security fixes. +Please review the `desktop app changelog `__ and the `mobile app changelog `__ notes for any self-hosted or Cloud-specific version requirements for features and functionalities, as well as notes on security fixes. diff --git a/source/upgrade/upgrading-mattermost-server.rst b/source/upgrade/upgrading-mattermost-server.rst index 348c972e5e0..7f29191e8fb 100644 --- a/source/upgrade/upgrading-mattermost-server.rst +++ b/source/upgrade/upgrading-mattermost-server.rst @@ -6,6 +6,9 @@ Upgrade Mattermost Server In most cases, you can upgrade Mattermost Server in a few minutes. However, the upgrade can take longer depending on several factors, including the size and complexity of your installation, and the version that you're upgrading from. +.. include:: ../_static/badges/academy-tarball-upgrade.rst + :start-after: :nosearch: + .. _before-you-begin: Before you begin diff --git a/source/upgrade/version-archive.rst b/source/upgrade/version-archive.rst index 6917c3cd7c3..36abda05561 100644 --- a/source/upgrade/version-archive.rst +++ b/source/upgrade/version-archive.rst @@ -8,7 +8,7 @@ If you want to check that the version of Mattermost you are installing is the of .. important:: - Support for Mattermost Server v7.8 :doc:`Extended Support Release ` is coming to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is recommended. + Support for Mattermost Server v7.8 :doc:`Extended Support Release ` has come to the end of its life cycle on November 15, 2023. Upgrading to Mattermost Server v8.1 :doc:`Extended Support Release ` or later is required. .. contents:: On this page :backlinks: top