Thank you for your interest in contributing to xaiflow. This document outlines how to contribute to the project.
- Clone the repository:
git clone https://github.com/cloudexplain/xaiflow
cd xaiflow- Create a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- Install in development mode:
pip install -e .- Install development dependencies:
pip install -e ".[dev]"The project is organized as follows:
src/xaiflow/- Main package codetests/- Test suitesdev/- Development tools and frontend build scriptspyproject.toml- Package configurationMANIFEST.in- Package file inclusion rules
We follow Python best practices:
- Use meaningful variable and function names
- Write docstrings for all public functions and classes
- Keep functions focused and small
- Use type hints where appropriate
Before submitting changes:
- Run existing tests:
pytest tests/ - Add tests for new functionality
- Test with a real MLflow experiment to ensure integration works
The frontend components are built with Svelte and compiled to bundle.js. If you need to modify the frontend:
- Navigate to the
dev/directory - Install Node.js dependencies:
npm install - Make your changes to Svelte components
- Build the bundle:
npm run build - Copy the built files to
src/xaiflow/templates/assets/
- Create a new branch for your feature or bug fix
- Make your changes with clear commit messages
- Test your changes thoroughly
- Submit a pull request with a clear description of what you've changed
When reporting issues, please include:
- Python version and operating system
- MLflow version
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Any error messages or logs
If you need help with development or have questions about the codebase:
- Open an issue for discussion
- Check existing issues for similar problems
- Review the project documentation
Please be respectful and constructive in all interactions. We want to maintain a welcoming environment for all contributors.