Mattermost Handbook
Need help?How to spend company moneyHow to update the HandbookRelease overview
0.2.1
0.2.1
  • Mattermost Handbook
  • Company
    • About Mattermost
      • List of terms
      • Business model
      • Mindsets
    • "How to" guides for staff
      • How to set up a 1-1 channel
      • How to update the handbook
      • How to manage Handbook notifications
      • How to change mobile device
        • How to handle a lost mobile device
      • How to do a mini-retrospective
      • How to autolink keywords in Mattermost
  • Operations
    • Company operations
      • Areas of Responsibility
      • Mattermost Leadership Team (MLT)
        • MLT cadence
      • Company measures
        • Metrics definitions
        • FY23 goals board
        • MLT metrics
      • Company cadence
      • Company policies
        • Community response policy
        • Security policy
      • Company processes
        • Issue/solution process
        • Company agreements
        • Publishing
          • Public web properties
          • Publishing guidelines
            • Brand and visual design guidelines
            • Voice, tone, and writing style guidelines
              • Contribute to documentation
            • Confidentiality guidelines
          • Post-publication quality control process
      • Handbook processes and policies
        • Handbook onboarding
      • Fiscal year planning
    • Research and Development
      • Organization
        • Tech Writing
        • Data engineering
        • Delivery
        • Cloud Platform
        • Site Reliability Engineering
        • GRC
        • Product Security
        • Security Operations
      • Processes
        • Feature Labels
      • Product
        • Product planning
          • Product philosophy and principles
          • Prioritization process
          • Release planning process
          • Roadmap views
          • Release plan
          • Launch plan
          • Feature requests
        • Development process
          • Mobile feature guidelines
          • Deprecation policy
          • Mattermost software requirements process
          • Jira ticket lifecycle
          • Creating new Jira bug tickets
            • Priority levels for tickets
            • Jira fix versions
        • Release process
          • Release overview
          • Feature release process
          • Dot release process
          • Security release process
          • Mobile app release process
          • Desktop app release process
          • Release tips
          • Release scorecard definitions
        • How-to guides for Product
          • How to use productboard
          • How to record a roadmap video
          • How to update integrations directory
          • How to write a feature release announcement
        • Product Management team handbook
          • Product Management Areas of Ownership
          • Product Manager onboarding
          • Product Manager levels
          • Professional development
        • Product Design team handbook
          • Product Design levels
        • Technical Writing team handbook
          • Work with us
          • User interface text guidelines
          • Documentation style guide
          • Our terminology
          • Guidelines for PMs and developers
          • Guidelines for community contributions
          • Technical Writer levels
          • Docathon 2021
            • Getting started with contributing
        • Growth
          • A/B testing methodology
          • PQL definition
        • Analytics
          • Product Analyst Engineer levels
          • Looker
            • Dashboards
            • Explores
          • Telemetry
        • Developer relations
        • Product team hangouts
      • Engineering
        • Infrastructure engineering
          • Cloud infrastructure cost KPIs
          • Cloud data export process
          • Cloud churn process
          • Reliability Manifesto
          • Production Readiness Review
          • Infrastructure Library
        • Integrations team processes
        • Plugin release process
        • Data Engineering
        • Sustained Engineering
          • On call
        • How to go to a conference
        • Public speaking
        • Core contributor expanded access policy
      • Quality Assurance
        • QA workflow
        • QA testing tips and tools
        • Rainforest process
    • Messaging and Math
      • How-to guides for M&M
        • How to create release announcements
        • How to create screenshots and GIFs
        • How to write Mattermost case studies
        • How to write guest blog posts for Mattermost apps and services
        • How to write Mattermost recipes
        • How to compose tweets
        • How to create a split test for web page
        • How to run meetups
        • How to run executive dinners
      • Checklists for M&M
        • Blog post checklist
        • Bio checklist
      • Mattermost websites
      • Demand generation reporting
      • M&M Asana guidelines
      • Content marketing
        • How to use the editorial calendar
        • Content development and distribution
        • Video content guidelines
        • How to contribute content
    • Sales
      • Deal Desk
      • Partner programs
      • Lead management
    • Deployment Engineering
      • Overview
      • Workflows
      • Frequently Asked Questions
      • Playbook for MME Sev 1 Outages
      • Status Update Template
    • Program Management
    • Customer Success
      • Customer Support
    • Legal
      • Contracts
      • Ironclad Basics
        • Company-Wide Workflows
        • Sales Contracts and Workflows
        • Signing a Contract and Contract Repository
    • Finance
      • Budget
      • How to use Airbase
        • Access Airbase
        • Navigate Airbase
        • How to submit a purchase request
        • How to submit a reimbursement request
        • How to review a reimbursement request
        • Vendor portal guide
        • Frequently asked questions
      • Onboarding
        • Vendor onboarding
        • ROW staff onboarding
      • Staff member expenses
        • How to spend company money
        • How to spend company money: Internships
        • Corporate credit card policy
        • How to access Airbase
        • Gifting policy
        • How to book airfare and travel
        • How to reimburse the company
        • How to convert currencies
        • How to get paid
      • Arrange a Bounty Program
      • Naming files and agreements
      • Risk management
        • Mattermost U.S. consulting agreements
      • Operations playbook
    • Security
      • Policies
      • Privacy
        • Data deletion requests
        • Data subject access requests
      • Product Security
        • Product Vulnerability Process
        • Working on security-sensitive pull requests
        • Secure Software Development guide
      • Security Operations
        • User guides
    • Workplace
      • PeopleOps
        • HR cadences
        • HR systems
        • HR Processes
        • Working at Mattermost
          • Onboarding
            • Things everyone must know
            • Staff onboarding
            • Engineer onboarding timeline and expectations
            • Manager onboarding
            • Frequently asked questions
          • Learning and development
          • Mattermost communication best practices
          • Paid time off
            • Out of office email example
          • Travel
            • Business travel insurance
          • Leaves of absence
            • Pregnancy leave
            • Baby bonding parental leave
            • Jury duty
          • Workplace program
          • Relocation
          • Total rewards
        • Performance reviews
          • Formal review process
          • New staff performance review
          • Informal review process
        • Transfers and promotions
        • Offboarding instructions for managers
        • People compliance
      • People policies
      • Groups
        • Staff Resource Groups
      • Approvals and iteration
      • IT
        • IT helpdesk
        • Hardware and software purchases
        • Hardware buy back policy
        • Software systems
  • Contributors
    • Contributors
      • Equity, diversity, and inclusion
      • How to contribute to Mattermost
        • Community Content program
        • Documentation contributions
        • Help Wanted tickets
        • Localization
        • Contribution events
      • Mattermost community
      • Contributor kindness
      • Community systems
      • Guidelines and playbooks
        • Social engagement guidelines
        • Contribution guidelines and code of conduct
        • Mattermost Community playbook
        • How to run a Hackathon
        • Hacktoberfest event organizer guide for Mattermost
    • MatterCon
      • Staff information privacy management
      • Mattermost events code of conduct
      • MatterCon2021
    • Join us
      • Ice-breakers
      • Help Wanted tickets
      • Localization
      • Mattermost GitHub sponsorship
      • Things candidates should know
      • Staff recruiting
      • Recruiting cadences
        • Product Manager hiring process
      • Exec recruiting
        • EA logistics
  • Help and support
    • Contact us
