Contribution guidelines¶
I am completely open to suggestions, criticism, and collaborators. Feel free to open issues and label them accordingly.
Before sending a Pull Request, please make sure that you’re assigned the task on a GitLab issue.
- If a relevant issue already exists, discuss on the issue and get it assigned to yourself on GitLab.
- If no relevant issue exists, open a new issue and get it assigned to yourself on GitLab.
Git Workflow¶
This project follows a simple Git Workflow [1][2]:
Branch off the latest master and name the branch
<descriptive_name>-<issue_number>git clone https://gitlab.com/cegal/MOE.git cd MOE # activate your python venv pip install -r requirements.txt git checkout -b add-hello-world-support-42
Keep your branch up to date by rebasing on top of master .. code-block:: bash
git fetch origin git rebase origin/master
When you are done, push your branch and open a Pull Request in GitLab .. code-block:: bash
git push -u origin add-hello-world-support-42
Once the Pull Request is approved, perform an explicit merge .. code-block:: bash
git checkout master git pull origin master git merge –no-ff add-hello-world-support-42
Pull Request Checklist¶
In order to keep a homogenious naming convention, you have to name your implementations of Reader, Writer and Mailer with a name ending in
-er(:You may find useful my configuration file for VSCode and editorconfig.
It is highly recommended that you use the root Makefile as git pre-commit hook, as it will do everything all for you (linting, testing, documentation)
#.git/hooks/pre-commit #!/bin/sh make validate then ``chmod +x .git/hooks/pre-commit``
Your code must pass the linting (Pylint, Flake8), as well as remove trailing whitespace of all files.
If your contribution adds/modifies
MOEs functionality, please add appropriate tests.Please add appropriate documentation to your code in Google Style.
If your contribution requires extra dependencies, please mention it in the Pull Request and update project’s depencencies:
pip freeze > requirements.txt
Vulnerabilities¶
If you find any vulnerabilities, please open an Issue and add the label Vulnerability. It will be handled as top priority issue.