Development =========== When installing the package from source for development instead, it is recommended to install it in editable mode, which simply creates a link to the sources so all changes are reflected in the installed package immediately. The command will also install some additional development dependencies as defined in ``pyproject.toml``. .. code-block:: shell pip3 install -e .[dev] Especially for development, running the installation inside a virtual environment is recommended, see `Virtualenv `__ for more information. At this point, it is also recommended to install the `pre-commit `__ hooks by running: .. code-block:: shell pre-commit install Besides pre-commit, `Pylint `__ is used as a static code analysis tool. It can be used to check the whole project by running: .. code-block:: shell pylint workflow_nodes For contributions, it is recommended to first create a fork of this project and clone it. The main repository can be added as an additional remote to the cloned project, often called ``upstream``. Afterwards, you may follow the following steps as a rough guideline on how to add a new tool: * Create a Python file for the tool in a fitting subdirectory (if one exists), e.g. in ``workflow_nodes/system/``, and implement the functionality of the tool. You can use other existing tools (and tool groups/directories) as a reference. Also, make sure to import the tool in the ``main.py`` file of the group, so it is actually added to the respective parent command. * If there are any new dependencies, add them to ``pyproject.toml`` with appropriate version ranges, if necessary. * Add an entry about any new functionality to ``HISTORY.md``. You may also add yourself as a contributor to ``AUTHORS.md``. * Before creating a merge request on the main repository, make sure the GitLab CI runs through successfully in your fork.