Thank you for your interest in contributing! This document provides guidelines for contributing to this project.
We welcome various types of contributions:
- Propose and implement new devcontainer configuration strategies
- Document trade-offs and use cases
- Include benchmark scripts and results
- Optimize existing configurations
- Improve caching strategies
- Reduce build times or image sizes
- Improve README and strategy documentation
- Add examples and use cases
- Fix typos and clarify instructions
- Improve benchmark scripts
- Add new metrics
- Enhance result visualization
- Fix configuration issues
- Correct benchmark script errors
- Address documentation inaccuracies
- Windows with PowerShell
- Podman installed and configured
- VS Code with Dev Containers extension
- Git for version control
-
Fork the repository
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/devcontainer-strategy.git cd devcontainer-strategy
-
Create a branch for your changes:
git checkout -b feature/your-feature-name
-
Create a new directory under
strategies/:mkdir strategies/07-your-strategy-name
-
Add the required files:
.devcontainer/devcontainer.json- DevContainer configurationREADME.md- Strategy documentationbenchmark.ps1- Benchmark script
-
Follow the standard configuration:
- Use base image:
mcr.microsoft.com/devcontainers/rust@sha256:e418f5e96979c3674baf47115366d0e4f5569fefdab6b51bd2817256941ceeb0 - Include all standard VS Code extensions
- Document any deviations from the standard
- Use base image:
-
Document your strategy:
- Explain the approach
- List pros and cons (without performance claims)
- Describe use cases
- Note any special requirements
Before submitting, run benchmarks for your strategy:
cd strategies/your-strategy-name
.\benchmark.ps1Ensure the script:
- Captures system information
- Runs 5 iterations
- Outputs results in JSON format
- Includes all standard metrics
-
Commit your changes with clear, descriptive messages:
git add . git commit -m "Add strategy: Your Strategy Name"
-
Push to your fork:
git push origin feature/your-feature-name
-
Open a Pull Request with:
- Clear title describing the change
- Detailed description of what was added/changed
- Benchmark results (for new strategies)
- Screenshots or examples (if applicable)
-
Address review feedback promptly and professionally
- One feature per PR: Keep changes focused and atomic
- Test thoroughly: Verify configurations work as expected
- Update documentation: Include relevant README updates
- Follow conventions: Match existing code style and structure
- Include results: Provide benchmark data for performance claims
All benchmark submissions must:
- Use the standard benchmark script template
- Run on a clean Podman environment
- Include 5 iterations minimum
- Report median values
- Capture full system specifications
- Output JSON format results
- Be respectful and inclusive
- Welcome diverse perspectives
- Focus on constructive feedback
- Assume good intentions
- Respect differing viewpoints
- Harassment or discriminatory language
- Trolling or insulting comments
- Personal or political attacks
- Publishing others' private information
- Issues: Open an issue for bugs or feature requests
- Discussions: Use GitHub Discussions for questions
- Pull Requests: For proposed changes with code
By contributing, you agree that your contributions will be licensed under the MIT License.
Contributors will be acknowledged in the project. Significant contributions may be highlighted in release notes.
Thank you for helping improve DevContainer Strategy Comparison!