If you are interested in contributing to DeepDriveMD, your contributions will fall into two categories:
- You want to implement a new feature:
- In general, we accept any features as long as they fit the scope of this package. If you are unsure about this or need help on the design/implementation of your feature, post about it in an issue.
- You want to fix a bug:
- Please post an issue using the Bug template which provides a clear and concise description of what the bug was.
Once you finish implementing a feature or bug-fix, please send a Pull Request to https://github.com/DeepDriveMD/DeepDriveMD-pipeline.
To develop DeepDriveMD on your machine, please follow these instructions:
- Clone a copy of DeepDriveMD from source:
git clone https://github.com/DeepDriveMD/DeepDriveMD-pipeline.git
cd DeepDriveMD-pipeline
- If you already have a DeepDriveMD from source, update it:
git pull
- Install DeepDriveMD in
develop
mode:
python3 -m venv env
source env/bin/activate
python -m pip install --upgrade wheel pip
python -m pip install -r requirements_dev.txt
This mode will symlink the Python files from the current local source tree into the Python install. Hence, if you modify a Python file, you do not need to reinstall DeepDriveMD again and again.
- Ensure that you have a working deepdrivemd installation by running:
python -c "import deepdrivemd; print(deepdrivemd.__version__)"
- Before pushing changes to the repository, please run the dev tools to enforce consistent style, sorting of imports, linting and type checking with mypy:
make
We are planning to add a test suite in a future release which uses pytest for unit testing.
To build the documentation:
- Build and install DeepDriveMD from source.
- The
requirements_dev.txt
contains all the dependencies needed to build the documentation. - Generate the documentation file via:
cd DeepDriveMD-pipeline/docs
make html
The docs are located in DeepDriveMD-pipeline/docs/build/html/index.html
.
To view the docs run: open DeepDriveMD-pipeline/docs/build/html/index.html
.
To release a new version of deepdrivemd to PyPI:
- Merge the
develop
branch into themain
branch with an updated version number indeepdrivemd.__init__
. - Make a new release on GitHub with the tag and name equal to the version number.
- Build and install deepdrivemd from source.
- Run the following commands:
python setup.py sdist
twine upload dist/*