Powered by GitBook
On this page
  • Release numbering
  • Objectives
  • Release Principles
  • Release Cycles
  • Release dates communication
  • Plugin Release Processes
  • Tracking feature flags
  • Adding milestones on PRs and Jira tickets
  • Triaging Mattermost customer issues
  • Frequently Asked Questions

Was this helpful?

Edit on Git
Export as PDF
  1. Operations
  2. Research and Development
  3. Product
  4. Release process

Release overview

Mattermost ships with a new version once a month for both cloud and self-hosted customers.

Release numbering

Mattermost numbers stable releases in the following format: [Major Build Number].[Minor Build Number].[Patch Build Number]

Major build number:

  • Purpose: Major system releases introduce significantly new functionality or change existing product behavior

  • Release frequency: Once a year. Major system releases are infrequent

  • Example: v1.x.x, v2.x.x

Minor build number:

  • Purpose: Introduce new features, bug fixes and performance improvements

  • Release frequency: Monthly cadence

  • Example: v1.2.x, v1.4.x

Patch build number:

  • Purpose: Patch existing releases when severe bug fixes or security patches are required

  • Release frequency: As required

  • Example: v1.2.5, v1.2.6

Objectives

The goal is to deliver value to users quickly by a) shipping fast to get features to customers quickly for experimentation/feedback, and b) iteratively behind feature flags as a protection if any issues arise. This document outlines the principles and guidelines for how we release a new update of each product line on a monthly basis.

