🎉 Thank you for your interest in contributing to .NET Aspire LocalStack integration!
We welcome contributions of all kinds - from bug reports and feature requests to code improvements and documentation updates. This guide will help you get started and ensure your contributions have the best chance of being accepted.
- 🐛 Found a bug? → Create an Issue
- 💡 Have an idea? → Start a Discussion
- ❓ Need help? → Q&A Discussions
- 🚨 Security issue? → See our Security Policy
- 🔧 Ready to code? → Submit a Pull Request
This project follows the Contributor Covenant Code of Conduct. By participating, you're expected to uphold this code. Please report unacceptable behavior to localstack.dotnet@gmail.com.
Important: By submitting a pull request, you agree to license your contribution under the MIT license.
- .NET SDK 10.0 (for development)
- Docker (for LocalStack testing)
- Git
- IDE: Visual Studio, Rider, or VS Code
-
Fork and Clone
# Fork the repository on GitHub, then clone your fork git clone https://github.com/YOUR-USERNAME/dotnet-aspire-for-localstack.git cd dotnet-aspire-for-localstack # Add upstream remote git remote add upstream https://github.com/localstack-dotnet/dotnet-aspire-for-localstack.git
-
Build the Project
# Restore dependencies dotnet restore # Build solution dotnet build --configuration Release
-
Run Tests
This project uses TUnit as its testing framework.
# Run all tests dotnet test # Run tests for a specific project dotnet test --project tests/Aspire.Hosting.LocalStack.Unit.Tests/Aspire.Hosting.LocalStack.Unit.Tests.csproj # Run specific tests (using standard filter syntax) dotnet test --filter "FullyQualifiedName~HealthCheck"
- Search existing issues to avoid duplicates
- Check Discussions - your question might already be answered
- Verify the issue occurs with LocalStack integration in Aspire
- Test with latest version when possible
Use our Issue Template which will guide you through providing:
- Environment details (LocalStack version, .NET Aspire version, .NET version, OS)
- Minimal reproduction case with Aspire AppHost
- Expected vs actual behavior
- Configuration and error messages
We love new ideas! Here's how to suggest features:
- Check existing discussions for similar requests
- Start a Discussion to gauge community interest
- Create an issue if there's positive feedback and clear requirements
- Discuss significant changes in Discussions first
- Check for existing work - someone might already be working on it
- Create an issue if one doesn't exist (for tracking)
-
Create a feature branch
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-number-description -
Make your changes
- Follow existing code style and conventions
- Add tests for new functionality
- Update documentation as needed
- Ensure all analyzers pass without warnings
-
Test thoroughly
# Run all tests dotnet test
-
Commit with conventional commits
git commit -m "feat: add support for XYZ service" git commit -m "fix: resolve timeout issue in DynamoDB client" git commit -m "docs: update installation guide"
-
Submit the Pull Request
- Use our PR Template
- Provide clear description of changes
- Link related issues
- ✅ Follow existing patterns and architectural decisions
- ✅ Write comprehensive tests (unit, integration, functional where applicable)
- ✅ Add XML documentation for public APIs
- ✅ No analyzer warnings - we treat warnings as errors
- ✅ Maintain backward compatibility (unless it's a breaking change PR)
- ✅ Performance considerations - avoid introducing regressions
We have multiple test types:
- Unit Tests - Fast, isolated, no external dependencies (using TUnit)
- Integration Tests - Test AWS Aspire integration
When adding tests:
- Place them in the appropriate test project
- Follow existing naming conventions
- Test both success and error scenarios
- Include tests for edge cases
- Code comments - Explain the "why", not the "what"
- XML documentation - Required for all public APIs
- README updates - For feature additions or breaking changes
- CHANGELOG - Add entries for user-facing changes
- Automated checks must pass (build, tests, code analysis)
- Maintainer review - we aim to review within 48 hours
- Community feedback - other contributors may provide input
- Iterative improvements - address feedback promptly
- Final approval and merge
- Questions about usage → Q&A Discussions
- Ideas for features → Ideas Discussions
- General discussion → General Discussions
- Show your work → Show and Tell
Contributors are recognized in:
- Our Contributors page
- Release notes for significant contributions
- Project documentation for major features
By contributing to this project, you agree to abide by our Code of Conduct and understand that your contributions will be licensed under the MIT License.
Thank you for making .NET Aspire LocalStack integration better! 🚀