Contribution

If you are interested in secondary development of Gerapy or contributing to Gerapy, this document details the environment configuration and development process for Gerapy developers.

Preparation

Development Gerapy requires a Python3 environment and a Node.js environment. The recommended versions are Python 3.6 + and Node.js 10.x +. Please install and make sure to use the python3, pip3, node, npm commands.

Cloning Project

First clone Gerapy locally:

git clone https://github.com/Gerapy/Gerapy.git

Once the clone is complete, a Gerapy folder is generated locally.

Dependencies

Go to the Gerapy folder and install the dependencies you need for development:

pip3 install -r requirements.txt

Then install Gerapy locally:

python3 setup.py install

This installs the development version of Gerapy, and if Gerapy was previously installed, this installation will replace the previous version.

The gerapy command can be used after the installation is complete.

Then install the front-end dependencies, the front-end code is in the gerapy/client folder, based on Vue.js development.

Go into the directory and install dependencies.

cd gerapy/client
npm install

This will generate a node_modules folder under gerapy/client.

Run

Here are divided into frontend and backend respectively introduced, the two parts need to start at the same time to work properly.

Backend

For the backend, the gerapy command requires the Gerapy installation package to be available. However, it is tedious to manually install each time after the change during development.

It is recommended to set the parameter configuration in PyCharm IDE, and it is also convenient for debugging.

  • Script path: gerapy/gerapy/cmd/__init__.py, which is the entry file for the command.
  • Running parameters: runserver 0.0.0.0:5000. Note that it needs to run on port 5000, and the frontend will forward the request to port 5000.
  • Environment variables: PYTHONUNBUFFERED=1;APP_DEBUG=true, where APP_DEBUG is to set the debug mode, and more debug logs will be printed.
  • Working path: The working path generated by the gerapy init command.

as the picture shows:

https://qiniu.cuiqingcai.com/2019-12-02-110658.png

After starting in this way, Gerapy Server will run on port 5000, and the console will print out debugging information.

Frontend

For the frontend, in the gerapy/client folder, execute:

npm run serve

It can run on port 8080, and its backend API will be forwarded to port 5000, which is the Gerapy Server just started.

Open http://localhost:8080 to enter Gerapy’s frontend page.

Description

The backend is based on Django development, and the database used is SQLite, whose main logic is in the gerapy/server folder.

The front end is based on Vue.js development and its main logic is in the gerapy/client folder.

Code Release

After the frontend modification is completed, if you want to officially release it, you can directly execute it:

npm run build

The result of the build will go to the backend’s gerapy/server/core/templates folder.

The release of the backend code can be executed directly:

python3 setup.py upload

It will be automatically uploaded to PyPi and tagged on GitHub, but you must have PyPi and GitHub permissions.