Skip to content

Commit

Permalink
Merge branch 'master' into patch-2
Browse files Browse the repository at this point in the history
  • Loading branch information
cwarnermm authored Feb 26, 2025
2 parents 186b56c + 32d62f6 commit c9aed0c
Show file tree
Hide file tree
Showing 74 changed files with 1,957 additions and 1,417 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,4 @@ source/developer/localization.md
# Generated PKI files
*.key
*.crt
.aider*
5 changes: 2 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -57,13 +57,12 @@ endif
linkcheck:
ifeq ($(OS),Windows_NT)
@CMD /C IF NOT EXIST $(BUILDDIR) MD $(BUILDDIR)
@CMD /C $(SPHINXBUILD) -M $@ -D exclude_patterns=archive/*,process/* "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -w "$(WARNINGSFILE)" 2>NUL
@CMD /C $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -w "$(WARNINGSFILE)" 2>NUL
else
@mkdir -p "$(BUILDDIR)"
@$(SPHINXBUILD) -M $@ -D exclude_patterns=archive/*,process/* "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 2>>"$(WARNINGSFILE)"
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 2>>"$(WARNINGSFILE)"
endif


# Download the latest Compass Icon assets.
compass-icons:
ifeq ($(OS),Windows_NT)
Expand Down
File renamed without changes.
84 changes: 84 additions & 0 deletions scripts/detect-duplicate-redirects.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#!/usr/bin/env python3

"""
Script to detect duplicate redirects in conf.py
"""

import os
import sys
from collections import defaultdict

def load_redirects():
"""Load redirects dictionary from conf.py"""
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'source'))
import conf
return conf.redirects

def find_duplicate_redirects(redirects):
"""
Analyze redirects dictionary for duplicates
Returns tuple of (duplicate_sources, sources_to_same_target)
"""
# Track sources that map to the same target
target_to_sources = defaultdict(list)
# Track duplicate sources
source_to_targets = defaultdict(list)

for source, target in redirects.items():
# Track this source->target mapping
source_to_targets[source].append(target)
# Track this target's source
target_to_sources[target].append(source)

# Find duplicates
duplicate_sources = {
source: targets
for source, targets in source_to_targets.items()
if len(targets) > 1
}

sources_to_same_target = {
target: sources
for target, sources in target_to_sources.items()
if len(sources) > 1
}

return duplicate_sources, sources_to_same_target

def write_warnings(duplicate_sources, sources_to_same_target):
"""Write warning messages to warnings.log"""
os.makedirs('build', exist_ok=True)

with open('build/warnings.log', 'a') as log:
if duplicate_sources:
warning = "\nDuplicate sources found (same source maps to multiple targets):\n"
log.write(warning)
print(warning)

for source, targets in duplicate_sources.items():
msg = f"Source: {source}\n"
msg += f"Maps to multiple targets: {targets}\n"
log.write(msg)
print(msg)

if sources_to_same_target:
warning = "\nMultiple sources map to same target:\n"
log.write(warning)
print(warning)

for target, sources in sources_to_same_target.items():
msg = f"Target: {target}\n"
msg += f"Has multiple sources: {sources}\n"
log.write(msg)
print(msg)

def main():
redirects = load_redirects()
duplicate_sources, sources_to_same_target = find_duplicate_redirects(redirects)
write_warnings(duplicate_sources, sources_to_same_target)

# Return non-zero exit code if duplicates found
return 1 if duplicate_sources else 0

if __name__ == '__main__':
sys.exit(main())
45 changes: 45 additions & 0 deletions scripts/fix_config_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import re
import sys
from pathlib import Path

if len(sys.argv) != 2:
print("Usage: python fix_config_settings.py <rst_file_path>")
sys.exit(1)

def to_slug(text):
# Convert text to lowercase and replace spaces with hyphens
slug = text.lower().replace(' ', '-')
# Remove any characters that aren't alphanumeric or hyphens
slug = re.sub(r'[^a-z0-9-]', '', slug)
# Replace multiple hyphens with single hyphen
slug = re.sub(r'-+', '-', slug)
return slug

def process_file(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()

# Find all config:setting directives and their associated headings
pattern = r'\.\.[\s]*config:setting::[\s]*([^\n]+)[\s\S]*?(?=^[^\s#].*$\n[-~=]+$)(.*?)\n[-~=]+'
matches = re.finditer(pattern, content, re.MULTILINE)

for match in matches:
directive_value = match.group(1).strip()
heading = match.group(2).strip()

# Convert heading to slug format
heading_slug = to_slug(heading)

if directive_value != heading_slug:
# Replace the directive value with the heading slug
old_directive = f'.. config:setting:: {directive_value}'
new_directive = f'.. config:setting:: {heading_slug}'
content = content.replace(old_directive, new_directive)

# Write the modified content back to the file
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)

if __name__ == '__main__':
filepath = sys.argv[1]
process_file(filepath)
5 changes: 5 additions & 0 deletions source/about/cloud-subscriptions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ Mattermost Cloud subscriptions are offered as an annual subscription. Contact a

If you’re currently using a Mattermost Cloud trial, contact a `Mattermost Expert <https://mattermost.com/contact-sales/>`_ to upgrade to Mattermost Enterprise. Your plan immediately changes to your upgraded plan. You will be invoiced as specified in your sales agreement.

What is the minimum number of users I can purhcase on a subscription?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The minimum purchase for a Mattermost license subscription is 100 users, with no set maximum. You can buy as many user seats as needed.

Is Mattermost Cloud subject to taxes?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
1 change: 1 addition & 0 deletions source/about/common-esr-support-rst.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support for Mattermost Server v9.11 :ref:`Extended Support Release <about/release-policy:extended support releases>` is coming to the end of its life cycle on May 15, 2025. Upgrading to :doc:`Mattermost Server v10.5 or later </about/mattermost-server-releases>` is required.
4 changes: 4 additions & 0 deletions source/about/common-esr-support-upgrade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Support for Mattermost Server v9.11 [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#extended-support-releases) is coming to the end of its life cycle on May 15, 2025. Upgrading to Mattermost Server v10.5 or later is required.
- Upgrading from ESR-to-ESR (``major`` -> ``major_next``) is fully supported and tested. However, upgrading from ESR-to-ESR (``major`` to ``major+2``) is supported, but not tested. If you plan to upgrade across multiple releases, we strongly recommend upgrading from an ESR to another ESR. For example, if you're upgrading from the v8.1 ESR, upgrade to the [v9.5 ESR](https://docs.mattermost.com/about/mattermost-v9-changelog.html#release-v9-5-extended-support-release) or the [v9.11 ESR](https://docs.mattermost.com/about/mattermost-v9-changelog.html#release-v9-11-extended-support-release).
- See the [Important Upgrade Notes](https://docs.mattermost.com/upgrade/important-upgrade-notes.html) documentation for details on upgrading to a newer release.
- See the [changelog in progress](https://bit.ly/2nK3cVf) for details about the upcoming release.
1 change: 1 addition & 0 deletions source/about/common-esr-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Support for Mattermost Server v9.11 [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#extended-support-releases) is coming to the end of its life cycle on May 15, 2025. Upgrading to [Mattermost Server v10.5](https://docs.mattermost.com/about/mattermost-v10-changelog.html#release-v10-5-extended-support-release) or later is required.
16 changes: 8 additions & 8 deletions source/about/deprecated-features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,19 @@ Mattermost Server v10.6.0

- Support for PostgreSQL v11 and v12 will be removed. The new minimum PostgreSQL version will be v13+. See the :ref:`minimum supported PostgreSQL version policy <install/prepare-mattermost-database:minimum supported version policy>` documentation for details.

Mattermost Mobile App v2.25.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- In the Mattermost Mobile App v2.25, Mattermost will stop supporting iOS versions 13 and 14. Users should update their iOS version to v15.1 or newer before February 14, 2025. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-ios-13-and-14-versions/21845>`__.
Removed features by Mattermost version
----------------------------------------

Mattermost Server v10.5.0
~~~~~~~~~~~~~~~~~~~~~~~~~

- The Mattermost server will stop supporting manual plugin deployment. Plugins are deployed manually when an administrator or some deployment automation copies the contents of a plugin bundle into the server's working directory. If a manual or automated deployment workflow is still required, administrators can instead prepackage the plugin bundles. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-manual-plugin-deployment/21192>`__.
- Mattermost will stop providing official Mattermost server builds for the Microsoft Windows operating system. Administrators should migrate existing Mattermost server installations to use the official Linux builds. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-server-builds-for-microsoft-windows/21498>`__.
- The Mattermost server has stopped supporting manual plugin deployment. Plugins were deployed manually when an administrator or some deployment automation copies the contents of a plugin bundle into the server's working directory. If a manual or automated deployment workflow is still required, administrators can instead prepackage the plugin bundles. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-manual-plugin-deployment/21192>`__.
- Mattermost has stopped official Mattermost server builds for the Microsoft Windows operating system. Administrators should migrate existing Mattermost server installations to use the official Linux builds. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-server-builds-for-microsoft-windows/21498>`__.

Removed features by Mattermost version
----------------------------------------
Mattermost Mobile App v2.25.0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- In the Mattermost Mobile App v2.25, Mattermost has stopped supporting iOS versions 13 and 14. Users should update their iOS version to v15.1 or newer. See more details in `this forum post <https://forum.mattermost.com/t/deprecation-notice-ios-13-and-14-versions/21845>`__.

Mattermost Server v10.4.0
~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
77 changes: 77 additions & 0 deletions source/about/desktop-app-changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,83 @@

This changelog summarizes updates to Mattermost desktop app releases for [Mattermost](https://mattermost.com).

```{Important}
```{include} common-esr-support.md
```

(release-v5-11)=
## Release v5.11 (Extended Support Release)

**Release day: February 14th, 2025**

**Download Binaries:** [Mattermost Desktop on GitHub](https://github.com/mattermost/desktop/releases/latest)

```{Note}
Mattermost Desktop App v5.11.0 contains a low severity level security fix. Upgrading 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.com/security-vulnerability-report/).
```

### Compatibility

- Desktop App is supported on any currently supported [Mattermost server version](https://docs.mattermost.com/about/mattermost-desktop-releases.html#latest-releases).
- Updated Chromium minimum supported version to 132+.

### Improvements

#### Linux

- Modified rpm-digest to utilize sha256 instead of md5 to all for rpm installation on FIPS mode enabled Enterprise Linux systems.

#### All Platforms

- Added two menu items to help users forcibly clear out cache and session data.
- Improved the help options in the **Help** menu.
- Updated the styling of the **Downloads** menu to improve text fitting and to prevent text overlap.
- Refreshed loading and welcome screens.
- Server URLs are now auto-filled when deep-linking into the Desktop App if the server isn't configured.
- Removed legacy code for older unsupported Mattermost servers.
- Calls: while the popout window is open, the widget window's visibility will change so that it is not always on top of other windows.

### Architectural Changes

- Major version upgrade of Electron to 34.0.1. Electron is the underlying technology used to build the Desktop App.

### Bug Fixes

#### macOS

- Fixed an issue where the MAS migration from DMG would always fail, fixed a potential crash case.

#### Windows

- Fixed an issue with per-server permission checks for GPO-configured servers on Windows.
- Fixed an issue where the app could crash loading a thumbnail on Windows.

#### Linux

- Fixed an issue for Linux users where the app could crash when trying to add the first server.

#### All Platforms

- Fixed an issue where autocompleting did not stop while the user was typing `https://`.
- Fixed an issue preventing the screen sharing selection modal to show when the app was focused on a different tab (e.g. Playbooks, Boards).
- Fixed an issue trying to download images using right-click > **Save As...**.
- Fixed an issue where the URL view would trap focus when tabbing over a link.

### Known Issues

- Users with servers running Mattermost v9.3 and earlier versions are not supported by this upgrade. Mattermost v9.4 or later is required.
- Boards is not using the new Desktop API, causing issues in v5.11+ [MM-61745](https://mattermost.atlassian.net/browse/MM-61745). Users of v5.11 will need to upgrade their Boards plugin version to v9.1.0+ avoid the issue.
- Sometimes the app will not restart after an auto-update. This is normal, and if this occurs the app can be safely launched manually.
- Sometimes during installation you may see this message: ``Warning 1946. Property 'System.AppUserModel.ID' for shortcut 'Mattermost.Ink' could not be set``. This message can be safely ignored.
- Users seeing an endless "Loading..." screen when attempting to log in to the app may need to manually delete their cache directory. For macOS it is located in `/Users/<username>/Library/Containers/Mattermost/Data/Library/Application Support/Mattermost`, for Windows in `Users/<username>/AppData/Roaming/Mattermost` and for Linux in `~/config/Mattermost` (where `~` is the home directory).
- On Linux, a left-click on the Mattermost tray icon doesn't open the app window but opens the tray menu.
- Crashes might be be experienced in some Linux desktop clients due to an upstream bug in the `libnotifyapp` library. A recommended workaround is to disable the Mattermost system tray icon via Desktop Settings.
- On apps using GPO configurations, when adding a second server tab, it's possible to drag and drop tabs, but they'll jump back to the original position when releasing the mouse.

### Contributors

- [andr-sokolov](https://github.com/andr-sokolov), [devinbinnie](https://github.com/devinbinnie), [jonathan-dove](https://github.com/jonathan-dove), [pvev](https://github.com/pvev), [s1Sharp](https://github.com/s1Sharp), [streamer45](https://github.com/streamer45).

(release-v5-10)=
## Release v5.10

Expand Down
5 changes: 3 additions & 2 deletions source/about/mattermost-desktop-releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
```

```{Important}
Support for Mattermost Server v9.5 [Extended Support Release](https://docs.mattermost.com/about/release-policy.html#extended-support-releases) has come to the end of its life cycle on November 15, 2024. Upgrading to Mattermost Server v9.11 or later is required.
```{include} common-esr-support.md
```

## Frequency
Expand All @@ -21,7 +21,8 @@ Mattermost releases a new desktop app version every 4 months, in February, May,

| **Release** | **Released on** | **Support ends** | **Compatible with** |
|:---|:---|:---|:---|
| v5.10 [Download](https://github.com/mattermost/desktop/releases/tag/v5.10.2) \| {ref}`Changelog <release-v5-10>` | 2024-11-15 | 2025-02-15 | {ref}`v10.2 <release-v10.2-feature-release>`, {ref}`v10.1 <release-v10.1-feature-release>`, {ref}`v10.0 <release-v10.0-major-release>`, {ref}`v9.11 <release-v9-11-extended-support-release>`, {ref}`v9.5 <release-v9-5-extended-support-release>` |
| v5.11 [Download](https://github.com/mattermost/desktop/releases/tag/v5.11.0) \| {ref}`Changelog <release-v5-11>` | 2025-02-14 | 2025-11-15 | {ref}`v10.5 <release-v10.5-extended-support-release>`, {ref}`v10.4 <release-v10.4-feature-release>`, {ref}`v10.3 <release-v10.3-feature-release>`, {ref}`v9.11 <release-v9-11-extended-support-release>` |
| v5.10 [Download](https://github.com/mattermost/desktop/releases/tag/v5.10.2) \| {ref}`Changelog <release-v5-10>` | 2024-11-15 | 2025-02-13 | {ref}`v10.2 <release-v10.2-feature-release>`, {ref}`v10.1 <release-v10.1-feature-release>`, {ref}`v10.0 <release-v10.0-major-release>`, {ref}`v9.11 <release-v9-11-extended-support-release>`, {ref}`v9.5 <release-v9-5-extended-support-release>` |
| v5.9 [Download](https://github.com/mattermost/desktop/releases/tag/v5.9.2) \| {ref}`Changelog <release-v5-9>` | 2024-08-16 | 2025-05-15 | {ref}`v9.11 <release-v9-11-extended-support-release>`, {ref}`v9.10 <release-v9-10-feature-release>`, {ref}`v9.9 <release-v9-9-feature-release>`, {ref}`v9.8 <release-v9-8-feature-release>`, {ref}`v9.5 <release-v9-5-extended-support-release>` |
| v5.8 [Download](https://github.com/mattermost/desktop/releases/tag/v5.8.0) \| {ref}`Changelog <release-v5-8>` | 2024-05-16 | 2024-08-15 | {ref}`v9.9 <release-v9-9-feature-release>`, {ref}`v9.8 <release-v9-8-feature-release>`, {ref}`v9.7 <release-v9-7-feature-release>`, {ref}`v9.6 <release-v9-6-feature-release>`, {ref}`v9.5 <release-v9-5-extended-support-release>`, {ref}`v8.1 <release-v8-1-extended-support-release>` |
| v5.7 [Download](https://github.com/mattermost/desktop/releases/tag/v5.7.0) \| {ref}`Changelog <release-v5-7>` | 2024-03-15 | 2024-05-15 | {ref}`v9.6 <release-v9-6-feature-release>` |
Expand Down
Loading

0 comments on commit c9aed0c

Please sign in to comment.