Mattermost Logo
We're hiring!
Edit on GitHub

Plugin Release Process

This document outlines the steps required to release a new version of a Mattermost plugin.

Update version 

Update plugin.json with the new version:

{
    "id": "github",
    "name": "GitHub",
    "description": "GitHub plugin for Mattermost.",
    "homepage_url": "https://github.com/mattermost/mattermost-plugin-github",
    "support_url": "https://github.com/mattermost/mattermost-plugin-github/issues",
    "icon_path": "assets/icon.svg",
-    "version": "0.12.0",
+    "version": "0.13.0",
    "min_server_version": "5.12.0",
    ...
}

Apply the updated manifest into the server and webapp:

make apply

Submit a pull request referencing the updated plugin.json, server/manifest.go and webapp/src/manifest.js. Note that server-only or webapp-only will only have one of the generated files.

Tag, Build & Sign 

Tag, build and sign a plugin via matterbuild by using a slash command on our community servers. Note that the repository must belong to the mattermost organization.

Simply invoke:

/mb cutplugin --tag v0.13.0 --repo mattermost-plugin-github

To tag and release a specific commit, invoke:

/mb cutplugin --tag v0.13.0 --repo mattermost-plugin-github --commitSHA 4a5a48f862fb0d8d45e7d07c40c1638460668562

To rebuild & sign an existing tag, invoke:

/mb cutplugin --tag v0.13.0 --repo mattermost-plugin-github --force

Matterbuild will create the given tag pointing at the current master, triggering CircleCI to automatically create a GitHub release. Once the assets are built and uploaded to the release, matterbuild will download and sign using our production plugin signing key.

Note that only authorized users have access to matterbuild.

Update the release description 

Install goreleaser, export the appropriate GITHUB_TOKEN, and then run:

goreleaser release --skip-validate --rm-dist

the tool will fail with an error about a missing main function, but successfully generates dist/CHANGELOG.md. Copy the contents of that file and update the corresponding release on GitHub.

Automating this is scheduled as MM-19848.

Update the Plugin Marketplace 

Submit a Jira ticket to the Toolkit Team to list the updated plugin in the marketplace.

Automating this is scheduled as MM-20841.