Skip to content

Latest commit

 

History

History
175 lines (136 loc) · 5.47 KB

File metadata and controls

175 lines (136 loc) · 5.47 KB

Contributing to The Complete Future Trait Guide

Thank you for your interest in contributing to this open-source Rust async programming tutorial! 🦀

🌟 Ways to Contribute

📝 Documentation & Content

  • Fix typos and grammatical errors
  • Improve explanations of complex concepts
  • Add missing documentation to code examples
  • Enhance code comments for better learning
  • Suggest new topics or examples

🐛 Bug Fixes & Issues

  • Report compilation errors in examples
  • Fix broken code examples
  • Resolve dependency issues
  • Improve error handling patterns
  • Fix formatting problems

💡 New Features & Examples

  • Add new async patterns and use cases
  • Create additional examples for complex scenarios
  • Implement missing combinators examples
  • Add performance benchmarks
  • Create interactive exercises

🧪 Testing & Validation

  • Add comprehensive tests for examples
  • Validate code on different Rust versions
  • Test EPUB generation on various platforms
  • Verify cross-platform compatibility

🚀 Getting Started

1. Fork & Clone

# Fork the repository on GitHub, then:
git clone https://github.com/your-username/future-trait-tutorial.git
cd future-trait-tutorial

2. Set Up Development Environment

# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install mdBook for documentation
cargo install mdbook mdbook-epub

# Test the examples
cargo test

3. Make Your Changes

  • Create a new branch for your feature/fix
  • Make your changes following our guidelines
  • Test your changes thoroughly
  • Update documentation as needed

4. Submit a Pull Request

  • Push your changes to your fork
  • Create a pull request with a clear description
  • Reference any related issues
  • Be responsive to feedback

📋 Contribution Guidelines

Code Quality

  • Follow Rust conventions (use rustfmt)
  • Add comprehensive comments for educational value
  • Include tests for new functionality
  • Ensure examples compile and run correctly
  • Use meaningful variable names

Documentation Standards

  • Write clear explanations suitable for beginners
  • Include practical examples with real-world context
  • Add step-by-step instructions where appropriate
  • Reference official Rust documentation when relevant
  • Maintain consistent formatting

Educational Focus

  • 🎯 Prioritize learning value over performance optimization
  • 🎯 Explain the "why" not just the "how"
  • 🎯 Use progressive complexity (simple to advanced)
  • 🎯 Include common pitfalls and how to avoid them
  • 🎯 Provide multiple approaches when applicable

🔍 Review Process

What We Look For

  1. Educational Value: Does this help people learn?
  2. Code Quality: Is it well-written and documented?
  3. Accuracy: Is the information correct and up-to-date?
  4. Completeness: Are examples tested and working?
  5. Clarity: Is it easy to understand for the target audience?

Review Timeline

  • Initial response: Within 48 hours
  • Detailed review: Within 1 week
  • Merge decision: Based on review feedback

🎯 Priority Areas

We especially welcome contributions in these areas:

High Priority

  • 🔥 Fix compilation issues in existing examples
  • 🔥 Add missing tests for working examples
  • 🔥 Improve error handling patterns
  • 🔥 Update dependencies to latest versions

Medium Priority

  • 📚 Add new real-world examples
  • 📚 Improve documentation clarity
  • 📚 Create interactive exercises
  • 📚 Add performance comparisons

Nice to Have

  • Advanced async patterns
  • Integration examples with popular crates
  • Video tutorials or presentations
  • Translations to other languages

💬 Getting Help

Questions & Discussion

  • 💭 Open an issue for questions about contributing
  • 💭 Join discussions on existing issues and PRs
  • 💭 Ask for clarification if guidelines are unclear

Code Review Support

  • 🤝 Request specific feedback on your approach
  • 🤝 Ask for help with complex implementations
  • 🤝 Collaborate with other contributors

🏆 Recognition

Contributors will be:

  • Listed in project acknowledgments
  • Credited in commit history
  • Mentioned in release notes for significant contributions
  • Invited to be maintainers for ongoing contributors

📜 Code of Conduct

Our Standards

  • 🤝 Be respectful and inclusive
  • 🎓 Focus on learning and education
  • 💡 Provide constructive feedback
  • 🌟 Help others succeed
  • 🔄 Be open to feedback

Not Acceptable

  • ❌ Harassment or discrimination
  • ❌ Unconstructive criticism
  • ❌ Off-topic discussions
  • ❌ Spam or self-promotion

🙏 Thank You

Every contribution, no matter how small, helps make this resource better for the entire Rust community. Whether you:

  • 🐛 Fix a typo
  • 📝 Improve documentation
  • 💡 Add a new example
  • 🧪 Write tests
  • 💬 Help other learners

You're making a difference in the Rust ecosystem!


Ready to contribute? Open an issue or submit a pull request! 🚀