Skip to content

Latest commit

 

History

History
114 lines (88 loc) · 4.92 KB

File metadata and controls

114 lines (88 loc) · 4.92 KB

Contributing to StreamLine Labs

Thank you for your interest in contributing! This guide applies to all repositories under the StreamLine Labs organization.

🌟 First-Time Contributors

New to open source? Welcome! Here's how to get started:

  1. Join our community: Discord · GitHub Discussions
  2. Find a starter issue: Look for good first issue labels
  3. Ask questions: Drop into #contributors on Discord — we're happy to help!

Good First Issues by Area

Area Label Typical Effort
Documentation fixes good first issue docs 30 min – 2 hours
Test coverage gaps good first issue testing 1 – 4 hours
CLI improvements good first issue cli 2 – 8 hours
SDK enhancements good first issue sdk 2 – 8 hours
Bug fixes good first issue bug 2 – 16 hours
New features help wanted 1 – 5 days

Getting Started

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Run tests and linting
  5. Commit your changes (git commit -m "Add my feature")
  6. Push to your fork (git push origin feature/my-feature)
  7. Open a Pull Request

💬 Community Channels

Channel Purpose
Discord Real-time chat, help, contributor coordination
GitHub Discussions Feature proposals, design discussions, Q&A
Blog Release notes, tutorials, architecture deep-dives
@streamlinelabs Announcements, community highlights

Discord Channel Guide

Channel Description
#general Welcome, introductions, general discussion
#help Get help with Streamline setup and usage
#contributors Contributor coordination, PR reviews, pair programming
#showcase Share what you've built with Streamline
#releases Automated release notifications
#benchmarks Performance discussion, benchmark results

Development Guidelines

  • Write clear commit messages
  • Add tests for new functionality
  • Update documentation if needed
  • Follow the existing code style in each repository

Language-Specific Guidelines

Repository Language Build Test
streamline Rust cargo build cargo test
streamline-operator Rust cargo build cargo test
streamline-rust-sdk Rust cargo build cargo test
terraform-provider-streamline Go go build ./... go test ./...
streamline-go-sdk Go go build ./... go test ./...
streamline-java-sdk Java mvn compile mvn test
streamline-python-sdk Python pip install -e . pytest
streamline-node-sdk TypeScript npm run build npm test
streamline-dotnet-sdk C# dotnet build dotnet test
streamline-kotlin-sdk Kotlin ./gradlew build ./gradlew test
streamline-swift-sdk Swift swift build swift test
streamline-wasm-sdk Rust/WASM wasm-pack build --target web wasm-pack test --headless --chrome
streamline-deploy YAML/Helm helm lint ./helm/streamline N/A
streamline-docs TypeScript npm run build N/A
streamline-cloud Rust cargo build cargo test
streamline-marketplace Rust cargo build cargo test
streamline-vscode TypeScript npm run compile npm test
streamline-desktop Rust/Tauri npm run tauri build cargo test

Development Time Estimates

Task Time Command
First build (Lite edition) ~2-3 min cargo build
First build (Full edition) ~5-8 min cargo build --features full
Quick validation ~30 sec make quick-check
Run Lite tests ~1-2 min make test-lite
Run full test suite ~5-10 min make test
Cross-SDK tests ~3-5 min make test-cross-sdk

When to Use Which Test Command

  • During development: make quick-check (compile check only, ~30s)
  • Before committing: make test-lite (fast unit tests, ~1-2 min)
  • Before opening PR: make validate (full format + lint + test + docs)
  • Testing with all features: make test (comprehensive, ~5-10 min)

Reporting Issues

  • Use the Bug Report or Feature Request issue templates
  • Search existing issues before creating a new one
  • Include reproduction steps for bugs

Code of Conduct

All contributors are expected to follow our Code of Conduct.

License

By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.