Skip to content

๐Ÿ’ป Contributing: Join the Preprocessing Revolution! ๐Ÿ› ๏ธ

Help us build the future of data preprocessing!

We're excited to welcome new contributors to KDP. This guide will help you get started on your contribution journey.

๐Ÿ Contribution Process Overview

1

Getting Started

  • Fork the Repository: Visit our GitHub page, fork the repository, and clone it to your local machine.
  • Set Up Your Environment: Make sure you have TensorFlow, Loguru, and all necessary dependencies installed.
  • Install Pre-commit Hook: This ensures code quality before commits.
# Install pre-commit hook
conda install -c conda-forge pre-commit

# Go to the root folder of the repository and run
pre-commit install
2

Making Changes

  • Create a Branch: Always work in a dedicated branch for your changes.
  • Follow Coding Standards: Maintain the project's coding style and conventions.
  • Write Tests: All new features must include tests.
  • Use Standardized Commit Messages: Follow the format below.
{LABEL}(KDP): {message}

# Examples:
feat(KDP): Add distribution-aware encoding
fix(KDP): Resolve memory leak in feature selection
3

Submitting Your Work

  • Create Small MRs: Keep merge requests under 400 lines for easier review.
  • Request Code Review: All code must be reviewed before merging.
  • Address Feedback: Resolve all comments and ensure CI checks pass.
  • Tests Must Pass: NO TESTS = NO MERGE ๐Ÿšจ

๐Ÿ’ก Feature Requests & Issues

Have ideas or found a bug?

We welcome your input! Please use our GitHub issues page to:

  • Report bugs or unexpected behavior
  • Suggest new features or improvements
  • Discuss implementation approaches
Open an Issue

๐Ÿ“ Commit Message Guidelines

๐Ÿท๏ธ

Label Types

Label Usage Version Impact
break Changes that break backward compatibility major
feat New backward-compatible features minor
fix Bug fixes patch
docs Documentation changes patch
style Code style changes (formatting, etc.) patch
refactor Code changes that neither fix bugs nor add features patch
perf Performance improvements patch
test Adding or updating tests minor
build Build system or dependency changes patch
ci CI configuration changes minor

๐Ÿ”„ Merge Request Process

Creating Effective Merge Requests

Merge requests are the heart of our collaborative development process:

  • Create your MR early - even as a work in progress
  • Use the same naming convention as commits: {LABEL}(KDP): {message}
  • Break large features into smaller, focused MRs
  • Include relevant tests for your changes
  • Ensure all CI checks pass before requesting review
  • Address all feedback before merging
๐Ÿ’ก

Merge requests generate our changelog automatically, so clear and descriptive messages help everyone understand your contributions!