Release Principles

  1. Focus on High Impact by shipping every new feature and any riskier code changes behind a feature flag

    • Each development team is individually responsible for quality and deciding if a feature should be included in a release or not (with the release team giving guidelines). This may mean shipping more patch releases, but we can manage some of this by using feature flags. This also requires good test automation coverage.

  2. Automate

    • Automate release processes and tasks.

    • Automate release tests and have E2E tests for features.

  3. Earn Trust by communicating to external and internal stakeholders clearly

    • Enables us to make expectations for releases clear for all stakeholders.

    • Make expectations for each release clear (release dates, etc.). Communicate. Ensure that everyone on the team is familiar with the release processes.

    • Release notes, minimum version requirements, and any important upgrade notes need to be available for customers and communicated via docs, blog, emails, and channels.

  4. Earn Trust by including all stakeholders (Tech Writers, Marketing, QA, etc.) early in the release process

    • Enables us to avoid missing key tasks and to avoid last minute work.

    • E.g. When opening a PR, add a “Docs/Needed” label for any PRs that need docs and communicate to Tech Writers. This ensures that we have time to complete docs on time.

    • Make tracking bugs and testing requirements easy. E.g:

      • Resolve Jira tickets for QA when PRs are merged (and cherry-picked).

      • Add QA test steps to Jira tickets and/or PRs.

      • Add Fix Versions and Milestones in Jira/PRs for bugs/tickets for easy tracking.

      • Add clear Release Notes on PRs.

  5. Achieve Customer Obsession by doing retrospectives on release issues and monitoring customer/community release bug reports after releases

    • This allows us to learn from issues so that they don’t happen again and to fix critical bugs asap.

    • Retrospectives for issues and dot releases are important.

    • Monitor community and customer reports in GitHub, Forum, and channels like Ask PDE, in partnership with the Support team.

Release Cycles

Release dates communication

Release dates are currently communicated in the following ways.

  1. Channels

  2. Mattermost Release Dates Calendar

    • Lists key release dates and deadlines.

  3. PM and PDE meetings

    • Updates are provided on upcoming key dates and/or features as needed.

  4. Productboard

  5. Spreadsheet

Plugin Release Processes

Tracking feature flags

Adding milestones on PRs and Jira tickets

  • If the PR is scheduled for a specific Mattermost release, please add the Cherry-pick Approved label and self-managed milestone on the PR. The Release Manager keeps track of PRs with the Cherry-pick Approved label and self-managed milestone on a daily basis.

  • The Release Manager also tracks regression bugs and aims to ensure that they get fixed for the next release.

  • A fix version is added in Jira to track regression bug fixes for Mattermost releases.

Triaging Mattermost customer issues

When triaging a bug report, consider the following:

  • Impact of the bug on customers.

  • Severity of the issue.

  • Risk and effort of reverting to the last version or fixing a bug.

