This project accepts contributions from the community.
Accepted contributions include:
- Bug Reports: Report issues
- Feature Requests: Suggest improvements
- Code Contributions: Fix bugs, add features, improve performance
- Documentation: Update guides, API docs, examples
- Testing: Add tests, improve coverage
Required steps to run the project:
- Fork this repository on GitHub
- Clone the fork:
git clone https://github.com/YOUR_USERNAME/autocsv-profiler-suite.git - Set up conda environments:
python bin/setup_environments.py create --parallel - Install development tools:
pip install -r requirements-dev.txt pre-commit install
Required reading:
- Architecture Guide - multi-environment design
- Development Guide - setup and workflows
Code quality tools:
- Black for code formatting (88 character limit)
- isort for import organization
- MyPy for type checking
- pytest for testing (minimum 50% coverage)
Run quality checks: pre-commit run --all-files
For Bug Fixes:
- Check existing issues for the bug
- Create new issue if not tracked
- Identify root cause and plan solution
- Consider impact on all environments (main, profiling, dataprep)
For New Features:
- Review existing feature requests and roadmap
- Create feature request issue to discuss approach
- Get community feedback before implementation
- Assess impact on all profiling engines
Create branch:
git checkout main
git pull upstream main
git checkout -b feature/feature-nameDevelopment process:
- Make changes in appropriate environment
- Write tests (unit tests required, integration tests when needed)
- Update documentation if changing APIs or adding features
- Run quality checks:
pre-commit run --all-files - Test changes:
python bin/run_analysis.py test.csv --debug
Use conventional commit format: <type>(<scope>): <description>
Examples:
feat(analyzer): add statistical summary exportfix(dataprep): handle missing data properlydocs(readme): update installation instructions
Common types: feat, fix, docs, test, refactor, perf
Test commands:
pytest # Run all tests
pytest -m "not slow" # Skip slow tests
pytest -m unit # Unit tests only
pytest -m integration # Integration tests onlyTest categories: Unit, Integration, Functional, Performance
-
Push branch:
git push origin feature/feature-name
-
Open pull request on GitHub:
- Write title using conventional commit format
- Describe changes and reasoning
- Link related issues ("fixes #123" or "closes #456")
-
Review process:
- Automated tests run first
- Maintainers review code
- Address feedback
Required before submission:
- Code follows project style
- Tests added for changes
- Documentation updated (if needed)
- All tests pass locally
- Pre-commit hooks pass
- No conflicts with main branch
- Commit messages follow format
- PR description explains changes
Steps after submission:
- Automated checks run (tests, linting, security scans)
- Code review by maintainers examining:
- Code quality and style
- Test coverage
- Documentation
- Architecture compatibility
- Security implications
- Discussion if changes needed
- Merge when approved
Use GitHub issue templates:
- Bug Report: Report broken functionality
- Feature Request: Suggest improvements
- README.md: Project overview and setup
- Architecture Guide: Multi-environment system explanation
- Development Guide: Setup and development workflows
- Troubleshooting Guide: Common problems and solutions
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions and discussion
- Pull Request Reviews: Code feedback and learning
Maintained by @dhaneshbb.
Questions can be submitted through GitHub Discussions or by contacting maintainers directly.