Update contributor website
This commit is contained in:
parent
aab2bb87bf
commit
fe21fd417e
6 changed files with 92 additions and 9 deletions
|
@ -11,7 +11,7 @@ We're very glad you want to check it out and perhaps contribute code our reposit
|
||||||
|
|
||||||
Our goal is to make your experience as great as possible. Follow these simple steps to contribute:
|
Our goal is to make your experience as great as possible. Follow these simple steps to contribute:
|
||||||
|
|
||||||
{{< bignumber number="1" title="Set up your developer machine" content="Just [clone the project from GitHub](https://github.com/mattermost/focalboard) and follow the steps in the README to build." >}}
|
{{< bignumber number="1" title="Set up your developer machine" content="[Clone the project from GitHub](https://github.com/mattermost/focalboard) and follow the steps in the README to build. Read the [developer tips & tricks](dev-tips) to get started." >}}
|
||||||
|
|
||||||
{{< bignumber number="2" title="Select a ticket" content="Find [help wanted tickets in GitHub](https://github.com/mattermost/focalboard/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). Comment to let everyone know you’re working on it. If there’s no ticket for what you want to work on see [contributions without a ticket.](/contribute/getting-started/contributions-without-ticket)" >}}
|
{{< bignumber number="2" title="Select a ticket" content="Find [help wanted tickets in GitHub](https://github.com/mattermost/focalboard/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). Comment to let everyone know you’re working on it. If there’s no ticket for what you want to work on see [contributions without a ticket.](/contribute/getting-started/contributions-without-ticket)" >}}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
title: "Code Review"
|
title: "Code Review"
|
||||||
date: 2018-03-06T00:00:00-04:00
|
date: 2021-02-03T08:00:00-00:00
|
||||||
weight: 5
|
weight: 5
|
||||||
subsection: Getting Started
|
subsection: Getting Started
|
||||||
---
|
---
|
||||||
|
@ -18,7 +18,7 @@ If you are a community member seeking a review
|
||||||
2. Wait for a reviewer to be assigned.
|
2. Wait for a reviewer to be assigned.
|
||||||
* Product managers are on the lookout for new pull requests and usually handle this for you automatically.
|
* Product managers are on the lookout for new pull requests and usually handle this for you automatically.
|
||||||
* If you have been working alongside a core committer, feel free to message them for help.
|
* If you have been working alongside a core committer, feel free to message them for help.
|
||||||
* When in doubt, ask for help in the [Developers](https://community.mattermost.com/core/channels/developers) channel on our community server.
|
* When in doubt, ask for help in the [Focalboard](https://community.mattermost.com/core/channels/focalboard) channel on our community server.
|
||||||
* If you are still stuck, please message Chen Lim (@chenilim on GitHub).
|
* If you are still stuck, please message Chen Lim (@chenilim on GitHub).
|
||||||
3. [Wait for a review](#if-you-are-awaiting-a-review).
|
3. [Wait for a review](#if-you-are-awaiting-a-review).
|
||||||
* Expect some interaction with at least one reviewer within 5 business days (weekdays, Monday through Friday, excluding [statutory holidays](https://docs.mattermost.com/process/working-at-mattermost.html#holidays)).
|
* Expect some interaction with at least one reviewer within 5 business days (weekdays, Monday through Friday, excluding [statutory holidays](https://docs.mattermost.com/process/working-at-mattermost.html#holidays)).
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Contribution Checklist"
|
title: "Contribution Checklist"
|
||||||
date: 2017-08-20T12:33:36-04:00
|
date: 2021-02-03T08:00:00-00:00
|
||||||
weight: 1
|
weight: 2
|
||||||
subsection: Getting Started
|
subsection: Getting Started
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Contributions Without Ticket"
|
title: "Contributions Without Ticket"
|
||||||
date: 2019-10-11T15:44:36-02:00
|
date: 2021-02-03T08:00:00-00:00
|
||||||
weight: 1
|
weight: 3
|
||||||
subsection: Getting Started
|
subsection: Getting Started
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -17,4 +17,4 @@ All pull requests submitted without a corresponding ticket will first be reviewe
|
||||||
|
|
||||||
**Note:** For pull requests greater than 20 lines of code, a `Help Wanted` ticket should be opened by the core team. This helps ensure that everything going into the project aligns with a unified vision. Core committers who review the PR are entitled to reject it if there isn't a `Help Wanted` ticket and feel it significantly changes behavior or user expectations.
|
**Note:** For pull requests greater than 20 lines of code, a `Help Wanted` ticket should be opened by the core team. This helps ensure that everything going into the project aligns with a unified vision. Core committers who review the PR are entitled to reject it if there isn't a `Help Wanted` ticket and feel it significantly changes behavior or user expectations.
|
||||||
|
|
||||||
The best way to discuss opening a `Help Wanted` ticket with the core team is by [starting a conversation in the feature idea forum](https://www.mattermost.org/feature-ideas/) or [opening an issue in the GitHub repository](https://github.com/mattermost/mattermost-server/issues/new). Alternatively, don't hesitate to come chat about it in the [Contributors](https://community.mattermost.com/core/channels/tickets) or [Developers](https://community.mattermost.com/core/channels/developers) channels.
|
The best way to discuss opening a `Help Wanted` ticket with the core team is by [starting a conversation in Contributors channel](https://community.mattermost.com/core/channels/focalboard) or [opening an issue in the GitHub repository](https://github.com/mattermost/focalboard/issues/new).
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
title: "Core Committers"
|
title: "Core Committers"
|
||||||
date: 2017-08-20T12:33:36-04:00
|
date: 2021-02-03T08:00:00-00:00
|
||||||
weight: 4
|
weight: 4
|
||||||
subsection: Getting Started
|
subsection: Getting Started
|
||||||
---
|
---
|
||||||
|
|
83
website/site/content/contribute/getting-started/dev-tips.md
Normal file
83
website/site/content/contribute/getting-started/dev-tips.md
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
---
|
||||||
|
title: "Developer Tips & Tricks"
|
||||||
|
date: 2021-02-03T00:08:00-00:00
|
||||||
|
weight: 1
|
||||||
|
subsection: Getting Started
|
||||||
|
---
|
||||||
|
|
||||||
|
## Install pre-reqs
|
||||||
|
|
||||||
|
Check that you have recent versions of the basic dependencies installed:
|
||||||
|
* [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
||||||
|
* On Windows, install [Git for Windows](https://gitforwindows.org/) and use the git-bash terminal shell
|
||||||
|
* [Go](https://golang.org/doc/install)
|
||||||
|
* [Node](https://nodejs.org/en/download/) (v10+) and [npm](https://www.npmjs.com/get-npm)
|
||||||
|
|
||||||
|
On Windows:
|
||||||
|
* `npm install -g win-node-env` for npm run to work
|
||||||
|
* Install [Mingw64](https://chocolatey.org/packages/mingw) via [Chocolatey](https://chocolatey.org/)
|
||||||
|
|
||||||
|
On Mac, to build the Mac app:
|
||||||
|
* Install [Xcode](https://apps.apple.com/us/app/xcode/id497799835?mt=12) (v12+)
|
||||||
|
* Install the Xcode commandline tools, via the IDE or run `xcode-select --install`
|
||||||
|
|
||||||
|
On Linux, to build the Linux app:
|
||||||
|
* `sudo apt-get install libgtk-3-dev`
|
||||||
|
* `sudo apt-get install libwebkit2gtk-4.0-dev`
|
||||||
|
|
||||||
|
## Clone the project source code
|
||||||
|
|
||||||
|
Clone the [GitHub repo here](https://github.com/mattermost/focalboard).
|
||||||
|
|
||||||
|
## VSCode Setup
|
||||||
|
|
||||||
|
Here's a recommended dev-test loop using VSCode:
|
||||||
|
* Open a bash terminal window to the project folder
|
||||||
|
* Run `make prebuild` to npm install
|
||||||
|
* Do this again when dependencies change in `webapp/package.json`
|
||||||
|
* Run `cd webapp && npm run watchdev`
|
||||||
|
* This will auto-build the webapp on file changes
|
||||||
|
* Open VSCode
|
||||||
|
* Install the [Go](https://marketplace.visualstudio.com/items?itemName=golang.Go) and [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) VSCode extensions if you haven't already
|
||||||
|
* Hit F5 and select `Go: Launch Server`
|
||||||
|
* Or, press `Cmd+P` and type `debug <space>` and pick the option
|
||||||
|
* Open a browser to `http://localhost:8000`
|
||||||
|
* The port is configured in `config.json`
|
||||||
|
|
||||||
|
You can now edit the webapp code and refresh the browser to see your changes.
|
||||||
|
|
||||||
|
## Debugging the web app
|
||||||
|
|
||||||
|
You can use your favorite browser to debug the webapp code. With Chrome, open the dev tools with `Cmd+Alt+I` (`Ctrl+Alt+I` in Windows).
|
||||||
|
* `npm run watchdev` builds the dev package, which includes source maps from js to typescript
|
||||||
|
* In the Chrome devtools source tab, press `Cmd+P` to jump to a source file
|
||||||
|
|
||||||
|
As a starting point, add a breakpoint to the `render()` function in `BoardPage.tsx`, then refresh the browser to walk through page rendering.
|
||||||
|
|
||||||
|
## Debugging the server
|
||||||
|
|
||||||
|
Debug the Go code in VSCode. This is set up automatically when you launch the server from there.
|
||||||
|
|
||||||
|
To start, add a breakpoint to `handleGetBlocks()` in `server/api/api.go`, then refresh the browser to see how data is retrieved.
|
||||||
|
|
||||||
|
## Localization / Internationalization / Translation
|
||||||
|
|
||||||
|
We use `i18n` to localize the web app. Localized string generally use `intl.formatMessage`.
|
||||||
|
|
||||||
|
When adding or modifying localized strings, run `npm run i18n-extract` in `webapp` to rebuild `webapp/i18n/en.json`.
|
||||||
|
|
||||||
|
Translated strings are stored in other json files under `webapp/i18n`, e.g. `es.json` for Spanish.
|
||||||
|
|
||||||
|
## Database
|
||||||
|
|
||||||
|
By default, data is stored in a sqlite datebase `focalboard.db`. You can view and edit this directly using `sqlite3 focalboard.db` from bash.
|
||||||
|
|
||||||
|
## Unit tests
|
||||||
|
|
||||||
|
Before checking-in commits, run: `make ci`, which is simlar to the ci.yml workflow and includes:
|
||||||
|
* Server unit tests: `make server-test`
|
||||||
|
* Webapp eslint: `cd webapp; npm run check`
|
||||||
|
* Webapp unit tests: `cd webapp; npm run test`
|
||||||
|
* Webapp UI tests: `cd webapp; npm run cypress:ci`
|
||||||
|
|
||||||
|
glhf! :)
|
Loading…
Reference in a new issue