From fe21fd417e9ec4b864f7622aba215124e5080870 Mon Sep 17 00:00:00 2001 From: Chen-I Lim Date: Wed, 3 Feb 2021 15:16:24 -0800 Subject: [PATCH] Update contributor website --- .../contribute/getting-started/_index.md | 2 +- .../contribute/getting-started/code-review.md | 4 +- .../getting-started/contribution-checklist.md | 4 +- .../contributions-without-ticket.md | 6 +- .../getting-started/core-committers.md | 2 +- .../contribute/getting-started/dev-tips.md | 83 +++++++++++++++++++ 6 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 website/site/content/contribute/getting-started/dev-tips.md diff --git a/website/site/content/contribute/getting-started/_index.md b/website/site/content/contribute/getting-started/_index.md index 3d0462b97..234e79908 100644 --- a/website/site/content/contribute/getting-started/_index.md +++ b/website/site/content/contribute/getting-started/_index.md @@ -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 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)" >}} diff --git a/website/site/content/contribute/getting-started/code-review.md b/website/site/content/contribute/getting-started/code-review.md index 7aa933f92..734d5696b 100644 --- a/website/site/content/contribute/getting-started/code-review.md +++ b/website/site/content/contribute/getting-started/code-review.md @@ -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)). diff --git a/website/site/content/contribute/getting-started/contribution-checklist.md b/website/site/content/contribute/getting-started/contribution-checklist.md index aaa7a4af2..fcf981a00 100644 --- a/website/site/content/contribute/getting-started/contribution-checklist.md +++ b/website/site/content/contribute/getting-started/contribution-checklist.md @@ -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 --- diff --git a/website/site/content/contribute/getting-started/contributions-without-ticket.md b/website/site/content/contribute/getting-started/contributions-without-ticket.md index ff832ff5e..9ee9e06f1 100644 --- a/website/site/content/contribute/getting-started/contributions-without-ticket.md +++ b/website/site/content/contribute/getting-started/contributions-without-ticket.md @@ -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). diff --git a/website/site/content/contribute/getting-started/core-committers.md b/website/site/content/contribute/getting-started/core-committers.md index dee1b48c9..5172aba5c 100644 --- a/website/site/content/contribute/getting-started/core-committers.md +++ b/website/site/content/contribute/getting-started/core-committers.md @@ -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 --- diff --git a/website/site/content/contribute/getting-started/dev-tips.md b/website/site/content/contribute/getting-started/dev-tips.md new file mode 100644 index 000000000..d208ef89e --- /dev/null +++ b/website/site/content/contribute/getting-started/dev-tips.md @@ -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 ` 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! :)