Contributing
That would be awesome if you want to contribute something to Diffulex!
Table of Contents
- Report Bugs
- Ask Questions
- Submit Pull Requests
- Setup Development Environment
- Install Develop Version
- Lint Check
- Test Locally
- Build Wheels
- Documentation
Report Bugs
If you run into any weird behavior while using Diffulex, feel free to open a new issue in this repository! Please run a search before opening a new issue, to make sure that someone else hasn't already reported or solved the bug you've found.
Any issue you open must include:
- Code snippet that reproduces the bug with a minimal setup.
- A clear explanation of what the issue is.
Ask Questions
Please ask questions in issues.
Submit Pull Requests
All pull requests are super welcomed and greatly appreciated! Issues in need of a solution are marked with a ♥ help label if you're looking for somewhere to start.
If you're new to contributing to Diffulex, you can follow the following guidelines before submitting a pull request.
Please include tests and docs with every pull request if applicable!
Setup Development Environment
Before contributing to Diffulex, please follow the instructions below to setup.
Fork Diffulex (fork) on GitHub and clone the repository.
git clone --recurse-submodules git@github.com:<your username>/Diffulex.git # use the SSH protocol cd Diffulex git remote add upstream git@github.com:zhijie-group/Diffulex.gitSetup a development environment:
uv venv --seed .venv # use `python3 -m venv .venv` if you don't have `uv` source .venv/bin/activate python3 -m pip install --upgrade pip setuptools wheel "build[uv]" uv pip install --requirements requirements-dev.txtSetup the
pre-commithooks:pre-commit install --install-hooks
Then you are ready to rock. Thanks for contributing to Diffulex!
Install Develop Version
To install Diffulex in an "editable" mode, run:
python3 -m pip install --no-build-isolation --verbose --editable .
in the main directory. This installation is removable by:
python3 -m pip uninstall diffulex
We also recommend installing Diffulex in a more manual way for better control over the build process, by compiling the C++ extensions first and set the PYTHONPATH. See the documentation for detailed instructions.
Lint Check
To check the linting, run:
pre-commit run --all-files
Test Locally
To run the tests, start by building the project as described in the Setup Development Environment section.
Then you can rerun the tests with:
python3 -m pytest testing
Build Wheels
TBA
Documentation
TBA