Criteria

  1. "We need to revert to the last version" process:

    • Crash or all services are down due to a bug; affects some to all Mattermost Cloud customers.

  2. "We need to release this ASAP" process:

    • A severe regression or loss of functionality; affects some to all Cloud customers.

  3. "It's OK to wait until next release" process:

    • Loss of function, but little impact on Cloud customers.

Responders

  • Who is making the decision on which process above we need to follow?

    • In some cases it's the customer support teams or Cloud teams, and in some cases it's other people such as the Release Manager or developers who notice or get notified about the report.

  • Bugs will be fixed by either the CRE team or by respective development teams, depending on availability and expertise.

Frequently Asked Questions

Q: What is the release cycle for the React Native mobile apps?

  • A: The mobile apps follow the same monthly release cycle as Mattermost Server/Webapp, releasing on the 16th of each month.

Q: What is the release cycle for the Mattermost Desktop app?

  • A: Desktop releases are shipped every 3 months starting in March, 2023. For more details, see https://handbook.mattermost.com/operations/research-and-development/product/release-process/desktop-release.

Q: When do I need to have a feature PR to be included into the next release?

  • A: Aim to have the PR merged before the Feature Complete deadline. The earlier in the monthly cycle the PR is merged, the higher the chances are for it to be included in that month's release. The quality of our releases is important and feature PRs are not normally cherry-picked to a release branch.

Q: How can I determine if my merge request will make it into the next release?

  • A: The Release Manager adds PR milestones and Jira fix versions for tracking. You can also check the release branches (e.g. in the mattermost repo) to see what's included.

Q: Do we use Playbooks for releases?

  • A: Yes, playbooks are used for cloud & self-hosted, mobile and desktop releases, and for dot releases and plugin releases.

Q: How are PRs merged for release?

  • A: PRs are first merged to master. As needed, the dev who submitted the fix is also responsible for cherry-picking it to the release branch after a release branch has been cut.

Q: How is cherry-picking done?

Q: What version is community.mattermost.com kept on?

  • A: Normally on master branch and it updates daily.

Q: How to remove a feature/bug from a release?

  • A: The feature flag is turned off. Another option is reverting the feature from the master and release branches.

Q: How are NOTICE.txt PRs submitted?

  • A: PRs are first merged to master. The dev reviewer is responsible for helping cherry-picking it to the release branch as needed.

Q: Is an improvement a feature or a bug?

  • A: Usually features/story tickets.

Q: How does release team monitor what changes went into a release?

Q: How does translations branching work?

  • A: The translation PR will be submitted against the master branch.

Q: What is the process for community PRs?

  • A: Review, merge, and cherry-pick as needed.

Q: What information does the Customer Support team need for Cloud releases?

  • The Announcements channel in the Staff team is used for release updates and for posting the changelog.

PreviousRelease processNextFeature release process

Last updated 7 months ago

Was this helpful?

We follow . If releases are not approved by a certain date, then we miss the release train.

Cloud/self-hosted .

releases follow the same release cadence as cloud/self-hosted.

.

When issues are found that warrant a patch release, we follow the .

The functions as the main location for important announces about Cloud test server updates, and for release dates and feature complete deadlines. Specific teams or people may be at-mentioned if the announce is targeted at someone.

The functions as the central place to find the most important announcements for new releases with links to changelogs and/or blog posts that can be easily shared with external stakeholders including MLT and customers.

- A milestone overview of what releases + features are coming up.

.

The sample helps give an overview of needed steps for plugin releases.

Details on feature flags: .

A: See the for details.

A: Monitor the commit history of the respective release branch, e.g., contains commits that shipped with mattermost-server v7.5. Jira ticket is resolved after cherry picking is done.

the Agile Release Train method
release process is outlined here
Mobile app
Desktop app release process
dot release process outlined here
Release Announcements channel
Announcements channel
Productboard
Overview of release deadlines and cherry-picking guidelines
Plugin Release Playbook
https://developers.mattermost.com/contribute/server/feature-flags/
cherry pick process documentation
https://github.com/mattermost/mattermost-server/commits/release-7.5