Thank you for your interest in contributing to staRburst! This document provides guidelines for contributing.
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/starburst.git - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
-
IMPORTANT: Run tests:
devtools::test() -
IMPORTANT: Run checks:
devtools::check() - Commit:
git commit -m "Description of changes" - Push:
git push origin feature/your-feature-name - Open a Pull Request
⚠️ Before Pushing - Run Checks Locally!
Always run R CMD check locally before pushing to avoid CI failures and wasted GitHub Actions minutes.
Set Up Pre-commit Hook (Recommended)
Now every commit will automatically run devtools::check(). The commit will be blocked if there are errors.
Development Setup
# Install development dependencies
install.packages(c("devtools", "testthat", "roxygen2", "pkgdown"))
# Load package for development
devtools::load_all()
# Run tests
devtools::test()
# Build documentation
devtools::document()
# Check package
devtools::check()Code Style
- Follow the tidyverse style guide
- Use
roxygen2for documentation - Write tests for new functions
- Keep functions focused and modular
Testing
- Write tests for all new functionality
- Place tests in
tests/testthat/test-*.R - Use descriptive test names
- Mock AWS API calls when possible
test_that("function does what it should", {
expect_equal(my_function(1), 2)
})Documentation
- Document all exported functions with
roxygen2 - Include
@examplesfor user-facing functions - Update vignettes if adding major features
- Keep README.md up to date
Pull Request Process
- Update NEWS.md with your changes
- Ensure all tests pass
- Update documentation if needed
- Request review from maintainers
- Address review comments
- Merge when approved
Areas for Contribution
See issues for specific tasks.
Priority areas: - Docker image building implementation - Additional serialization methods - Performance optimization - Documentation improvements - Example workflows
