Thank you for your interest in contributing to Lightning Containers! This document outlines how you can contribute to the project and help us improve our docker-powered lightning atmospheric dataset analysis tool.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Pull Request Process
- Coding Standards
- Testing Guidelines
- Documentation
This project and everyone participating in it are governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/lightning-containers.git cd lightning-containers
- Set up your development environment following the instructions in the Development Setup section
There are many ways to contribute:
- Report bugs and request features by creating issues
- Improve documentation
- Submit bug fixes or new features through pull requests
- Help answer questions in discussions
-
Ensure you have the required resources:
- Minimum: 2 CPU cores, 6GB RAM, 8GB Storage
- Recommended: 4+ CPU cores, 16GB RAM, 24GB Storage
-
Set up your environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install -r requirements.txt
-
To run the project locally:
prefect server start python src/flows.py streamlit run app/dashboard.py
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Description of your changes"
-
Ensure your code passes all tests:
pytest
-
Update documentation if necessary
-
Push your branch and create a pull request
-
Wait for review and address any feedback
- Follow PEP 8 guidelines for Python code
- Use type hints where appropriate
- Document all functions and classes using docstrings
- Keep functions focused and modular
- Use meaningful variable and function names
- Write unit tests for all new functionality
- Ensure all tests pass before submitting a pull request
- Test structure should mirror the source code structure
- Include both positive and negative test cases
- Follow the existing test naming conventions
- Update README.md if you change functionality
- Document complex algorithms or workflows
- Update requirements.txt if you add dependencies
- Include docstrings for all public functions and classes
Thank you for contributing to Lightning Containers!