Contributing

The community welcomes your contributions to CRUDCreator!

Create your development environment

If you’d like to contribute to CRUDCreator, you’ll first need to create a local development and test environment.

  • You will first need to clone the CRUDCreator git repository on your machine:

    git clone https://github.com/nedelab/crudcreator.git
    
  • In the cloned folder, create a new Python virtual environment:

    cd crudcreator
    python -m venv env
    
  • Then activate the Python virtual environment:

    On a Unix bash :

    . ./env/bin/activate
    

    On Powershell :

    ./env/Scripts/activate.ps1
    
  • Then install the requirements :

    pip install -r requirements.txt
    

Let’s get started! You’re ready to develop on CRUDCreator!

Tests

To simplify testing, we recommend that you have Docker installed locally on your machine. If this isn’t the case, it’s not a problem - you’ll just have to do a bit more work to configure the tests.

Start the postgres test database

With Docker

If you are using the solution with Docker, please follow the steps below:

  • Start your deamon docker.

  • Start the postgres container that will be our test base:

    cd test/data/postgres
    . ./start_dev.ps1
    

Without Docker

If you don’t have Docker installed on your machine, you’ll need to manually install a postgres on it, and configure it so that the config test/setting/postgres.json allows you to connect to it.

Manual testing

You can then start the API and test it manually:

python .\start_app_test.py <CRUDCREATOR_TEST_ENV>

With CRUDCREATOR_TEST_ENV one of the following values :

  • async_postgres

  • postgres

The possible values for CRUDCREATOR_TEST_ENV are the names of the config files in the test/settings folder.

Launch unit tests

To run unit tests in your environment :

  • python .\run_test.py <CRUDCREATOR_TEST_ENV>
    

    With CRUDCREATOR_TEST_ENV the same as in the above section (Manual testing)

Launch unit tests in dockers

The “test/docker” folder contains a set of docker configurations for testing crudcreator with different types of environment (for example, testing crudcreator on different versions of Python and SQLAlchemy).

To launch one of these tests, you must :

  • go to the project root (do not enter “test”)

  • start one of the “run_test.ps1” files. For example :

    . ./test/docker/python3.12/run_test.ps1
    

The folder also contains a number of items for testing the installation and scripts in a docker :

. ./test/docker/installation/run_test.ps1

Contributor License Agreement (CLA)

At the time of your pull request, you will be asked to sign a Contributor License Agreement (CLA).