Skip to content

Latest commit

 

History

History
198 lines (137 loc) · 4.68 KB

File metadata and controls

198 lines (137 loc) · 4.68 KB

Contributing to GitHub Actions Simple

Thank you for your interest in contributing to GitHub Actions Simple! This project is designed to be a community-driven resource for data science teams.

How to Contribute

1. Reporting Issues

  • Use GitHub Issues to report bugs or request features
  • Provide clear reproduction steps
  • Include relevant environment details (OS, Python version, etc.)
  • Check existing issues before creating new ones

2. Suggesting Improvements

  • Open a GitHub Discussion for ideas and feedback
  • Propose new actions or enhancements to existing ones
  • Share your use cases and requirements

3. Contributing Code

Before You Start

  • Fork the repository
  • Create a feature branch from main
  • Ensure you have UV installed locally for testing

Development Guidelines

  • Simplicity First: Keep actions simple and easy to understand
  • Security: Follow security best practices (see SECURITY.md)
  • Documentation: Update README files for any changes
  • Testing: Test your changes locally before submitting

Action Development Standards

  • Use composite action type only
  • Include comprehensive input validation
  • Provide clear error messages
  • Add proper output variables
  • Update version references to use latest

Code Style

  • Use clear, descriptive variable names
  • Add comments for complex logic
  • Follow existing patterns and conventions
  • Keep shell scripts readable and maintainable

4. Submitting Pull Requests

PR Requirements

  • Clear description of changes and motivation
  • Link to related issues if applicable
  • Test your changes work in a real repository
  • Update documentation as needed

PR Process

  1. Ensure your branch is up to date with main
  2. Test all actions work with UV
  3. Update any affected template workflows
  4. Submit PR with clear description
  5. Respond to review feedback promptly

5. Testing Guidelines

Local Testing

# Test action setup
cd actions/your-action
uv pip install -r ../../examples/basic-data-science/requirements.txt

# Test action manually
./.github/actions/setup-python-uv
./.github/actions/your-action

Integration Testing

  • Test complete workflows in example repositories
  • Verify cross-platform compatibility (Ubuntu, Windows, macOS)
  • Check with different Python versions

6. Documentation Standards

Action Documentation

  • Clear input/output descriptions
  • Usage examples for common scenarios
  • Troubleshooting section
  • Performance characteristics

Code Documentation

  • Comment complex shell logic
  • Document any external dependencies
  • Explain non-obvious design decisions

What We're Looking For

High Priority Contributions

  • Security improvements and vulnerability fixes
  • Performance optimizations
  • Cross-platform compatibility fixes
  • Documentation improvements
  • Additional template workflows

New Action Ideas

  • Data validation and profiling actions
  • Model deployment and monitoring
  • Documentation generation tools
  • Database and API testing utilities
  • Performance benchmarking actions

Examples and Templates

  • Real-world project examples
  • Industry-specific templates
  • Integration patterns with popular tools
  • Migration guides from other CI systems

Development Environment

Prerequisites

  • Git
  • UV package manager
  • Python 3.9+
  • GitHub CLI (optional but helpful)

Setup

# Clone your fork
git clone https://github.com/your-username/github-actions-simple
cd github-actions-simple

# Install UV if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create test environment
uv venv test-env
source test-env/bin/activate  # or test-env\Scripts\activate on Windows

# Install development dependencies
uv pip install pytest pytest-cov ruff mypy black isort

Testing Changes

# Test individual actions
cd actions/your-action
bash test-action-locally.sh

# Test complete workflow
cd examples/basic-data-science
.github/workflows/ci.yml  # Run workflow steps manually

Code of Conduct

Our Standards

  • Be respectful and inclusive
  • Focus on constructive feedback
  • Help others learn and improve
  • Maintain professional communication

Scope

This code of conduct applies to all project spaces including:

  • GitHub repository (issues, PRs, discussions)
  • Documentation and examples
  • Community interactions

Recognition

Contributors will be recognized in:

  • Release notes for significant contributions
  • README acknowledgments
  • GitHub contributor listings

Questions?

  • Open a GitHub Discussion for general questions
  • Create an issue for specific problems
  • Check existing documentation and examples first

Thank you for helping make GitHub Actions Simple better for the entire data science community!