Thank you for your interest in contributing to this project! This document provides guidelines and information for contributors.
Before creating a bug report, please check existing issues to avoid duplicates. When creating a bug report, include:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Your environment (Python version, Databricks runtime version, etc.)
- Any relevant logs or error messages
Enhancement suggestions are welcome! Please include:
- A clear description of the enhancement
- The motivation and use case
- Any potential implementation approaches
- Fork the repository and create your branch from
main - Install dependencies:
pip install -r requirements.txt
- Make your changes following the coding standards below
- Add tests for any new functionality
- Run the test suite:
pytest tests/ -v
- Format your code:
black src/ tests/ flake8 src/ tests/
- Commit your changes with a clear commit message
- Push to your fork and submit a pull request
- Follow PEP 8 style guidelines
- Use Black for code formatting
- Use type hints where appropriate
- Maximum line length: 88 characters (Black default)
- Write clear, self-documenting code
- Add docstrings to functions and classes
- Keep functions focused and concise
- Handle errors gracefully
- Write tests for new functionality
- Maintain or improve code coverage
- Tests should be deterministic and not depend on external services
- Use descriptive test names
- Use clear, descriptive commit messages
- Start with a verb in present tense (e.g., "Add", "Fix", "Update")
- Reference issues when applicable (e.g., "Fix #123")
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/Calendar-API.git cd Calendar-API -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run tests to verify setup:
pytest tests/ -v
Calendar-API/
├── src/ # Source code
│ ├── generate_dim_calendar.py # Main calendar generation
│ └── utils/ # Utility functions
├── tests/ # Test suite
├── sql/ # SQL scripts
├── notebooks/ # Databricks notebooks
├── docs/ # Documentation
└── config/ # Configuration files
If you have questions about contributing, feel free to open an issue for discussion.
By contributing, you agree that your contributions will be licensed under the MIT License.