Contributing#

Installation for development#

Something does not work and you wish to fix it? Are you curious to see how it works? For development:

# First install Nek5000
git clone https://github.com/snek5000/Nek5000.git
export NEK_SOURCE_ROOT=$PWD/Nek5000

git clone https://github.com/snek5000/snek5000.git
cd snek5000

Now you should setup a Python environment. Here, we show how to do it with the package venv:

python -m venv venv
source venv/bin/activate

Finally, to install in development mode:

pip install pip-tools nox
nox -s sync

Note

From the root directory of the project, one can then activate the dev environment with:

source activate.sh

General guidelines#

  • Style guide: For Python code, black, isort and flake8 are used to check and lint. Installing pre-commit would enforce the style automatically as a Git hook.

    pre-commit install
    
  • Branching model: The development uses branches and pull-requests for experimental features. You may find the following Git branches when you clone snek5000:

    • main: main branch

    • fix/..., enh/...: feature branches

  • Testing: Run pytest from the top-level directory. The test-cases can be found under tests/ directory. To run the slow tests too execute pytest --runslow.

  • Debugging: Set the environment variable:

    export SNEK_DEBUG=true
    

    to activate debugging logs and longer tests.

See also our Developer Guide.

Goodies#

See here.