mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
Co-authored-by: Florent <florent.fayolle@beta.gouv.fr>
This commit is contained in:
parent
3d808f67f1
commit
6a2010f9f0
8
.github/CONTRIBUTING.md
vendored
Normal file
8
.github/CONTRIBUTING.md
vendored
Normal file
@ -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](https://github.com/gristlabs/grist-core/issues/new)
|
||||||
|
|
124
documentation/develop.md
Normal file
124
documentation/develop.md
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
# Development
|
||||||
|
|
||||||
|
Please as a first start, tell the community about your intent to develop 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
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
To setup your environment, you would need to install the following dependencies:
|
||||||
|
- git
|
||||||
|
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md) (recommended) or nodejs installed on your system
|
||||||
|
- Chromium to run the end-to-end 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
|
||||||
|
```
|
||||||
|
|
||||||
|
And then, enter the grist-core root directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ cd grist-core/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Setup nodejs
|
||||||
|
|
||||||
|
#### Using nvm (recommanded)
|
||||||
|
|
||||||
|
You need to install the supported nodejs version as well as yarn. To do so, in 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
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Using nodejs
|
||||||
|
|
||||||
|
You can also use nodejs installed in your system. To prevent incompatibilities, ensure that the `node --version` command reports a version equal or greater to the one in `.nvmrc`.
|
||||||
|
|
||||||
|
### Install the python packages
|
||||||
|
|
||||||
|
Be sure 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
|
||||||
|
```
|
||||||
|
|
||||||
|
### Install the project dependencies and build
|
||||||
|
|
||||||
|
First install the nodejs dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ yarn install
|
||||||
|
```
|
||||||
|
|
||||||
|
Then prepare the virtual environment with all the python dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ yarn install:python
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally run this to do an initial build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ yarn run build:prod
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## Run tests
|
||||||
|
|
||||||
|
You may run the tests using one of these commands:
|
||||||
|
- `yarn test` to run all the tests
|
||||||
|
- `yarn test:smoke` to run the minimal test checking Grist can open, create and edit a document
|
||||||
|
- `yarn test:nbrowser` to run the end-to-end tests
|
||||||
|
- `yarn test:client` to run the tests for the client libraries
|
||||||
|
- `yarn test:common` to run the tests for the common libraries shared between the client and the server
|
||||||
|
- `yarn test:server` to run the backend tests
|
||||||
|
- `yarn test:docker` to run some end-to-end tests under docker
|
||||||
|
- `yarn test:python` to run the data engine tests
|
||||||
|
|
||||||
|
## Develop widgets
|
||||||
|
|
||||||
|
Check out this repository: https://github.com/gristlabs/grist-widget#readme
|
||||||
|
|
||||||
|
## 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/)
|
Loading…
Reference in New Issue
Block a user