1
0
mirror of https://github.com/mattermost/focalboard.git synced 2024-12-21 13:38:56 +02:00

GH-Pages: Move contributors guide to GitHub (#2298)

* GH-Pages: Move contributors guide to GitHub

* Fix URL
This commit is contained in:
Chen-I Lim 2022-02-09 08:17:46 -08:00 committed by GitHub
parent 73420bcf2a
commit 16120e43d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 39 additions and 272 deletions

View File

@ -1,18 +1,18 @@
# Code Contribution Guidelines
Thank you for your interest in contributing! Please see the [Focalboard Contribution Guide](https://www.focalboard.com/contribute/getting-started/) which describes the process for making code contributions, and [join our Focalboard community channel](https://community.mattermost.com/core/channels/focalboard) to ask questions from community members and the core team.
Thank you for your interest in contributing! Please see the [Focalboard Contribution Guide](https://mattermost.github.io/focalboard/) which describes the process for making code contributions, and [join our Focalboard community channel](https://community.mattermost.com/core/channels/focalboard) to ask questions from community members and the core team.
When you submit a pull request, it goes through a [code review process outlined here](https://www.focalboard.com/contribute/getting-started/code-review/).
When you submit a pull request, it goes through a [code review process outlined here](https://mattermost.github.io/focalboard/code-review).
# Updating Changelog
After a noteable bug fix or an improvement you've submitted is merged, please consider making a pull request to the [CHANGELOG.md](https://github.com/mattermost/focalboard/blob/main/CHANGELOG.md) under the next release section.
After a noteable bug fix or an improvement you've submitted is merged, please consider making a pull request to the [CHANGELOG.md](https://github.com/mattermost/focalboard/blob/main/CHANGELOG.md) under the next release section.
# Bug reports
Please file a [GitHub issue](https://github.com/mattermost/focalboard/issues) if anything isn't working the way you expect.
# Documentation
# Documentation
You can contribute to our documentation in the [Mattermost Boards documentation](https://docs.mattermost.com/guides/boards.html). Read more about how the contribution process works in the repo [README](https://github.com/mattermost/docs/blob/master/README.md). Visit the [Documentation Working Group channel](https://community.mattermost.com/core/channels/dwg-documentation-working-group) on our Community server if you have any questions!

View File

@ -45,7 +45,7 @@ Download the latest server release from [GitHub releases](https://github.com/mat
## Building the server
Most development can be done on the Personal Server edition. Please refer to the [Developer's Tips & Tricks](https://www.focalboard.com/contribute/getting-started/dev-tips/) for more detailed steps. Here's a summary:
Most development can be done on the Personal Server edition. Please refer to the [Developer's Tips & Tricks](https://mattermost.github.io/focalboard/dev-tips) for more detailed steps. Here's a summary:
First, install basic dependencies:
* Go 1.15+

View File

@ -1,6 +1,6 @@
# Code Review Checklist
Currently, all changes to the product must be reviewed by a [core committer](/contribute/getting-started/core-committers/#core-committers).
Currently, all changes to the product must be reviewed by a [core committer](core-committers).
## If you are a community member seeking a review

20
docs/core-committers.md Normal file
View File

@ -0,0 +1,20 @@
# Core Committers
A core committer is a maintainer on the Focalboard project who has merge access to the repositories. They are responsible for reviewing pull requests, cultivating the developer community, and guiding the technical vision of Focalboard. If you have a question or need some help, these are the people to ask.
## Core Committers
Below is the list of core committers working on Focalboard:
- **<a name="scott.bishel">Scott Bishel</a>**
- @scott.bishel on [community.mattermost.com](https://community.mattermost.com/core/messages/@scott.bishel) and [@sbishel](https://github.com/sbishel) on GitHub
- **<a name="jesús.espino">Jesús Espino</a>**
- @jesus.espino on [community.mattermost.com](https://community.mattermost.com/core/messages/@jesus.espino) and [@jespino](https://github.com/jespino) on GitHub
- **<a name="doug.lauder">Doug Lauder</a>**
- @doug.lauder on [community.mattermost.com](https://community.mattermost.com/core/messages/@doug.lauder) and [@wiggin77](https://github.com/wiggin77) on GitHub
- **<a name="miguel.delacruz">Miguel de la Cruz</a>**
- @miguel.delacruz on [community.mattermost.com](https://community.mattermost.com/core/messages/@miguel.delacruz) and [@mgdelacroix](https://github.com/mgdelacroix) on GitHub
- **<a name="harshil.sharma">Harshil Sharma</a>**
- @harshil.sharma on [community.mattermost.com](https://community.mattermost.com/core/messages/@harshil.sharma) and [@harshilsharma63](https://github.com/harshilsharma63) on GitHub
- **<a name="chen.lim">Chen Lim</a>**
- @chen-i.lim on [community.mattermost.com](https://community.mattermost.com/core/messages/@chen-i.lim) and [@chenilim](https://github.com/chenilim) on GitHub

View File

@ -8,4 +8,4 @@ This subfolder contains scripts to import data from other systems. It is at an e
* Todoist
* Nextcloud Deck
[Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
[Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -10,4 +10,4 @@ This node app converts an Asana json archive into a Focalboard archive. To use:
## Import scope
Currently, the script imports all cards from a single board, including their section (column) membership, names, and notes. [Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
Currently, the script imports all cards from a single board, including their section (column) membership, names, and notes. [Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -20,4 +20,4 @@ The following aren't currently imported:
* Comments
* Embedded files
[Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
[Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -11,6 +11,6 @@ This node app converts data from a Nextcloud Server with the [app Deck](https://
## Import scope
Currently, the script imports all cards from a single board, including their stacks (column) membership, labels, names, descriptions, duedate and comments. [Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
Currently, the script imports all cards from a single board, including their stacks (column) membership, labels, names, descriptions, duedate and comments. [Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -15,4 +15,4 @@ Currently, the script imports all cards from a single board, including their pro
The Notion export format does not preserve property types, so the script currently imports all card properties as a Select type. You can change the type after importing into Focalboard.
[Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
[Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -11,6 +11,6 @@ This node app converts a Trello json archive into a Focalboard archive. To use:
## Import scope
Currently, the script imports all cards from a single board, including their list (column) membership, names, and descriptions. [Contribute code](https://www.focalboard.com/contribute/getting-started/) to expand this.
Currently, the script imports all cards from a single board, including their list (column) membership, names, and descriptions. [Contribute code](https://mattermost.github.io/focalboard/) to expand this.

View File

@ -72,7 +72,7 @@ pygmentsStyle = "manni"
weight = 2
[[menu.postpend]]
url = "/contribute/getting-started"
url = "https://mattermost.github.io/focalboard/"
name = "Contribute"
weight = 3
@ -125,7 +125,7 @@ pygmentsStyle = "manni"
[[params.intro.item]]
title = "Contribute"
description = "Help build the future of productivity and submit code directly to the Focalboard open-source project."
url = "contribute/getting-started"
url = "https://mattermost.github.io/focalboard/"
button = "Start Contributing"
icon = "/img/contribute-icon.svg"
draft = false

View File

@ -56,7 +56,7 @@ Please [get in touch](https://www.focalboard.com/feedback/)!
## Want to Contribute?
We’d love your help!
Help shape the future of Focalboard by contributing ideas, bug reports, and code. Check out our [community page](https://www.focalboard.com/contribute/getting-started/) or [GitHub repo](https://github.com/mattermost/focalboard) to get started.
Help shape the future of Focalboard by contributing ideas, bug reports, and code. Check out our [community page](https://mattermost.github.io/focalboard/) or [GitHub repo](https://github.com/mattermost/focalboard) to get started.
You can also browse GitHub tickets with a “[help wanted](https://github.com/mattermost/focalboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22Up+for+grabs%22)” tag to see what projects are available.

View File

@ -64,7 +64,7 @@ Continuing to get feedback from you, our community is vital to us. Focalboard (a
We’d love your help!
Help shape the future of Focalboard by contributing ideas, bug reports, and code. Check out our [community page](https://www.focalboard.com/contribute/getting-started/) or [GitHub repo](https://github.com/mattermost/focalboard) to get started.
Help shape the future of Focalboard by contributing ideas, bug reports, and code. Check out our [community page](https://mattermost.github.io/focalboard/) or [GitHub repo](https://github.com/mattermost/focalboard) to get started.
You can also browse GitHub tickets with a “[up for grabs](https://github.com/mattermost/focalboard/issues?q=is%3Aissue+is%3Aopen+label%3A%22Up+for+grabs%22)” tag to see what projects are available.

View File

@ -1,18 +0,0 @@
---
title: "Getting Started"
date: "2018-05-19T12:01:23-04:00"
section: "contribute"
weight: 1
---
Welcome to the Focalboard project!
We're very glad you want to check it out and perhaps contribute code our repository in GitHub.
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="[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="3" title="Start developing" content="When your changes are ready, run through our [checklist for pull requests](/contribute/getting-started/contribution-checklist). Note that if it’s your first contribution, there is a standard [CLA](https://www.mattermost.org/mattermost-contributor-agreement/) to sign." >}}

View File

@ -1,66 +0,0 @@
---
title: "Code Review"
date: 2021-02-03T08:00:00-00:00
weight: 5
subsection: Getting Started
---
Currently, all changes to the product must be reviewed by a [core committer](/contribute/getting-started/core-committers/#core-committers).
<!-- * Documentation changes must be reviewed by a [product manager](/contribute/getting-started/core-committers/#product-managers).
* Product managers may ask for reviews from [core committers](/contribute/getting-started/core-committers/#core-committers) and [QA testers](/contribute/getting-started/core-committers/#qa-testers) as required. -->
If you are a community member seeking a review
----------------------------------------------
1. Submit your pull request.
* Follow the [contribution checklist](../contribution-checklist/).
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 [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)).
* Keep in mind that core committers are geographically distributed around the world and likely in a different time zone than your own.
* If no interaction has occurred after 5 business days, please at-mention a reviewer with a comment on your PR.
4. Make any necessary changes.
* If a reviewer requests changes, your pull request will disappear from their queue of reviews.
* Once you've addressed the concerns, please at-mention the reviewer with a comment on your PR.
5. Wait for your code to be merged.
* Larger pull requests may require more time to review.
* Once all reviewers have approved your changes, they will handle merging your code.
If you are awaiting a review
----------------------------
1. Wait patiently for reviews to complete.
* Expect some interaction with each of your reviewers within 5 business days.
* There is no need to explicitly mention them on the pull request or to explicitly reach out on our community server.
2. Make any necessary changes.
* If a reviewer requests changes, your pull request will disappear from their queue of reviews.
* Once you've addressed the concerns, assign them as a reviewer again to put your pull request back in their queue.
If you are a core committer asked to give a review
--------------------------------------------------
1. Respond promptly to requested reviews.
* Assume the requested review is urgent and blocking unless explicitly stated otherwise.
* Try to interact with the author within 2 business days.
* Configure the GitHub plugin to automate notifications.
* Review your outstanding requested reviews daily to avoid blocking authors.
* Prioritize earlier milestones when reviewing to help with the release process.
* Responding quickly doesn't necessarily mean reviewing quickly! Just don't leave the author hanging.
2. Feel free to clarify expectations with the author.
* If the code is experimental, they may need only a cursory glance and thumbs up to proceed with productizing their changes.
* If the review is large or complex, additional time may be required to complete your review. Be upfront with the author.
* If you are not comfortable reviewing the code, avoid "rubber stamping" the review. Be honest with the author and ask them to consider another core committer.
3. Never rush a review.
* Take the time necessary to review the code thoroughly.
* Don't be afraid to ask for changes repeatedly until all concerns are addressed.
* Feel free to challenge assumptions and timelines. Rushing a change into a patch release may cause more harm than good.
4. Avoid leaving a review hanging.
* Try to accept or reject the review instead of just leaving comments.
5. Merge the pull request.
* Do not merge if there are outstanding changes requested.
* Merge the pull request, and delete the branch if not from a fork.

View File

@ -1,27 +0,0 @@
---
title: "Contribution Checklist"
date: 2021-02-03T08:00:00-00:00
weight: 2
subsection: Getting Started
---
Thanks for your interest in contributing code!
<!-- Come join our [Contributors community channel](https://community.mattermost.com/core/channels/tickets) on the community server, where you can discuss questions with community members and the Focalboard core team. -->
<!-- To help with translations, [see the localization process](https://docs.mattermost.com/developer/localization.html). -->
Follow this checklist for submitting a pull request (PR):
1. You've signed the [Contributor License Agreement](http://www.mattermost.org/mattermost-contributor-agreement/), so you can be added to the Mattermost [Approved Contributor List](https://docs.google.com/spreadsheets/d/1NTCeG-iL_VS9bFqtmHSfwETo5f-8MQ7oMDE5IUYJi_Y/pubhtml?gid=0&single=true).
2. Your ticket is a Help Wanted GitHub issue for the project you're contributing to.
- If not, follow the process [here](/contribute/getting-started/contributions-without-ticket).
3. Your code is thoroughly tested, including appropriate unit tests, and manual testing.
4. If applicable, user interface strings are included in the localization file ([en.json](https://github.com/mattermost/focalboard/blob/main/webapp/i18n/en.json))
- In the webapp folder, run `npm run i18n-extract` to generate the new/updated strings.
5. The PR is submitted against the `main` branch from your fork.
6. The PR title begins with the GitHub Ticket ID (e.g. `[GH-394]`) and the summary template is filled out.
Once submitted, the automated build process must pass in order for the PR to be accepted. Any errors or failures need to be addressed in order for the PR to be accepted. Next, the PR goes through [code review](../code-review/). To learn about the review process for each project, read the `CONTRIBUTING.md` file of that GitHub repository.
<!-- That's all! If you have any feedback about this checklist, let us know in the [Contributors channel](https://community.mattermost.com/core/channels/tickets). -->

View File

@ -1,20 +0,0 @@
---
title: "Contributions Without Ticket"
date: 2021-02-03T08:00:00-00:00
weight: 3
subsection: Getting Started
---
Contributions for minor corrections and improvements without a corresponding `Help Wanted` ticket are welcome. For example, a pull request for a bug or incremental improvement, with less than 20 lines of code change, is usually accepted if the change to existing behaviour is minor.
All pull requests submitted without a corresponding ticket will first be reviewed by a core team product manager. Some examples of minor corrections and improvements include:
- [Fix a formatting error in help text](https://github.com/mattermost/mattermost-server/pull/5640)
- [Fix success typo in Makefile](https://github.com/mattermost/mattermost-server/pull/5809)
- [Fix broken Cancel button in Edit Webhooks screen](https://github.com/mattermost/mattermost-server/pull/5612)
- [Fix Android app crashing when saving user notification settings](https://github.com/mattermost/mattermost-mobile/pull/364)
- [Fix recent mentions search not working](https://github.com/mattermost/mattermost-server/pull/5878)
**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 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,20 +0,0 @@
---
title: "Core Committers"
date: 2021-02-03T08:00:00-00:00
weight: 4
subsection: Getting Started
---
A core committer is a maintainer on the Focalboard project who has merge access to the repositories. They are responsible for reviewing pull requests, cultivating the developer community, and guiding the technical vision of Focalboard. If you have a question or need some help, these are the people to ask.
Core Committers
---------------
Below is the list of core committers working on Focalboard:
- **<a name="chen.lim">Chen Lim</a>**
- @chen-i.lim on [community.mattermost.com](https://community.mattermost.com/core/messages/@chen-i.lim) and [@chenilim](https://github.com/chenilim) on GitHub
- **<a name="jesús.espino">Jesús Espino</a>**
- @jesus.espino on [community.mattermost.com](https://community.mattermost.com/core/messages/@jesus.espino) and [@jespino](https://github.com/jespino) on GitHub
- **<a name="corey.hulen">Corey Hulen</a>**
- @corey on [community.mattermost.com](https://community.mattermost.com/core/messages/@corey) and [@coreyhulen](https://github.com/coreyhulen) on GitHub

View File

@ -1,102 +0,0 @@
---
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:
* 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).
## Build and run from the terminal
Follow the steps in the [main readme file](https://github.com/mattermost/focalboard#building-the-server). In summary, to build and run the server:
```
make prebuild
make
./bin/focalboard-server
```
Then open a browser to `http://localhost:8000` to access it. The port is configured in `config.json`.
Once the server is running, you can rebuild just the webapp with `make webapp` (in a separate terminal window), then reload the browser.
## 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 database `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`
## Running into problems or have questions?
If you run into any issues with the steps here, or have any general questions, please don't hesitate to reach out either on [GitHub](https://github.com/mattermost/focalboard) or our [Mattermost community channel](https://community.mattermost.com/core/channels/focalboard).
We welcome everyone, and appreciate any feedback.
glhf! :)

View File

@ -7,7 +7,7 @@ weight: 2
This guide is an overview of the basic features to get you started. Focalboard is an open source project that is being updated continuously.
[Let us know](/feedback/) if there's a feature you are looking for, or [connect with our vibrant community](/contribute/getting-started/) to help bring it to life.
[Let us know](/feedback/) if there's a feature you are looking for, or [connect with our vibrant community](https://mattermost.github.io/focalboard/) to help bring it to life.
## Adding new Boards

View File

@ -28,7 +28,7 @@ theme = "hugo-elate-theme"
# postpended links
[[menu.postpend]]
url = "/contribute/"
url = "https://mattermost.github.io/focalboard/"
name = "Contribute"
weight = 10
@ -44,7 +44,7 @@ theme = "hugo-elate-theme"
[[params.intro.item]]
title = "Contribute"
description = "Join the hunrdeds of contributors and submit code directly to the Focalboard open-source project."
url = "/contribute/"
url = "https://mattermost.github.io/focalboard/"
button = "Start Contributing"
icon = "icon-bulb"
img = "img_7.jpg"