Contributing#
manen
is an open-source package meaning that you can contribute to the source
in order to add new features, fix bugs. The progress of the project will be tracked
directly in Github through issues. If you found any bug, don’t hesitate to open an
issue (if one isn’t opened yet about the same bug) or/and open a pull request.
Reproducing a development environment#
manen
has been developed with Python 3.8, using Pipenv to manage the development
environment. If you want to help in the development of manen
, reproducing a dev
environment similar to the original one will be needed. To do so, you can whether
use Pipenv to recreate the environment with the command
$ pipenv sync
Note that using Pipenv is not required. You can reproduce the development environment by re-installing the same package specified in the setup file of the package
$ pip install -e ".[doc,test,lint]"
This will install manen
with extra dependencies for development workflows, described
in the next section.
Note that building the documentation will require to install Pandoc, a universal document converter. All the instructions to do so can be found here.
Development workflows#
Besides the core for the core of manen
, several workflows exists to document the code and
ensure code quality. Each workflow requires some dependencies which can be installed as extra
with pip
, with the command pip install -e .[{extra}]
.
- Documentation
Extra pip options:
doc
Workflow used to build HTML pages for the documentation
Command
Build the documentation
$ cd docs && make html
Trigger a build of the documentation for any changes in the source
sphinx-autobuild can be used to launch a process that will watch any modification in the source files of the package or documentation and re-build the HTML pages at each event.
$ pip install sphinx-autobuild $ sphinx-autobuild docs/source docs/build/html --watch manen/
- Testing
Extra pip options:
test
Workflow that will run tests for the whole package.
Command
Launching all the tests
$ pytest
- Linting
Extra pip options:
lint
Workflow to ensure some syntaxical quality for the source code.
Command
Checking tha the imports are well sorted
$ isort --check-only manen/
Linting all the files
$ pylint -E --rcfile=./.pylintrc ./manen/