Skip to content

Latest commit

 

History

History
439 lines (384 loc) · 10.1 KB

File metadata and controls

439 lines (384 loc) · 10.1 KB

💻 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
  </div>
</div>
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
  </div>
</div>
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!

<style> /* Base styling */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; } /* Intro section */ .intro-container { background: linear-gradient(135deg, #f0f7ff 0%, #e9ecef 100%); border-radius: 10px; padding: 25px; margin: 30px 0; box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .intro-content h2 { margin-top: 0; color: #4a86e8; } /* Step cards */ .steps-container { display: flex; flex-direction: column; gap: 25px; margin: 30px 0; } .step-card { background-color: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; } .step-card:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0,0,0,0.1); } .step-header { display: flex; align-items: center; padding: 15px 20px; background: linear-gradient(135deg, #f0f7ff 0%, #e9ecef 100%); border-bottom: 1px solid #e9ecef; } .step-number { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; background-color: #4a86e8; color: white; border-radius: 50%; margin-right: 15px; font-weight: bold; } .step-header h3 { margin: 0; color: #333; } .step-content { padding: 20px; } /* Feature list */ .feature-list { padding-left: 20px; margin-bottom: 20px; } .feature-list li { margin-bottom: 10px; } /* Code containers */ .code-container { background-color: #f8f9fa; border-radius: 8px; overflow: hidden; margin-top: 15px; } .code-container pre { margin: 0; padding: 15px; } /* Feature showcase */ .feature-showcase { background-color: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.1); margin: 30px 0; transition: transform 0.3s ease, box-shadow 0.3s ease; } .feature-showcase:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0,0,0,0.1); } .feature-header { padding: 15px 20px; background: linear-gradient(135deg, #f0f7ff 0%, #e9ecef 100%); border-bottom: 1px solid #e9ecef; } .feature-header h3 { margin: 0; color: #333; } .feature-content { padding: 20px; } /* Examples section */ .examples-container { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 30px 0; } .example-card { background-color: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 4px 8px rgba(0,0,0,0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; } .example-card:hover { transform: translateY(-5px); box-shadow: 0 8px 16px rgba(0,0,0,0.1); } .example-header { display: flex; align-items: center; padding: 15px 20px; background: linear-gradient(135deg, #f0f7ff 0%, #e9ecef 100%); border-bottom: 1px solid #e9ecef; } .example-icon { font-size: 1.5em; margin-right: 15px; } .example-header h3 { margin: 0; color: #333; } .example-content { padding: 20px; } /* Table styling */ .table-container { overflow-x: auto; margin: 15px 0; } table { width: 100%; border-collapse: collapse; margin: 15px 0; } th { background-color: #f0f7ff; text-align: left; padding: 12px 15px; border-bottom: 2px solid #4a86e8; } td { padding: 10px 15px; border-bottom: 1px solid #e9ecef; } tr:nth-child(even) { background-color: #f8f9fa; } tr:hover { background-color: #f0f7ff; } /* Buttons */ .action-button { display: inline-block; background-color: #4a86e8; color: white; padding: 10px 20px; border-radius: 5px; text-decoration: none; font-weight: 500; margin-top: 15px; transition: background-color 0.3s ease; } .action-button:hover { background-color: #3a76d8; } /* Tip box */ .tip-box { background-color: #f0f7ff; border-left: 4px solid #4a86e8; padding: 15px; margin-top: 20px; border-radius: 0 5px 5px 0; display: flex; align-items: flex-start; } .tip-icon { font-size: 1.5em; margin-right: 15px; } .highlight { background-color: #ffecb3; padding: 2px 5px; border-radius: 3px; font-weight: bold; } /* Responsive adjustments */ @media (max-width: 768px) { .examples-container { grid-template-columns: 1fr; } } </style>