How to update the handbook
On this page
Who can update the Handbook?
Contributions from everyone are welcome, including staff members and community members. You don't have to work at Mattermost to submit an update or fix something that's caught your eye.
How do I know what to update?
"Update the Handbook" is a term we use regularly at Mattermost but it's not always obvious exactly what to update or how. Here are some examples of what a Handbook update could be:
Updating your team page with new team members and AORs.
Adding a new page to describe a new process.
Updating existing content to accommodate a change in process, policy, or requirement.
Archiving old content that should be preserved for reference.
Updating the Handbook can be as easy as fixing a typo, or as complex as reorganizing an entire section. The key is to update it regularly, so that updates are less daunting and time-consuming.
Hints and tips
The Handbook is a public-facing body of work and although it's a constantly-evolving work-in-progress, we still need to ensure our content is accurate, easy to read, and clear.
Be concise: Say what's essential, not more.
Get feedback: Have someone from your target audience read your draft to share feedback so you can savor surprises.
Don't aim for perfection: Our goal is regular iteration, so your content doesn't have to be perfect before it's published. It will be reviewed by an editor prior to publication so any major errors will be addressed then.
Your first Mattermost contribution
If this is your first time contributing to Mattermost, first read the Mattermost Contributor Agreement and sign it (at the bottom of the page), so you can be added to the Mattermost Approved Contributor List. Please ensure the GitHub username field matches your GitHub username exactly, including capitalization.
If you're not already a member of the mattermost
GitHub organization, you can request access through the Mattermost IT helpdesk. This will allow you to edit the files in the Handbook repo without having to create a fork for your changes.
Now you're ready to get started.
Edit an existing page
When you edit an existing page, it's usually to add content, remove content, or edit existing content. In general it's easiest if pages are edited directly, although you're also welcome to edit files directly from the repo if that's easier for you.
All editing is done in GitHub, as that's where the Handbook files are stored. Pages are formatted using Markdown - if you're not familiar with Markdown, you can take a look at this page for tips. Don't worry too much about formatting - it can always be adjusted during the review process.
Once a page is edited and you're happy with the changes, it's submitted as a pull request which is then reviewed. If there's any feedback or comments have been made, you'll be alerted. If suggestions have been made, you can choose to commit them (add them to your content) or you can ask the reviewer for more information before doing that.
When the PR is approved, it'll be merged and published. If you have more changes to make, you can simply repeat the process.
Edit a page directly
This is probably the quickest way to make changes, as it doesn't require you to find the file in the repo first.
Login to your Mattermost GitHub account
Open the Handbook and navigate to the page you want to edit.
Underneath the blue banner, locate three dots next to the page title at the top of the page. Click on the three dots and choose Edit on GitHub. This action will open the page in GitHub.
In GitHub select the pencil icon in the navigation bar (above the page header) called Edit this file to open the editable Markdown-format page. If you see Edit this file in your fork of this project the process is the same, it just means you're not part of the Mattermost organization and are working in a forked repo.
To learn more about Markdown formatting, see the Mattermost guide for formatting text, or the guide from GitBook.
Make your edits. When you're ready to submit your changes, commit your changes to start a pull request.
Add a descriptive title if the default title isn't sufficient. Add an extended description to summarize the changes you've made.
The default setting is Create a new branch for this commit and start a pull request. In the field below that, you can customize the branch name - you can also leave it as default.
Select Propose changes.
On the next page, you can scroll down to compare changes with the original document to double-check your changes.
If you're happy with them confirm that the title and description are correct, then select Create pull request.
Once a pull request has been submitted, a core committer with write-access assigns relevant reviewers and labels to kick off the review process. The review process includes aligning the content with the Style Guide, validating the changes, and tagging any other relevant committers.
Multiple committers may comment on your pull request and provide edits or suggestions which you can commit directly. You can also add line comments. Take a look at Commenting on pull requests for more details.
Once the review process is complete, the change is merged and pushed live. We recommend that you review your changes at https://handbook.mattermost.com for potential formatting errors.
Edit a file in the repo
This option works best if you know where the file is located in the repo.
Open the Handbook repo.
Navigate through the directories to the file you want to edit.
Once you've found the file, select Edit this file in the top corner. If you see Edit this file in your fork of this project the process is the same, it just means you're not part of the Mattermost organization and are working in a forked repo.
To learn more about Markdown formatting, see the Mattermost guide for formatting text, or the guide from GitBook.
Make your edits. When you're ready to submit your changes, commit your changes to start a pull request.
Add a descriptive title if the default title isn't sufficient. Add an extended description to summarize the changes you've made.
The default setting is Create a new branch for this commit and start a pull request. In the field below that, you can customize the branch name - you can also leave it as default.
Select Propose changes.
On the next page, you can scroll down to compare changes with the original document to double-check your changes.
If you're happy with them confirm that the title and description are correct, then select Create pull request.
Create a new page
Creating new content can take the form of a new page, or an entirely new section. Some things to keep in mind are naming conventions and that the Table of Contents entry is made manually in the SUMMARY.md
file.
Open the Handbook repo.
Navigate through the directories until you reach the section where you'd like to add your new content.
Select Add file > Create new file.
When you create a new page in the Handbook ensure that:
The page name is all lowercase
There are hyphens instead of spaces between the words.
New page names end with
.md
.
Write your content as needed.
When you're ready to submit your changes, commit your changes to start a pull request.
Add a descriptive title if the default title isn't sufficient. Add an extended description to summarize the changes you've made.
The default setting is Create a new branch for this commit and start a pull request. In the field below that, you can customize the branch name - you can also leave it as default.
Select Propose changes.
On the next page, you can scroll down to compare changes with the original document to double-check your changes.
If you're happy with them confirm that the title and description are correct, then select Create pull request.
Add your new page to the Handbook table of contents. If you plan to reorder the table of contents as part of your change, please tag @jason.blais or @carrie.warner in Mattermost (@jasonblais or @cwarnermm in GitHub) as a redirect may need to be set up to accommodate the change.
Watch a two-minute training video on how to create a new page in GitHub.
Create a new section
If you want to create nested content, you can create folders. You cannot create an empty folder and then add files to that folder, but rather creation of a folder must happen together with adding of at least a single file. On GitHub you can do it this way:
Navigate to the folder within which you're creating your new folder.
Select Add file > Create new file.
Enter the new folder's name in the text field and add
/
at the end.In the next text box, enter the name of the new page, ending with
.md
.When you're ready to submit your changes, commit your changes to start a pull request.
Add a descriptive title if the default title isn't sufficient. Add an extended description to summarize the changes you've made.
The default setting is Create a new branch for this commit and start a pull request. In the field below that, you can customize the branch name - you can also leave it as default.
Select Propose changes.
On the next page, you can scroll down to compare changes with the original document to double-check your changes.
If you're happy with them confirm that the title and description are correct, then select Create pull request.
Add your new section to the Handbook table of contents. If you plan to reorder the table of contents as part of your change, please tag @jason.blais or @carrie.warner in Mattermost (@jasonblais or @cwarnermm in GitHub) as a redirect may need to be set up to accommodate the change.
Frequently asked questions
How do I format a page?
All Handbook pages are written in Markdown, which is also the language used to post messages in Mattermost. To learn more about Markdown formatting, see the Mattermost guide for formatting text, or the guide from GitBook.
How do I update the left-hand navigation?
You can update the left-hand navigation in the SUMMARY.md file.
Important note:
GitBook dynamically changes the URL based on the location in the table of contents. This means that when a page changes its location, the previous link results in a 'page not found' error.
There is a redirect file that we use to prevent this in the gitbook.yaml
file. Please mention @jason.blais or @carrie.warner in Mattermost (@jasonblais or @cwarnermm in GitHub) for assistance if needed.
How do I add an image to the documentation?
Follow these two steps:
Go to the /assets folder, select Upload files, then upload the image files you want to add to your documentation. Make sure to have a clear name for each file you upload.
Next, go to the section you want to add an image to and include the following Markdown formatting:
Can I convert a Google Doc to Markdown?
Yes! Sometimes it's easier to draft content for the Handbook in a Google Doc. An open-source Google Drive add-on called Docs to Markdown can convert the content to Markdown. See the add-on documentation for details on installing and using this tool.
Once the add-on is installed, there are a number of conversion settings you can configure. Selecting all but the Use HTML headings/IDs option is recommended.
To see the embedded errors and warnings, disable the Use reckless mode option.
To see all conversion details, disable the Suppress info comment option.
The resulting Markdown code isn't perfect, but it's an excellent initial step towards preparing a PR for the Mattermost Handbook. Review the following areas of converted code:
Embedded images must be saved out as files, added to appropriate image folders, and links need to be added to point to correct locations.
If the doc contains screenshots or other image assets, right-click on the embedded image in the Google Doc, then select Save to Keep.
In the right pane, right-click on the image in the Keep list, then select Save Image As. Rename the image file as needed to match the Markdown code.
Images need to live in the
.gitbook/assets
folder and must use a relative link in the source file.Numbered lists and nested lists likely need corrections.
Many lines end in a
/
which need to be removed.ALT tags are added as
alt_text
for all images. Update the ALT tag to be more descriptive, or remove it altogether.
Training video
Watch a training video on how to update the handbook in GitHub.
Official Handbook reviewers
Below is a list of approved reviewers.
@cwarnermm: Reviews major changes to handbook.mattermost.com, such as updates to the Table of Contents (SUMMARY.md).
@cwarnermm: Editor reviews of all submitted PRs for correct grammar and consistent style.
@kevinfayle: Signs off on changes to marketing ops and analytics.
@aedott: Signs off on changes to messaging and math.
@it33: Signs off on changes to finance.
@natalie-hub: Signs off on changes to workplace.
@it33: Signs off on changes to signing authority (example).
@dschalla: Signs off on changes to Security.
Each PR should be reviewed by at least one approved reviewer. A build check requiring at least one approved review prior to a merge is planned, similar to other Mattermost repositories.
Below is a list of permissions handbook contributors have access to:
@jasonblais, @amyblais, @cwarnermm: Write permissions to the repository.
Staff contributors: Submit changes to
handbook.mattermost.com
using PRs. May have access to request reviews, add labels, submit PR reviews, and be requested as reviewers.Non-staff contributors: Submit changes to
handbook.mattermost.com
using PRs. Do not have access to request reviews, add labels. Can submit PR reviews.
Last updated