[MM-40632] Updates to the Developer Documentation and README, remove unnecessary files and code (#1922)

* [MM-40632] Updates to the Developer Documentation and README, remove unnecessary files and code

* Update CONTRIBUTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update CONTRIBUTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update CONTRIBUTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update README.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update README.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update TESTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update TESTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update TESTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update TESTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update TESTING.md

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>

* Update CONTRIBUTING.md

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* Update TESTING.md

Co-authored-by: Guillermo Vayá <guivaya@gmail.com>

* PR feedback

Co-authored-by: Carrie Warner (Mattermost) <74422101+cwarnermm@users.noreply.github.com>
Co-authored-by: Guillermo Vayá <guivaya@gmail.com>
This commit is contained in:
Devin Binnie 2021-12-17 15:00:35 -05:00 committed by GitHub
parent 8474683ff1
commit 9a518e8e76
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 64 additions and 579 deletions

View file

@ -1,39 +1,46 @@
# Contributing Guidelines
Thank you for your interest in contributing! Please see the guidelines below before contributing and [join our "Desktop App" community channel](https://pre-release.mattermost.com/core/channels/desktop-app) to ask questions from community members and the Mattermost core team.
Thank you for your interest in contributing! Please see the guidelines below before contributing and [join our "Developers: Desktop App" community channel](https://community.mattermost.com/core/channels/desktop-app) to ask questions from community members and the Mattermost Desktop team.
You can also visit our [developer guide](https://developers.mattermost.com/contribute/desktop/) to learn more information about how to set up your environment, as well as develop and test changes to the Desktop App.
## Issue
Thank you for feedback. When you report a problem, please pay attention to following points.
We really appreciate your feedback on the Desktop App. We'd ask that before you file an issue that you go through a few steps beforehand.
### Does it happen on web browsers? (especially Chrome)
### Does it reproduce in a web browser?
Mattermost Desktop is based on Electron, which integrates the Chrome engine within a standalone application.
If the problem you encounter can be reproduced on web browsers, it may be an issue with Mattermost server (or Chrome).
If this is the case, please create an issue in the [mattermost-server](https://github.com/mattermost/mattermost-server) or [mattermost-webapp](https://github.com/mattermost/mattermost-webapp) repositories.
### Try "Clear Cache and Reload"
It's available as `Ctrl(Command) + Shift + R`.
Some layout problems are caused by browser cache.
Especially, this kind of issue might happen when you have updated Mattermost server.
Sometimes issues can be resolved simply by refreshing your Mattermost server within the app.
You can do this by pressing `CMD/CTRL+SHIFT+R` in the Mattermost Desktop App, or you can go to the menu and select **View > Clear Cache and Reload**.
### Write detailed information
Detailed information is very helpful to understand the problem.
For example:
If the issue still persists, please provide detailed information to help us to understand the problem. Include information such as:
* How to reproduce, step-by-step
* Expected behavior (or what is wrong)
* Screenshots (for GUI issues)
* Application version
* Operating system
* Mattermost server version
* Desktop App version (can be viewed by going to 3-dot menu > Help, or **Menu > Mattermost > About Mattermost** on macOS).
* Operating System
* Mattermost Server version
## Feature idea
Please see http://www.mattermost.org/feature-requests/ .
If you have an idea for a new feature, we'd love to hear about it!
Please let us know in the Mattermost Community server by making a post in the [Feature Proposals](https://community-daily.mattermost.com/core/channels/feature-ideas) channel.
## Pull request
Pull requests are welcome. Thank you for your great work!
If you are interested on working on an issue, we would very much appreciate your help!
1. When you edit the code, please confirm `npm test` successfully finishes.
2. Please update `docs/*.md` if it's necessary.
3. In the description of your pull request, please include:
* Operating System version on which you tested
* Mattermost server version on which you tested
* New or updated unit tests for your changes
4. Please complete the [Mattermost CLA](http://www.mattermost.org/mattermost-contributor-agreement/) prior to submitting a PR.
We have a list of issues marked as [Help Wanted](https://mattermost.com/pl/help-wanted-desktop) that are available to be worked on.
If you'd like to take on an issue, simply comment on the issue and one of the Core Contributors will assign it to you.
Once your change is ready, please make sure you perform the following tasks before submitting a pull request:
1. Make sure that the PR passes all automated checks. You can do this by running the following commands:
```
npm run lint:js
npm run check-types
npm run test
```
2. If you are fixing a bug, consider writing a unit test for the change so that the issue does not resurface. If you are adding a new feature, consider additionally writing end-to-end (E2E) tests to thoroughly test the changes.
3. Please complete the [Mattermost CLA](http://www.mattermost.org/mattermost-contributor-agreement/) prior to submitting a PR.

View file

@ -1,7 +1,6 @@
I confirm (by marking "x" in the [ ] below: [x]):
- [ ] This is not a troubleshooting question. [Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/](http://www.mattermost.org/troubleshoot/).
- [ ] This doesn't reproduce on web browsers (such as in Chrome). If it does, [issue reports go to the Mattermost Server repository](https://github.com/mattermost/platform/issues).
- [ ] This is not a troubleshooting question. If you have having issues, please send us a message in the [Peer-to-peer Help](https://community-daily.mattermost.com/core/channels/peer-to-peer-help) or the [Developers: Desktop App](https://community-daily.mattermost.com/core/channels/desktop-app) channels on the Mattermost Community server
- [ ] I have read [contributing guidelines](https://github.com/mattermost/desktop/blob/master/CONTRIBUTING.md).
---
@ -37,6 +36,6 @@ If you can, link to the line of code that might be responsible for the problem.
---
[JIRA tickets](https://mattermost.atlassian.net/browse/MM-14183?jql=labels%20%3D%20desktop) are created for all valid bug reports filed here. Bugs and features that the Mattermost core team are not immediately working on are opened as [Help Wanted GitHub issues](https://developers.mattermost.com/contribute/getting-started/contribution-checklist/) and welcome to contributions.
[JIRA tickets](https://mattermost.atlassian.net/issues/?filter=-4&jql=component%20%3D%20%22Desktop%20App%22%20order%20by%20created%20DESC) are created for all valid bug reports filed here. Bugs and features that the Mattermost core team are not immediately working on are opened as [Help Wanted GitHub issues](https://developers.mattermost.com/contribute/getting-started/contribution-checklist/) and welcome to contributions.
Our goal is to bring the Mattermost desktop repository into our day-to-day internal process with the hope of having more frequent desktop releases with faster feature development and turnaround time on bug fixes.

View file

@ -2,6 +2,8 @@ Before submitting, please confirm you've
- [ ] read and understood our [Contributing Guidelines](https://github.com/mattermost/desktop/blob/master/CONTRIBUTING.md)
- [ ] completed [Mattermost Contributor Agreement](http://www.mattermost.org/mattermost-contributor-agreement/)
- [ ] executed `npm run lint:js` for proper code formatting
- [ ] executed `npm run check-types` for proper type checking
- [ ] executed `npm run test` to ensure all automated tests pass
Please provide the following information:

View file

@ -1,40 +1,32 @@
# Mattermost Desktop
Native desktop application for [Mattermost](http://www.mattermost.org/) running on Windows, Mac, and Linux.
[Mattermost](https://mattermost.com) is an open source platform for secure collaboration across the entire software development lifecycle. This repo is for the native desktop application that's built on [Electron](http://electron.atom.io/); it runs on Windows, Mac, and Linux.
Originally created as "electron-mattermost" by Yuya Ochiai. Developed using [Electron](http://electron.atom.io/).
Originally created as "electron-mattermost" by Yuya Ochiai.
![screenshot_20](https://user-images.githubusercontent.com/29708087/35169141-65d7652a-fd29-11e7-901d-735881fb7b9d.png)
![mm-desktop-screenshot](https://user-images.githubusercontent.com/52460000/146078917-e1ba8c1f-24e5-4613-8b4b-f3507422f4f2.png)
[![Circle CI](https://circleci.com/gh/mattermost/desktop.svg?style=shield)](https://circleci.com/gh/mattermost/desktop)
## Features
### Desktop integration
* Tabs for multiple teams across multiple servers
* Server dropdown for access to multiple teams
* Dedicated tabs for Channels, Boards and Playbooks
* Desktop Notifications
* Windows 10: Toast
* Windows 7-8.1: Popup like Toast
* OS X: Notification Center
* Linux: [libnotify](http://electron.atom.io/docs/v0.36.0/tutorial/desktop-environment-integration/#linux)
* Badges for unread channels and mentions
* Installs as a native application
### Pre-packaged
You don't have to install any other software.
Packages are available on the [releases page](http://github.com/mattermost/desktop/releases).
* Deep Linking to open Mattermost links directly in the app
* Runs in background to reduce number of open windows
## Usage
### Installation
Detailed guides are available at [docs.mattermost.com](https://about.mattermost.com/default-desktop-app-documentation/).
Detailed guides are available at [docs.mattermost.com](https://docs.mattermost.com/install/desktop-app-install.html).
1. Download a file from the [downloads page](https://about.mattermost.com/downloads).
2. Launch `Mattermost` in the unarchived folder.
3. On the first launch, please input name and URL for your Mattermost server. For example, `myserver : https://mattermost.example.com`.
### Quit
Ctrl or Command + Q to quit.
1. Download a file from the [downloads page](https://mattermost.com/download/#mattermostApps) or from the [releases page](https://github.com/mattermost/desktop/releases).
2. Run the installer or unzip the archive.
3. Launch Mattermost from your Applications folder, menu, or the unarchived folder.
3. On the first launch, please enter a name and URL for your Mattermost server. For example, `https://mattermost.example.com`.
### Configuration
You can show the dialog from menu bar.
@ -51,24 +43,8 @@ A custom data directory location can be specified with:
* `open /Applications/Mattermost.app/ --args --data-dir ~/my-mattermost-data/` on macOS
* `./mattermost-desktop --args --data-dir ~/my-mattermost-data/` on Linux
*When you upgrade from electron-mattermost, please copy `config.json` from `electron-mattermost`.
Otherwise, you have to configure again.*
### Proxy
Normally, the application will follow your system settings to use a proxy, or you can set up a proxy by the following command line options.
* `--proxy-server=<SERVER>:<PORT>`
* `--proxy-pac-url=<URL>`
On Windows, please make sure to add `--` before options. For example, `Mattermost.exe -- --proxy-server=...`.
## Custom App Deployments
Our [docs provide a guide](https://docs.mattermost.com/deployment/desktop-app-deployment.html) on how to customize and distribute your own Mattermost Desktop App, including how to distribute the official Windows Desktop App silently to end users, pre-configured with the server URL and other app settings.
## Contributing
Please see [CONTRIBUTING.md](./CONTRIBUTING.md).
## Development
Please see [docs/development.md](./docs/development.md).
## Development and Making Contributions
Our [developer guide](https://developers.mattermost.com/contribute/desktop/) has detailed information on how to set up your development environment, develop, and test changes to the Desktop App.

View file

@ -1,5 +1,10 @@
# Mattermost Desktop App Testing
## Automated Testing Guide
You can find information about our automated tests in the [developer guide](https://developers.mattermost.com/contribute/desktop/testing/)
If you are interested in contributing to our automated test library, please read our [contributing guidelines](https://github.com/mattermost/desktop/blob/master/CONTRIBUTING.md).
## Release Testing Guide
Thank you for your interest in improving Mattermost software prior to its next release. Your bug reports increase the quality of the Mattermost experience for thousands of people around the world using Mattermost.
@ -8,21 +13,21 @@ New bug reports benefiting the next release will be documented in the release no
To contribute to the process of testing the Mattermost Desktop App:
1. If you haven't already, create an account on https://pre-release.mattermost.com/core
1. If you haven't already, create an account on our [Community Server](https://community.mattermost.com/)
- Set your username to be the same as your GitHub username
2. Install the latest Mattermost Desktop App
- Download the latest Mattermost Desktop App from the [Mattermost Download page](https://about.mattermost.com/download/#mattermostApps)
- Follow the [Desktop Application Install Guides](https://about.mattermost.com/default-desktop-app-install-documentation/) to install the app for your platform
- Use the [Desktop Application's User Guide](https://about.mattermost.com/default-desktop-app-documentation/) to add https://pre-release.mattermost.com/core as a new team
- Hit "Save" and log in
- Download the latest pre-release Mattermost Desktop App from the [GitHub Releases page](https://github.com/mattermost/desktop/releases).
- Follow the [Desktop Application Install Guides](https://docs.mattermost.com/install/desktop-app-install.html) to install the app for your platform.
- Use the [Managing Servers Guide](https://docs.mattermost.com/messaging/managing-desktop-app-servers.html) to add https://community.mattermost.com/core as a new server.
- Select "Save" and log in to Mattermost.
3. Go to the [Public Test Channel](https://pre-release.mattermost.com/core/channels/public-test-channel) and try the following:
- Post a message with information on what you're testing, for example: `Testing Mattermost Desktop App 3.4.1 on Windows 10 64-bit`
3. Go to the [Public Test Channel](https://community.mattermost.com/core/channels/public-test-channel) and try the following:
- Post a message with information on what you're testing, for example: `Testing Mattermost Desktop App 5.0.2 on Windows 10 64-bit`.
- Reply to the post by clicking on "..." then "Reply" with This is a comment including files and upload five (5) files including at least one image, one sound file and one video clip from your Desktop App.
- Search for the word "Desktop" and click "Jump" on the search result of your own post in Step 3.1. Click into the preview of the files you uploaded and try to download each one.
- Verify [Team Management works as documented](https://about.mattermost.com/default-desktop-app-documentation/).
- Verify [App Options work as documented](https://about.mattermost.com/default-desktop-app-documentation/).
- Verify [Team Management works as documented](https://docs.mattermost.com/messaging/managing-desktop-app-servers.html).
- Verify [App Options work as documented](https://docs.mattermost.com/messaging/managing-desktop-app-options.html).
- Verify Menu Bar options work as documented.
- Use the desktop app for another 15 minutes, trying different features and functionality on the user interface.
@ -33,20 +38,3 @@ To contribute to the process of testing the Mattermost Desktop App:
- Mattermost Server version (See Mattermost Menu > About Mattermost, where Mattermost Menu can be accessed by clicking on three dots next to your profile name)
- Clear steps to reproduce the issue
- [See example of Desktop App issue](https://github.com/mattermost/desktop/issues/355)
5. When your testing is complete, open a GitHub Issue announcing your platform has been verified [using this template](https://github.com/mattermost/desktop/issues/70).
## THANK YOU!
We highly appreciate your help improving the quality of the Mattermost Desktop App for the entire community.
Your testing contribution, including GitHub username, will be listed under the [Verified Operating Systems](TESTING.md#verified-operation-systems) section of this document.
## Verified Operating Systems
The following chart summarizes the operating systems which the Mattermost Desktop App releases have been tested:
| Version | OS | Issues | Tester | Date |
| :-- | :-- | :-- | :-- | :-- |
| 3.4.1 | Windows 10 64-bit | None Observed | [@tonyD-2016](https://github.com/tonyD-2016) | 2016-12-05 |
| 1.0.7 | Windows 7 SP1 64-bit | [#63](https://github.com/mattermost/desktop/issues/63) | [@it33](https://github.com/it33) | 2016-03-12 |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

View file

@ -1,3 +0,0 @@
# Mattermost Desktop Configuration Guides
Please refer to [the Custom Build Configuration section of the Desktop App Deployment Guide](https://docs.mattermost.com/deployment/desktop-app-deployment.html#custom-build-configuration).

View file

@ -1,116 +0,0 @@
# Mattermost Desktop Development Guides
## Build instructions
### Prerequisites
- C++ environment which supports C++11 (e.g. VS 2015, Xcode, GCC)
- Python 2.7
- Node.js 8.2.0 or later
- Git
### Installing dependencies
After installation, dependencies of `src/` directory are also installed.
```
$ npm install
```
### Building
Build JavaScript codes with `webpack`.
```
$ npm run build
```
After building is done, you can execute the application with `npm start`.
### Packaging
Package specific files of `src/` directory as distributable formats with [`electron-builder`](https://github.com/electron-userland/electron-builder).
Files are defined in `electron-builder.json`.
Packages will be generated into `release/` directory.
```
$ npm run package:<all | windows | mac | linux>
```
#### Dependencies
Need to install some software required by `electron-builder` to build packages.
Please see [electron-builder wiki](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build) for detailed description.
**Minimum requirements for current platform:**
- Windows: Nothing.
- macOS: `brew install gnu-tar`
- Linux (64 bit): `icnsutils`, `graphicsmagick` and `xz-utils` if Ubuntu is used.
#### Code signing
Set environment variables to build trusted packages.
Please see [electron-builder wiki](https://github.com/electron-userland/electron-builder/wiki/Code-Signing) for detailed description.
**Quoted from the wiki:**
| Env name | Description |
|---|---|
| `CSC_LINK` | The HTTPS link (or base64-encoded data, or `file://` link) to certificate (`*.p12` or `*.pfx` file). |
| `CSC_KEY_PASSWORD` | The password to decrypt the certificate given in `CSC_LINK`. |
| `CSC_NAME` | *macOS-only* Name of certificate (to retrieve from login.keychain). Useful on a development machine (not on CI) if you have several identities (otherwise don't specify it). |
### Tests
Execute automated tests.
```
$ npm test
```
There are two steps in `npm test`.
Test functionality:
```
$ npm run test:app
```
Test coding style:
```
$ npm run lint:js
```
### Helper commands
#### `npm run watch`
Reload the application automatically when you have saved source codes.
When using this mode, you can use "React Developer Tools" in the Developer Tools window.
## Directory Structure
```
Mattermost Desktop
├── docs/ - Documentations.
├── resources/ - Resources which are used outside of the application codes, and original images of assets.
├── scripts/ - Helper scripts.
├── src/ - Application source code.
│   ├── assets/ - Assets which are loaded from the application codes.
│   ├── browser/ - Implementation of Electron's renderer process.
│   │   ├── components/ - React.js components.
│   │   ├── css/ - Stylesheets.
│   │   ├── js/ - Helper JavaScript modules.
│   │   └── webview/ - Injection code for Electron's <webview> tag.
│   ├── common/ - Common JavaScript modules for both Electron's processes.
│   └── main/ - Implementation of Electron's main process.
│      └── menus/ - Application menu.
└── e2e/ - Automated tests.
   ├── modules/ - Scripts which are commonly used in tests.
   └── specs/ - Test scripts.
```
### Other directories
- **node_modules/** - Third party Node.js modules to develop and build the application.
- **release/** - Packaged distributable applications.
- **src/node_modules/** - Third party Node.js modules to use in the application.
### Developer tools for debugging
While you can access the developer tools for the renderer and current browserview, there are some other that usually don't need access. With the new browserview you can automatically call for the devtools when showing the settings window or any of the modals. To do so you'll need to setup environment variables:
- MM_DEBUG_SETTINGS for the new settings window
- MM_DEBUG_MODALS for any modal that needs to be debugged. Currently we can't target only one specifically.

View file

@ -1,177 +0,0 @@
# Release Process
This document outlines the release process for the Mattermost Desktop App. It is drawn from the development process used by the [Mattermost core team](https://docs.mattermost.com/process/feature-release.html).
Desktop App releases ship at the same time as the next server Feature release after the latest [Electron update](https://github.com/electron/electron/releases), which means approximately every 2-4 months. The Desktop App releases ship on the 16th of the month and follow the server release schedule.
In cases where there are requested features completed prior to the next upcoming Electron update, the next Desktop App release will be prepared at the same time as the next server Feature release regardless of whether a new Electron update has shipped.
A dot release will be prepared sooner if Electron releases a security update, or if other urgent bugs are found.
## Release Timeline
Notes:
- All cut-off dates are based on 15:00 GMT (UTC-00) on the day stated.
- T-minus counts are measured in "working days" (weekdays other than major holidays concurrent in US and Canada) prior to release day.
### A. (Code complete date of previous release) Beginning of release
Pre-work for the current release begins at the code complete date of the previous release. See "Code Complete and Release Candidate Cut" section below for details.
### B. (T-minus 20 working days) Feature Complete
No pull requests for features should be merged to the current release after this date. In special cases, exceptions can be made by the Release Manager.
1. Release Manager:
- Post this checklist in Desktop App channel
- Ensure that feature PR reviews are prioritized, and post a list of outstanding feature PRs in the Desktop App channel
- After release branches are cut, ask dev to cut RC1 for QA testing
- After RC1 is cut, make an announcement for R&D to use the RC as their daily client to get more test coverage
- Submit changelog with updates for improvements, bug fixes, known issues, and contributors
- Ask PMs if there are any notable breaking changes or deprecated features in the release
- Start posting a daily Zero Bug Balance query (posted until zero bugs or day of release)
- Create meta issue for release in GitHub to let contributors and users know about the upcoming release. See [example issue](https://github.com/mattermost/desktop/issues/271)
- Confirm date of marketing announcement for the release and update Desktop App channel header if needed
2. Dev/PM/QA:
- Prioritize reviewing, testing, and merging of pull requests for current release until there are no more tickets in the [pull request queue](https://github.com/mattermost/desktop/pulls) marked for the current release
- Verify `version` in [package.json](https://github.com/mattermost/desktop/blob/master/package.json) is updated to the new release version
- Master is tagged and branched and "Release Candidate 1" is cut (e.g. 1.1.0-RC1)
3. Marketing:
- Tweet announcement that RC1 is ready
### C. (T-minus 15 working days) Judgment Day
Day when Release Manager and PMs decide which major features are included in the release, and which are postponed.
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Update Changelog PR based on whats in/out of the release
- Post a reminder to devs in the Desktop App channel of the code complete date with the ZBB count
- Ask release PM to review the JIRA tickets remaining in the current release fix version and push those that wont make it to the next fix version
2. PM:
- Finalize roadmap for next release, and identify planned marketing bullet points
3. Marketing:
- Start drafting blog post, tweet, and email for the release announcement
### C. (T-minus 14 working days) Code Complete
**Stabilization** period begins when all features for release have been committed. During this period, only **bugs** can be committed to the release branch. Non-bug pull requests are tagged for the next version.
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Update meta issue for release in GitHub with a link to the changelog
2. Dev:
- Prioritize reviewing, updating, and merging of pull requests for current release until there are no more tickets in the pull request queue marked for the current release
### D. (T-minus 8 working days) Release Candidate Testing
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Post links to final tickets for next RC to the Desktop App channel
2. QA:
- Update Desktop App channel header with links to RC instances and testing spreadsheet
- Post release testing instructions to Desktop App channel with a list of known issues
- Coordinate testing:
- Update the RC Testing Spreadsheet to cover any changes or new features, confirm that known issues are listed in the relevant tests, and assign each area to a team member
3. Team:
- Test assigned areas of the Release Candidate Testing spreadsheet
- Daily triage of hotfix candidates and decide whether and when to cut next RC or final
4. Dev:
- Submit PRs for hotfixes against the release branch, and review, test and merge prior to next RC
- Push next RC to acceptance and announce in Desktop App channel with new RC link
5. Docs:
- Submit Changelog PR for team review
- Submit any remaining documentation PRs for product updates in the release
### E. (T-minus 7 working days) Release Candidate Testing Finished
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Check that the following are updated in the Changelog:
- Known issues
- Contributors
- Breaking changes
2. Team:
- Finish assigned areas of the Release Candidate Testing spreadsheet
- Continue triaging hotfix candidates and decide on whether and when to cut next RC or final
- If no blocking issues are found sign off on the release
3. Marketing:
- Finish drafts of art work for Twitter announcement and send to marketing lead for review
### F. (T-minus 2 working days) Release Build Cut
The final release is cut. If an urgent and important issue needs to be addressed between major releases, a bug fix release (e.g. 1.1.1) may be created.
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Update the links in [Mattermost download page](https://www.mattermost.org/download/), [installation guides](https://docs.mattermost.com/install/desktop.html) and [MSI installer guides](https://docs.mattermost.com/install/desktop-msi-gpo.html)
- Merge changelog PR after review is complete
- If there is a security fix, confirm the Changelog recommends upgrade, with a note mentioning the security level and thanking the security researcher
- Draft [Mattermost Security Updates](http://about.mattermost.com/security-updates/) if applicable, but do not post until seven days after official release
- Check Security Issues spreadsheet and confirm disclosure text
- Close GitHub meta ticket for the release
2. Build:
- Tag a new release (e.g. 1.1.0) and run an official build which should be essentially identical to the last RC
- Post in Desktop App channel with links to all supported distributions and SHA-256 checksum
- Complete code-signing and confirm that it worked well by testing the download links and keeping an eye out for any warnings or issues. Also, use these commands to verify the signatures:
- Windows: On "Developer Command Prompt" (bundled in Visual Studio),
`signtool verify /pa /all EXE_TO_VERIFY`
- Mac: On console,
`codesign --verify --deep --strict --verbose=2 Mattermost.app`
3. Docs:
- Finalize all documentation
4. Dev:
- Publish the release in [GitHub repository](https://github.com/mattermost/desktop/releases)
- Merge changes made to release branch into master
5. Marketing:
- Schedule Twitter announcement for 08:00 PST on the date of marketing announcement
If a bug fix release is required, run through the following steps:
1. Dev:
- Submit, review and merge patches for the release branch
- Cut an RC containing all bug fixes
2. QA:
- Verify each of the issues in the RC are fixed
3. Dev:
- Tag a new release (e.g. 1.1.1) and run an official build including code-signing
- Publish the patch release in [GitHub repository](https://github.com/mattermost/desktop/releases) with SHA-256 checksums
- Delete RCs after final version is shipped
- Merge changes made to release branch into master
4. Release Manager:
- Update [Mattermost download page](https://mattermost.org/download)
- Update the download links in [installation guides](https://docs.mattermost.com/install/desktop.html)
- Update the changelog with notes on patch releases
- Draft [Mattermost Security Updates](http://about.mattermost.com/security-updates/) if applicable, but do not post until seven days after official release
- Check Security Issues spreadsheet and confirm disclosure text
5. Marketing:
- Schedule Twitter announcement for 08:00 PST on the date of marketing announcement
### G. (T-minus 0 working days) Release Day
1. Release Manager:
- Post this checklist in Desktop App channel
- Verify all items in the last posted release checklist are complete
- Update the desktop app upgrade [in-product notice](https://github.com/mattermost/notices)
- Add new release fix versions in Jira for the next few releases
- Close the release in Jira
- Post key dates for the next release in the header of the Desktop App channel and remove links to RC candidates
- Check for any UserVoice feature suggestions that were completed in the current release
- Confirm marketing has been posted
- Close the release milestone in GitHub
2. Dev:
- Delete RCs after final version is shipped
- Check if any libraries need to be updated for the next release
### H. (T-plus 10 working days) Release Updates
1. Release Manager:
- Post this checklist in Desktop App channel
- Post and review [Mattermost Security Updates](https://about.mattermost.com/security-updates/) for the Desktop App
- Update Security Issues spreadsheet with issue number from posted update (e.g. v3.2.0.1)
- Confirm the Security Researchers list on the [Responsible Disclosure Policy](https://www.mattermost.org/responsible-disclosure-policy/) is up to date

View file

@ -1,190 +0,0 @@
# Mattermost Desktop Setup Guides
## Installation
### Windows
To set up the Mattermost desktop application for Windows 7, 8 and 10:
1. Download [the latest release](https://github.com/mattermost/desktop/releases) of Mattermost Desktop
Find the file ending in `-win64.zip` if you're running a x64 version of Windows and `-win32.zip` if you're running an older 32-bit version.
2. From the `\Downloads` directory right-click on the file and select "Extract All..."
- Change the extract folder from `C:\Users\(currentuser)\Downloads\mattermost-desktop-1.1.1-win64` to `C:\Users\(currentuser)\AppData\Local` where `(currentuser)` will be the name of your user account.
- Check the "Show extracted files when complete" checkbox.
- Click the "Extract" button.
- Look for the new application directory at `C:\Users\(currentuser)\AppData\Local\mattermost-desktop...`.
- Remove the version number by renaming the `mattermost-desktop...` application directory to `mattermost-desktop`.
- If a `mattermost-desktop` directory already exists then you are upgrading Mattermost, and need to quit Mattermost if it is running and then delete the `mattermost-desktop` directory. After that you can rename the `mattermost-desktop...` directory to `mattermost-desktop`. Don't worry, no settings will be lost, they are stored elsewhere.
3. Go to the `\mattermost-desktop` application directory and find the file named `Mattermost`.
- Right-click the file and select "Pin to Taskbar" to make the application available from your Windows task bar.
- Right-click the file and select "Pin to Start Menu" to make the application available from your Windows Start menu.
- Double-click the file to open the application.
### OS X
For OS X 10.11 El Capitan. An older version of OS X has similar way.
1. Download [the latest release](https://github.com/mattermost/desktop/releases) of Mattermost Desktop
Find the file ending in `-osx.tar.gz`.
2. From the `/Downloads` directory double-click on the file."
A new directory should be created on your Mac.
3. Go to `/mattermost-desktop...` directory and right-click on `Mattermost` package and select "Open"
If you see a dialog to confirm the application, select "Open".
You should see a new application called **Mattermost Desktop** open.
### Linux
#### Ubuntu
For Ubuntu 16.04.
1. Download [the latest release](https://github.com/mattermost/desktop/releases) of Mattermost Desktop
Find the file ending in `-linux-*.deb`.
2. Open a terminal and execute a command
`sudo dpkg -i mattermost-desktop-<VERSION>-<ARCH>.deb`
3. Open Dash (located at top left corner) and input `mattermost`, then click `Mattermost` icon
You should see a new application called **Mattermost Desktop** open.
#### Other distributions
1. Download [the latest release](https://github.com/mattermost/desktop/releases) of Mattermost Desktop
Find the file ending in `-linux-*.tar.gz`
2. Extract the archive, then execute `Mattermost` which is located at inside of the extracted directory
3. If you need the Desktop Entry, please execute `create_desktop_file.sh`. It creates `Mattermost.desktop`.
Please refer https://wiki.archlinux.org/index.php/Desktop_entries
## Configuration
You have to configure the application to interact with your teams.
1. Open **Settings Page**. If you use the application for the first time, **Settings Page** should appear automatically.
You can also see **Settings Page** by following methods.
- Windows: Press `Alt` key to bring up the menu at the top of the window, then click `File -> Settings`.
- OS X: Click `Mattermost` from the menu at the top of the screen, then click `Preferences...`.
- Linux: Click `File -> Settings` on the menu.
- All : right-click on tray icon and click `Settings` or `Preferences...`.
2. Press `+` button next to the "Teams" label.
3. For each Mattermost team you'd like to use, enter its **Name** and **URL** then click **Add**
4. Click **Save** to save your setting
You're now ready to use **Mattermost Desktop** to interact with multiple teams from one desktop application.
## Quit
- Windows, Linux: `Ctrl+Q`
- OS X: `Command+Q`
## Help
The Mattermost desktop application offers:
- Connectivity to one or more Mattermost team sites and multiple Mattermost servers
- Shortcuts from Start Menu and Windows Task Bar
- Icon notifications from Windows Task Bar
- Desktop notifications
See the Mattermost [help documentation](http://docs.mattermost.com/help/getting-started/signing-in.html) for how to use the Mattermost team site.
## Settings Page
The Settings Page is available from the **File** menu under **Settings** (Click `Alt` to show the menu if it's not visible). This page manages connections to team sites and other settings.
- **Add a Team Site**:
1. Under **Teams** section, enter **Name** for team name to show in top tab
2. Enter **URL** for the team site location. For example: `https://example.com/teamname` then click **Add**.
- **Delete a Team Site**:
- Delete a Team Site by clicking the "x" next to the URL of the team site you wish to delete.
- **Options**
- **Hide Menu Bar** (Windows, Linux)
- This option hides the menu bar. Press "Alt" to show it.
- **Show Icon on Menu Bar** (OS X)
- The icon appears on menu bar to indicate whether there are new messages or mention.
- **Allow insecure contents**
- If your team is hosted on `https://`, images with `http://` are not rendered by default.
This option allows such images to be rendered, but please be careful for security.
- **Start app on login** (Windows, Linux)
- This option starts the application when you login.
- **Leave app running in notification area when the window is closed** (OS X, Linux)
- This option hides the window from the dock, if the window is closed
- **Toggle window visibility when clicking on the tray icon** (Windows)
- If checked, then a click on the system tray icon leads to a toggling of the minimized/maximized state of the window
- **Show the red badge for unread messages.** (Windows, OS X)
- If this is checked it will show the red dot on your task bar when you have unread messages.
## Menu Bar
If **Hide Menu Bar** option is enabled, click the `Alt` key to toggle the menu on and off.
Below lists menu options (shortcut keys are listed in brackets, `Ctrl` becomes `Command` on OS X):
- **File**
- **About Mattermost** - Shows version information for Mattermost desktop application
- **Settings** (Ctrl+Comma) - Opens setting menu to add new team sites and configure shortcut key options
- **Quit** (Ctrl+Q) - Exits the application
- **Edit**
- **Undo** (Ctrl+Z) - Reverses previous action
- **Redo** (Ctrl+Shift+Z, Ctrl+Y on Windows) - Replays most recent action
- **Cut** (Ctrl+X) - Cuts selected text
- **Copy** (Ctrl+C) - Copies selected text
- **Paste** (Ctrl+V) - Pastes text from clipboard
- **Select All** (Ctrl+A) - Select all text in input box
- **Search in Team** (Ctrl+S) - Puts cursor in search box to search in the current team
- **View**
- **Find..** (Ctrl+F)- Find in page
- **Reload** (Ctrl+R) - Reload page from the server
- **Clear Cache and Reload** (Ctrl+Shift+R) - Clear cached content in application and reload page
- **Toggle Full Screen** (F11) - Toggle application from window to full screen and back
- **Toggle Developer Tools** (Ctrl+Shift+I) - Turn on and off sidebar showing developer tools
- **Actual Size** (Ctrl+0) - Reset zoom level
- **Zoom In** (Ctrl+Plus) - Enlarge the rendered contents size
- **Zoom In** (Ctrl+Minus) - Shrink the rendered contents size
- **History**
- **Back** (Alt+Left, Command+[ on OS X) - Go back to previous web page in the current tab
- **Forward** (Alt+Right, Command+] on OS X) - Go forward to next web page in the current tab
- **Window**
- **Close** (Ctrl+W) - Close the window (On Window and Linux, the main window is minimized)
- **Minimize** (Ctrl+M) - Minimize the window
- ***Team Name*** (Ctrl+{1-9}) - Open the *n*-th tab
- **Select Next Team** (Ctrl+Tab, Alt+Command+Right) - Open the right tab
- **Select Previous Team** (Ctrl+Shift+Tab, Alt+Command+Left) - Open the left tab
- **Help**
- ***Learn More*** Links to the official mattermost documentation
- ***Version*** Indicate the application version
## Notifications
Mattermost lets users configure [desktop notifications](http://docs.mattermost.com/help/getting-started/configuring-notifications.html#desktop-notifications) to alert users to new events in a team site.
For the Mattermost Windows application, these appear as balloon notifications from the task bar on Windows 7 and Windows 8.1, and as a "toast" pop-up on Windows 10.
## Start Menu and Task Bar shortcuts (Windows)
If pinned to the Windows Start Menu in the setup procedure, a shortcut to the Mattermost desktop application should be available from the Start Menu by pressing the Windows Key.
If pinned to the Windows Task Bar in the setup procedure, a shortcut to the Mattermost desktop application should be available from the Windows Task Bar.

View file

@ -27,7 +27,6 @@
"build": "npm-run-all build:*",
"build:main": "webpack-cli --bail --config webpack.config.main.js",
"build:renderer": "webpack-cli --bail --config webpack.config.renderer.js",
"build-prod": "npm-run-all build:*",
"build-robotjs": "npm rebuild --runtime=electron --target=14.1.0 --disturl=https://atom.io/download/atom-shell --abi=83",
"start": "electron dist/ --disable-dev-mode",
"restart": "npm run build && npm run start",
@ -46,10 +45,10 @@
"test:unit": "jest",
"test:coverage": "jest --coverage",
"package:all": "cross-env NODE_ENV=production npm-run-all check-build-config package:windows package:mac package:mac-universal package:linux",
"package:windows": "cross-env NODE_ENV=production npm-run-all check-build-config build-prod && electron-builder --win --x64 --ia32 --publish=never",
"package:mac": "cross-env NODE_ENV=production npm-run-all check-build-config build-prod && electron-builder --mac --x64 --arm64 --publish=never",
"package:mac-universal": "cross-env NODE_ENV=production npm-run-all check-build-config build-prod && electron-builder --mac --universal --publish=never",
"package:linux": "cross-env NODE_ENV=production npm-run-all check-build-config build-prod && electron-builder --linux --x64 --ia32 --publish=never",
"package:windows": "cross-env NODE_ENV=production npm-run-all check-build-config build && electron-builder --win --x64 --ia32 --publish=never",
"package:mac": "cross-env NODE_ENV=production npm-run-all check-build-config build && electron-builder --mac --x64 --arm64 --publish=never",
"package:mac-universal": "cross-env NODE_ENV=production npm-run-all check-build-config build && electron-builder --mac --universal --publish=never",
"package:linux": "cross-env NODE_ENV=production npm-run-all check-build-config build && electron-builder --linux --x64 --ia32 --publish=never",
"lint:js": "eslint --ignore-path .gitignore --ignore-pattern node_modules --ext .js --ext .jsx --ext .ts --ext .tsx .",
"lint:js-quiet": "eslint --ignore-path .gitignore --ignore-pattern node_modules --ext .js --ext .jsx --ext .ts --ext .tsx . --quiet",
"fix:js": "eslint --ignore-path .gitignore --ignore-pattern node_modules --quiet --ext .js --ext .jsx --ext .ts --ext .tsx . --fix",