First off, thank you for considering contributing! We welcome contributions from everyone. Whether it's reporting a bug, proposing a feature, or writing code, your help is appreciated.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Open a new issue to discuss your enhancement suggestion. Clearly describe the proposed feature, why it's needed, and provide examples if possible.
We actively welcome your pull requests!
- Fork the repo and create your branch from
main
. - Set up your development environment:
git clone <your-fork-url> cd featurewiz_polars python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -e ".[dev]" # Install in editable mode with dev dependencies pre-commit install # Optional, but recommended: install pre-commit hooks
- Make your changes. Add features or fix bugs.
- Add Tests: If you've added code that should be tested, add tests to the
tests/
directory. - Ensure Code Quality:
- Format your code using Ruff/Black:
ruff format .
orblack .
- Lint your code using Ruff:
ruff check .
- Run type checks using MyPy:
mypy featurewiz_polars
- Run the test suite using Pytest:
pytest tests/ --cov=featurewiz_polars
- Ensure tests pass and coverage meets requirements (aim for high coverage).
- Format your code using Ruff/Black:
- Update Documentation: If your changes affect documentation (docstrings, README, etc.), please update them accordingly.
- Commit your changes using a clear commit message.
- Push to your fork and submit a Pull Request (PR) to the
main
branch of theAutoViML/featurewiz_polars
repository. - Link the PR to an issue if it resolves one (e.g., "Closes #123").
- Wait for review. Address any comments or feedback from the maintainers.
- Follow PEP 8 style guidelines.
- Use
ruff
for linting andblack
orruff format
for code formatting (configuration is inpyproject.toml
or.ruff.toml
if added). - Write clear, understandable code with meaningful variable names.
- Add type hints to function signatures.
- Write comprehensive docstrings for public modules, classes, and functions (NumPy or Google style).
Thank you for contributing!