Skip to content

Latest commit

 

History

History
90 lines (66 loc) · 2.31 KB

File metadata and controls

90 lines (66 loc) · 2.31 KB

Contributing to xaiflow

Thank you for your interest in contributing to xaiflow. This document outlines how to contribute to the project.

Development Setup

  1. Clone the repository:
git clone https://github.com/cloudexplain/xaiflow
cd xaiflow
  1. Create a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. Install in development mode:
pip install -e .
  1. Install development dependencies:
pip install -e ".[dev]"

Project Structure

The project is organized as follows:

  • src/xaiflow/ - Main package code
  • tests/ - Test suites
  • dev/ - Development tools and frontend build scripts
  • pyproject.toml - Package configuration
  • MANIFEST.in - Package file inclusion rules

Making Changes

Code Style

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

Testing

Before submitting changes:

  1. Run existing tests: pytest tests/
  2. Add tests for new functionality
  3. Test with a real MLflow experiment to ensure integration works

Frontend Development

The frontend components are built with Svelte and compiled to bundle.js. If you need to modify the frontend:

  1. Navigate to the dev/ directory
  2. Install Node.js dependencies: npm install
  3. Make your changes to Svelte components
  4. Build the bundle: npm run build
  5. Copy the built files to src/xaiflow/templates/assets/

Submitting Changes

  1. Create a new branch for your feature or bug fix
  2. Make your changes with clear commit messages
  3. Test your changes thoroughly
  4. Submit a pull request with a clear description of what you've changed

Reporting Issues

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

Getting Help

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

Code of Conduct

Please be respectful and constructive in all interactions. We want to maintain a welcoming environment for all contributors.