# Mattermost software requirements process

## Mattermost Software Requirements

This document provides guidelines for determining which software versions Mattermost requires. For past discussion on why these guidelines were chosen, see [this conversation](https://community.mattermost.com/core/pl/sb4fq6qhyfbb5xjdp7x3ud146e).

Current software requirements are [documented here](https://docs.mattermost.com/install/software-hardware-requirements.html).

Before submitting software requirement updates to the documentation, the following steps have to be taken into consideration:

1. Check with Chen in [the Analytics channel](https://community.mattermost.com/private-core/pl/qy675c87zbfn7dmzkh919ppmor) to see what % of users and what % of posts are made by the versions we’re considering to drop support for, to review potential impact to users.
2. For versions we are considering dropping support for, ask the customer support team what the impact is for customers (e.g. if there are known customers on those versions and if we get customer support tickets specific to those versions).
3. Ask developers what the impact is for us internally if we consider dropping or continuing support for a version.
4. If we decide to drop support for a version, work with product managers and developers to plan for updating the version information in all relevant places, including but not limited to: in the product itself (such as the mobile app), Changelogs and README GitHub pages.

## Desktop Apps

| Operating System | Guideline                                                                                                       |
| ---------------- | --------------------------------------------------------------------------------------------------------------- |
| Windows          | Supported versions by Microsoft - [reference](https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions) |
| Mac              | Supported versions by Apple - [reference](https://en.wikipedia.org/wiki/MacOS_version_history)                  |
| Linux            | Fixed to Ubuntu LTS releases 16.04 or later                                                                     |

## PC Web

| Browser | Guideline                                                                                                                           |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Chrome  | Chromium version of latest Mattermost Desktop App                                                                                   |
| Firefox | Supported versions by Mozilla - [reference](https://www.mozilla.org/en-US/firefox/organizations/)                                   |
| Safari  | Safari version available in the minimum supported macOS version - [reference](https://en.wikipedia.org/wiki/Safari_version_history) |
| Edge    | Latest release                                                                                                                      |

## Mobile Apps

| Operating System | Guideline                                                                                           |
| ---------------- | --------------------------------------------------------------------------------------------------- |
| iOS              | Latest and next-to-latest versions - [reference](https://en.wikipedia.org/wiki/IOS_version_history) |
| Android          | Supported versions by Google - [reference](https://en.wikipedia.org/wiki/Android_version_history)   |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://handbook.mattermost.com/operations/research-and-development/product/development-process/software-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
