Software Development Guide
To start working on model-ensembler locally, please follow these steps:
- Fork the
model-ensemblerrepo on GitHub. - Clone your fork locally:
3. Install your local copy into a virtualenv:
cd model-ensembler/
python -m venv venv
# Editable installation, including all optional dependencies
pip install -e .[tests, lint, docs]
4. Create a branch for local development:
Now you can make your changes locally.
5. For bigger changes, it is a good idea to first open an issue, and make sure a team agrees it is needed and within scope.
6. When you're done making changes, check that your changes comply with flake8 code styling, pass the tests and that you can build the documentation successfully:
7. Add your changes to docs/changelog.md.
Semantic Versioning
This project adheres to Semantic Versioning. Please refer to the change log for the latest version and instructions on how to increment the version for your changes in __init__.py.
The version number from __init__.py is automatically propagated to pyproject.toml.
If in doubt, do not hesitate to clarify this with the maintainers in your corresponding issue.
If you have introduced any dependencies or executable scripts, make sure to add them under the appropriate headers in pyproject.toml. Check the package still builds successfully:
8. Commit your changes and push your branch to GitHub:
git add .
git commit -m "Your detailed description of your changes."
git push origin name-of-your-bugfix-or-feature
9. Submit a pull request against the main branch on GitHub.
Pull Request Guidelines
Before you submit a Pull Request (PR), check that it meets these guidelines:
- The title of your PR should contain a version number and briefly describe the change, for example: v0.5.7 fixing bug in cli.py.
- The body of your PR should contain
Fixes #issue-number. - The pull request should include tests and pass them, where appropriate.
- If the pull request adds functionality, the documentation should be updated accordingly. Please see the next section for a detailed breakdown of how to contribute to the docs.