The Mattermost Developer Blog

Submitting Great PRs Posted on Jan 24, 2019 by Jesse Hallam
Learn how to submit optimal pull requests to increase the chances your contributions are added to open source projects.

If you want to submit good pull requests, start with our contribution checklist. Today, that page talks about what to fork, how to style your code, how to write unit tests and where to push your code. Implicit in all of that is the need to write great code, of course! But this blog post isn’t about writing great code, it’s about making your pull request a great experience for you and your reviewers.

Read More
Go: Idiomatic Error Handling Posted on Oct 18, 2018 by Jesse Hallam
At Mattermost, we’re in the midst of an epic to make our error handling code more idiomatic and thus ultimately more accessible.

Go is an extremely opinionated programming language. import something in a file that’s not used? It won’t compile, and there’s no flag to override. While there are workarounds, the end result remains the same: Go files are never cluttered by unused imports. This is true for all Go code everywhere, making every Go project more accessible. Not all Go opinions are enforced by the compiler. Some are documented in Effective Go, and yet others are reflected only in the coding style of the Go standard library.

Read More
Plugin System Overhaul Posted on Jul 18, 2018 by Joram Wilander
In 2018, we overhauled our entire plugin system. Read about the biggest challenges and takeaways from that experience.

Mattermost 5.2 will include major overhauls to the plugin system. Over the last six months of plugins being in beta, we’ve received a lot of great feedback from our community and customers building Mattermost plugins, as well as from our core team. We’ve taken this experience and feedback and used it to enhance our plugin system. This brings us a step closer to moving plugins out of beta and into a full stable release.

Read More
Subpath Support Posted on Jun 25, 2018 by Jesse Hallam
Mattermost 5.1 includes support for serving Mattermost from subpaths. Learn how to configure subpaths in production.

Mattermost 5.1 will include support for serving Mattermost from subpaths. This allows Mattermost to be exposed at something like https://example.com/company/mattermost, with your proxy server exposing different services at other subpaths. Subpath support is configured via the Site URL. Using subpaths in production In production, after configuration and restart, the application server expects all HTTP requests to be anchored to the configured subpath. This includes static assets, API calls, and WebSockets. For convenience, the application server redirects any unexpected requests back into this subpath, e.

Read More
npm@6 Posted on May 22, 2018 by Harrison Healey
Find out why Mattermost switched to npm@6 in May 2018 and what was needed to upgrade.

Heads up that with PR#1239, we’re effectively switching to npm@6. Why the change? Previously, doing a fresh npm install would unexpectedly change package-lock.json. Upgrading to npm@6 should resolve this going forward. What do I need to do? Make sure you’re running npm@6: npm install -g npm@6

Read More
Platform Repository Splitting Posted on Sep 4, 2017 by Joram Wilander
Here is a reminder that Mattermost separated the /platform repo into two repositories on September 6, 2017.

A reminder that Mattermost will be separating the /platform repo into two repositories on September 6th, 2017: a new repository for webapp client code, hosted at github.com/mattermost/mattermost-webapp existing repository (/platform) renamed to /mattermost-server, containing the server code. Why the change? Separates PRs for client and server with better naming conventions. This is similar to React Native and Redux repositories and helps us: work on one part of the system (webapp/server) without worrying about the other.

Read More