Update contributor website

This commit is contained in:
Chen-I Lim 2021-02-03 15:16:24 -08:00
parent aab2bb87bf
commit fe21fd417e
6 changed files with 92 additions and 9 deletions

View file

@ -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:
{{< 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 youre working on it. If theres no ticket for what you want to work on see [contributions without a ticket.](/contribute/getting-started/contributions-without-ticket)" >}}

View file

@ -1,6 +1,6 @@
---
title: "Code Review"
date: 2018-03-06T00:00:00-04:00
date: 2021-02-03T08:00:00-00:00
weight: 5
subsection: Getting Started
---
@ -18,7 +18,7 @@ If you are a community member seeking a review
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.
* 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).
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)).

View file

@ -1,7 +1,7 @@
---
title: "Contribution Checklist"
date: 2017-08-20T12:33:36-04:00
weight: 1
date: 2021-02-03T08:00:00-00:00
weight: 2
subsection: Getting Started
---

View file

@ -1,7 +1,7 @@
---
title: "Contributions Without Ticket"
date: 2019-10-11T15:44:36-02:00
weight: 1
date: 2021-02-03T08:00:00-00:00
weight: 3
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.
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).

View file

@ -1,6 +1,6 @@
---
title: "Core Committers"
date: 2017-08-20T12:33:36-04:00
date: 2021-02-03T08:00:00-00:00
weight: 4
subsection: Getting Started
---

View 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! :)