Skip to content

Commit

Permalink
fix conflicts
Browse files Browse the repository at this point in the history
  • Loading branch information
nickmisasi committed Feb 6, 2025
2 parents 6dd1d0b + e9538d5 commit 7e0a17e
Show file tree
Hide file tree
Showing 22 changed files with 166 additions and 97 deletions.
5 changes: 5 additions & 0 deletions source/about/deprecated-features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ This page describes features that are removed from support for Mattermost, or wi
Removed features in upcoming versions
-------------------------------------

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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
2 changes: 1 addition & 1 deletion source/about/faq-business.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ For example, the Mattermost server source code is and always has been made avail

For clarity, this license information regarding forking the source specifically refers to the use (and compilation) of the Mattermost source code by third parties. Third parties are obligated to comply with the open source licenses referenced above in connection with their derivative works. Compiled versions and derivative works of Mattermost prepared by third parties may not be made available under any license other than those under which the applicable source code is made available.

In contrast, Mattermost, as the copyright holder to the collection of the Mattermost source code, has exercised its exclusive right to make compiled versions of the Mattermost source code available under various other licenses (such as the MIT license and the Mattermost Commercial Enterprise License, as more specifically made clear in the table here: https://docs.mattermost.com/about/faq-enterprise.html#what-are-mattermost-s-policies-around-licensing-terms-of-use-and-privacy).
In contrast, Mattermost, as the copyright holder to the collection of the Mattermost source code, has exercised its exclusive right to make compiled versions of the Mattermost source code available under various other licenses (such as the MIT license and the Mattermost Commercial Enterprise License, as more specifically made clear in the table here: https://docs.mattermost.com/about/faq-license.html).

How can I create an open source derivative work of Mattermost?
--------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions source/collaborate/access-your-workspace.rst
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Your Mattermost :doc:`workspace </guides/use-mattermost>` is accessible through
.. tab:: Mobile

1. Download and install the Mattermost :doc:`iOS mobile app </collaborate/install-ios-app>` or the :doc:`Android mobile app </collaborate/install-android-app>`.
2. When prompted, enter the Mattermost server link and a display name for the Mattermost instance. The display name is helpful in cases where you connect to multiple Mattermost instances. See the :doc:`server connections </preferences/connect-multiple-workspaces>` documentation for details.
2. When prompted, enter the Mattermost server link and a display name for the Mattermost instance. Server URLs must begin with either ``http://`` or ``https://``. The display name is helpful in cases where you connect to multiple Mattermost instances. See the :doc:`server connections </preferences/connect-multiple-workspaces>` documentation for details.
3. Enter your user credentials to log into Mattermost.
4. The team that displays first in the team sidebar opens. If you're not a member of a team yet, you're prompted to select a team to join.

Expand Down Expand Up @@ -116,4 +116,4 @@ Multi-factor authentication

If your system admin :ref:`enables multi-factor authentication <onboard/multi-factor-authentication:enabling mfa>` for your Mattermost instance, you can :doc:`optionally set up multi-factor authentication </preferences/manage-your-security-preferences>` for your Mattermost user account by selecting your profile picture located in the top-right corner of Mattermost, and going to **Security > Multi-Factor Authentication**.

If your system admin :ref:`enforces multi-factor authentication <onboard/multi-factor-authentication:enforcing mfa>`, you are required to :doc:`set up multi-factor authentication </preferences/manage-your-security-preferences>` for your Mattermost account. When you attempt to log in to Mattermost, you're directed to the multi-factor authentication setup page. You won't be able to access Mattermost until multi-factor setup is complete. If you encounter issues setting up multi-factor authentication, contact your Mattermost system admin for assistance.
If your system admin :ref:`enforces multi-factor authentication <onboard/multi-factor-authentication:enforcing mfa>`, you are required to :doc:`set up multi-factor authentication </preferences/manage-your-security-preferences>` for your Mattermost account. When you attempt to log in to Mattermost, you're directed to the multi-factor authentication setup page. You won't be able to access Mattermost until multi-factor setup is complete. If you encounter issues setting up multi-factor authentication, contact your Mattermost system admin for assistance.
2 changes: 1 addition & 1 deletion source/collaborate/channel-types.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ There are 5 types of channels in Mattermost:
Public channels
---------------

Public channels are open to everyone on a team and are identified with a **Globe** |globe| icon. New team members are automatically added to two public channels when they sign up: **Town Square** and **Off-Topic**.
Public channels are open to everyone on a team and are identified with a **Globe** |globe| icon. New team members are automatically added to the **Town Square** channel.

See the :doc:`Join and leave channels </collaborate/join-leave-channels>` documentation for details on discovering, joining, and leaving other channels.

Expand Down
7 changes: 2 additions & 5 deletions source/collaborate/collaborate-within-channels.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,10 @@ Channels are where you connect, collaborate, and communicate with your team abou
You're added to default channels automatically
----------------------------------------------

Everyone who joins a Mattermost :doc:`workspace </guides/use-mattermost>` is automatically added to two default public channels: **Town Square** and **Off-Topic**. See our :doc:`Channel Types </collaborate/channel-types>` documentation for details.

- **Town Square** is great for your team-wide communications, such as announcements.
- **Off-Topic** is great for fun, social, non-work-related conversations.
Everyone who joins a Mattermost :doc:`workspace </guides/use-mattermost>` is automatically added to the **Town Square** channel. See our :doc:`Channel Types </collaborate/channel-types>` documentation for details.

.. note::
Town Square can't be :ref:`archived <collaborate/archive-unarchive-channels:archive a channel>` or :doc:`converted to a private channel </collaborate/convert-public-channels>`, and users can't :ref:`leave <collaborate/join-leave-channels:leave a channel>` this default channel.
The Town Square channel can't be :ref:`archived <collaborate/archive-unarchive-channels:archive a channel>` or :doc:`converted to a private channel </collaborate/convert-public-channels>`, and users can't :ref:`leave <collaborate/join-leave-channels:leave a channel>` this default channel.

Channel sidebar
----------------
Expand Down
2 changes: 1 addition & 1 deletion source/collaborate/join-leave-channels.rst
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ When you leave a private channel, you must be re-added by another channel member

.. note::

All users are added to the **Off-Topic** and **Town Square** channels automatically. Users can't :ref:`archive <collaborate/archive-unarchive-channels:archive a channel>`, :ref:`unarchive <collaborate/archive-unarchive-channels:unarchive a channel>`, or leave these channels.
All users are added to the **Town Square** channel automatically. This means that users can't :ref:`archive <collaborate/archive-unarchive-channels:archive a channel>`, :ref:`unarchive <collaborate/archive-unarchive-channels:unarchive a channel>`, or leave the **Town Square** channel.

.. tab:: Web/Desktop

Expand Down
4 changes: 2 additions & 2 deletions source/configure/experimental-configuration-settings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1945,11 +1945,11 @@ This setting isn't available in the System Console and can only be set in ``conf

Default channels every user is added to automatically after joining a new team. Only applies to Public channels, but affects all teams on the server.

When not set, every user is added to the ``off-topic`` and ``town-square`` channels by default.
When not set, every user is added to the ``town-square`` channel by default.

.. note::

Even if ``town-square`` and ``off-topic`` aren't listed, every user is added to these channels automatically when joining a new team.
Even if ``town-square`` isn't listed, every user is added to that channels automatically when joining a new team.

+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| This feature's ``config.json`` setting is ``"ExperimentalDefaultChannels": []`` with string array input consisting of channel names, such as ``["announcement", "developers"]``. |
Expand Down
11 changes: 9 additions & 2 deletions source/deploy/manual-postgres-migration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,9 @@ To avoid performance regression on ``Posts`` and ``FileInfo`` table access, foll
Compare the data
~~~~~~~~~~~~~~~~

We internally developed a tool to simplify the process of comparing the contents of two databases. The ``dbcmp`` tool compares every table and reports whether there is a diversion between two schemas. Note that ``dbcmp`` does not compare individual rows, instead, it calculates the checksum value of given ``page-size`` and compares those values. This means it cannot calculate or provide diffs on individual rows.
We developed an internal tool called ``dbcmp`` to simplify database comparison. It checks every table in two databases and reports any differences in their schemas. However, ``dbcmp`` does not compare individual rows. Instead, it calculates checksum values based on a specified page-size and compares them. This means it cannot generate row-level diffs.

We recommend using ``dbcmp`` as an additional check to verify data integrity, especially if custom casting rules (beyond the defaults or those provided by us) were used during migration. Otherwise, running this tool is not necessary.

The tool includes a few flags to run a comparison:

Expand All @@ -432,16 +434,21 @@ The tool includes a few flags to run a comparison:
Flags:
--exclude strings exclude tables from comparison, takes comma-separated values.
--include strings include only matching tables for comparison, takes comma-separated values.
-h, --help help for dbcmp
--source string source database dsn
--target string target database dsn
-v, --version version for dbcmp
.. note::

``--exclude`` and ``--include`` flags are mutually exclusive and they can't be used together.

For our case, we can simply run the following command:

.. code-block:: sh
dbcmp --source "${MYSQL_DSN}" --target "${POSTGRES_DSN} " --exclude="db_migrations,ir_,focalboard,systems"
dbcmp --source "${MYSQL_DSN}" --target "${POSTGRES_DSN} " --include="posts,users"
An example command would look like: ``dbcmp --source "user:password@tcp(address:3306)/db_name --target "postgres://user:password@address:5432/db_name``

Expand Down
2 changes: 1 addition & 1 deletion source/deploy/postgres-migration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Migration guidelines from MySQL to PostgreSQL
.. include:: ../_static/badges/allplans-selfhosted.rst
:start-after: :nosearch:

From Mattermost v8.0, PostgreSQL is our database of choice for Mattermost to enhance the platform’s performance and capabilities. Recognizing the importance of supporting the community members who are interested in migrating from a MySQL database, we have taken proactive measures to provide guidance and best practices.
From Mattermost v8.0, :ref:`PostgreSQL <install/software-hardware-requirements:database software>` is our database of choice for Mattermost to enhance the platform’s performance and capabilities. Recognizing the importance of supporting the community members who are interested in migrating from a MySQL database, we have taken proactive measures to provide guidance and best practices.

.. toctree::
:maxdepth: 1
Expand Down
2 changes: 1 addition & 1 deletion source/getting-started/enterprise-roll-out-checklist.rst
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ Now that you have an environment in place, we recommend working through the foll
- Recommendation: Start with fewer teams in your early roll out
- Resource: https://docs.mattermost.com/messaging/organizing-channels.html

- Determine and create key channels to support your users. Town Square and Off-Topic are automatically created channels available on every team
- Determine and create key channels to support your users. A default Town Square channel is created automatically and available on every team.

- Recommendation: Add a “Support” channel for your users to escalate questions

Expand Down
45 changes: 44 additions & 1 deletion source/install/prepare-mattermost-database.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ You need a PostgreSQL database. See the :ref:`database software <install/softwar

We recommend using a managed PostgreSQL database service, such as Amazon RDS, Google Cloud SQL, or Azure Database for PostgreSQL.

To manually set up a self-managed PostgreSQL database for use by the Mattermost server:
Set up a PostgreSQL database
----------------------------

To set up a PostgreSQL database for use by the Mattermost server:

1. Log in to the server that will host the database, and install PostgreSQL. See the `PostgreSQL <https://www.postgresql.org/download/>`__ documentation for details. When the installation is complete, the PostgreSQL server is running, and a Linux user account called *postgres* has been created.

Expand Down Expand Up @@ -204,3 +207,43 @@ When the PostgreSQL database is installed, and the initial setup is complete, yo
.. important::

If you are upgrading a major version of Postgres, it is essential that ``ANALYZE VERBOSE`` is run on the database post upgrade. This is necessary to re-populate the ``pg_statistics`` table used to generate optimal query plans. The database performance might suffer if this step is not done.


Minimum supported version policy
---------------------------------

To make planning easier and ensure your Mattermost deployment remains fast and secure, we are introducing a policy for updating the minimum supported version of PostgreSQL. The oldest supported PostgreSQL version Mattermost supports will match the oldest version supported by the PostgreSQL community. This ensures you benefit from the latest features and security updates.

This policy change takes effect from Mattermost v10.6, where the minimum PostgreSQL version required will be PostgreSQL 13. This aligns with the PostgreSQL community's support policy, which provides 5 years of support for each major version.

.. note::

Mattermost v10.6 is not an :ref:`Extended Support Release (ESR) <about/release-policy:extended support releases>`. Going forward, this database version support policy will only apply to ESR releases.

When a PostgreSQL version reaches its end of life (EOL), Mattermost will require a newer version starting with the next scheduled ESR release. This means the following future PostgreSQL minimum version increases as follows:

+-----------------------------------------------------------+------------------+--------------------------------+
| **Mattermost Version** | **Release Date** | **Minimum PostgreSQL Version** |
+===========================================================+==================+================================+
| :ref:`v9.11 ESR <release-v9-11-extended-support-release>` | 2024-8-15 | 11.x |
+-----------------------------------------------------------+------------------+--------------------------------+
| v10.5 ESR | 2025-2-15 | 11.x |
+-----------------------------------------------------------+------------------+--------------------------------+
| v10.6 | 2025-3-15 | 13.x |
+-----------------------------------------------------------+------------------+--------------------------------+
| v10.11 ESR | 2025-8-15 | 13.x |
+-----------------------------------------------------------+------------------+--------------------------------+
| v11.5 ESR ``*`` | 2026-2-15 | 14.x (EOL 2026-11-12) |
+-----------------------------------------------------------+------------------+--------------------------------+

``*`` Forcasted release version and date.

Customers will have 9 months to plan, test, and upgrade their PostgreSQL version before the new requirement takes effect. This policy aims to provide clarity and transparency so you can align database upgrades with the Mattermost release schedule. Contact a `Mattermost Expert <https://mattermost.com/contact-sales/>`_. to discuss your options.

Frequently asked questions
~~~~~~~~~~~~~~~~~~~~~~~~~~~

What about MySQL databases?
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Mattermost is :ref:`deprecating support for MySQL <deploy/postgres-migration:why is mattermost dropping support for mysql?>` starting with v11. We aren't actively maintaining or working on MySQL support.
8 changes: 5 additions & 3 deletions source/install/software-hardware-requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,11 @@ Database software

Amazon Aurora equivalents of both PostgreSQL and MySQL are also supported.

See the :doc:`Migrate from MySQL to PostgreSQL </deploy/postgres-migration>` product documentation for details on migrating from MySQL to PostgreSQL.
See the :ref:`minimum supported version policy <install/prepare-mattermost-database:minimum supported version policy>` documentation for minimum PostgreSQL version support details, and see the :doc:`Migrate from MySQL to PostgreSQL </deploy/postgres-migration>` product documentation to learn about migrating from MySQL to PostgreSQL.

MariaDB v10+ no longer functions as a MySQL drop-in replacement, and it's not supported for Mattermost due to the requirement of MySQL 5.7.12. Prior versions of MariaDB were not officially supported but may have functioned in older Mattermost releases. If you are running MariaDB now, migrating from MariaDB to the MySQL equivalent is recommended.
.. important::

MariaDB v10+ no longer functions as a MySQL drop-in replacement, and it's not supported for Mattermost due to the requirement of MySQL 5.7.12. Prior versions of MariaDB were not officially supported but may have functioned in older Mattermost releases. If you are running MariaDB now, migrating from MariaDB to the MySQL equivalent is recommended.

Deployments requiring searching in Chinese, Japanese, and Korean languages require MySQL 5.7.6+ and the configuration of `ngram Full-Text parser <https://dev.mysql.com/doc/refman/5.7/en/fulltext-search-ngram.html>`__. For searching two characters, you will also need to set ``ft_min_word_len`` and ``innodb_ft_min_token_size`` to ``2`` and restart MySQL. See `CJK discussion <https://github.com/mattermost/mattermost/issues/2033#issuecomment-183872616>`__ for details.

Expand All @@ -120,7 +122,7 @@ Search limitations on MySQL:
- The migration system requires the MySQL database user to have additional `EXECUTE`, `CREATE ROUTINE`, `ALTER ROUTINE` and `REFERENCES` privileges to run schema migrations.

MySQL 8 Support
^^^^^^^^^^^^^^^^
::::::::::::::::

In MySQL 8.0.4, the default authentication plugin was changed from ``mysql_native_password`` to ``caching_sha2_password``. Therefore, you will need to enable ``mysql_native_password`` by adding the following entry in your MySQL configuration file:

Expand Down
2 changes: 1 addition & 1 deletion source/install/trouble-postgres.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PostgreSQL installation troubleshooting
=======================================

Mattermost supports PostgreSQL v12+.
From Mattermost v8.0, :ref:`PostgreSQL <install/software-hardware-requirements:database software>` is our database of choice for Mattermost to enhance the platform’s performance and capabilities.

PostgreSQL v15 introduces changes that may affect compatibility with previous releases. If you're deploying a fresh installation of PostgreSQL v15, run this command: ``GRANT CREATE ON SCHEMA public TO PUBLIC`` to ensure that you can use Mattermost.

Expand Down
Loading

0 comments on commit 7e0a17e

Please sign in to comment.