Skip to content

Commit

Permalink
Add contribution guide #527
Browse files Browse the repository at this point in the history
  • Loading branch information
Florent committed Jun 6, 2023
1 parent 805485e commit 6884955
Show file tree
Hide file tree
Showing 2 changed files with 94 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Welcome to the contribution guide for Grist!

You are eager to contribute to Grist? That's awesome! See below some contributions you can make:
- [translate](/documentation/translate.md)
- [write tutorials and user documentation](https://github.com/gristlabs/grist-help)
- [develop](/documentation/develop.md)
- report issues or suggest enhancement (TODO)

86 changes: 86 additions & 0 deletions documentation/develop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Development

Please as a first start, tell the community about your intent of developing a feature or fix a bug. Search for the associated issue if it exists or open one with steps to reproduce (for bugs) or a [user story](https://en.wikipedia.org/wiki/User_story#Principle) (for features).

## Setup

### Pre-requisites

To setup your environment, you would need to install the following dependencies:
- git
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
- Firefox and/or Chromium to run the end-to-end (nbrowsers) tests
- Python (preferably Python 3.9) and virtualenv
- :warning: As of 2023-06-06, Python 3.11 is not supported due to the version of the [wrapt dependency](https://github.com/GrahamDumpleton/wrapt/issues/196)

### Clone the repository

```bash
$ git clone https://github.com/gristlabs/grist-core
```

Then go to the grist-core root directory before install nodejs through nvm:

```bash
$ cd grist-core/
```

### Setup nodejs

You need to install the supported nodejs version as well as yarn. To do so, at the grist-core root directory, run the following command to install nodejs via nvm:

```bash
$ nvm install
```

Now check that node is installed in the version specified in the `.nvmrc` file:

```bash
$ node --version
```

Then install yarn (the `-g` flag here means that yarn will be available globally):
```bash
$ npm install -g yarn
```

Now each time you want to load nodejs and yarn in your environment, just run the following command at grist-core root directory:

```bash
$ nvm use
```

### Install the python dependencies

Ensure to have Python and virtualenv installed. On debian-based Linux distributions, you can simply run the following command as root:

```bash
# apt install python3.9 python3.9-venv
```

## Start the server in development mode

Just run the following command:
```bash
$ yarn start
```

Each time you change something, just reload the webpage in your browser.

Happy coding!

### Pick an issue

Lost on what you can do to help? If you are new to Grist, you may just pick one of the issues labelled `good first issue`:

https://github.com/gristlabs/grist-core/labels/good%20first%20issue

## Develop widgets

TODO

## Documentation

Some documentation to help you starting developing:
- [Grainjs](https://github.com/gristlabs/grainjs/) (The library used to build the DOM);
- [The user support documentation](https://support.getgrist.com/);

0 comments on commit 6884955

Please sign in to comment.