Thank you for your interest in contributing to Enarro! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for all contributors.
If you find a bug, please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (.NET version, OS, etc.)
- Relevant logs or screenshots
Feature requests are welcome! Please create an issue with:
- Clear description of the feature
- Use case and benefits
- Potential implementation approach (optional)
-
Fork the repository
git clone https://github.com/yourusername/enarro.git cd enarro -
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
-
Commit your changes
git add . git commit -m "feat: add amazing feature"
Follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesrefactor:- Code refactoringtest:- Adding testschore:- Maintenance tasks
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Provide a clear description
- Reference any related issues
- Ensure CI checks pass
- .NET 10 SDK
- Docker Desktop
- Ollama
- Git
-
Clone and restore
git clone https://github.com/yourusername/enarro.git cd enarro dotnet restore -
Pull Ollama models
ollama pull phi3 ollama pull nomic-embed-text
-
Run with Aspire
dotnet run --project Enarro.AppHost
-
Run tests
dotnet test
- Use C# 12 features appropriately
- Follow Microsoft's C# coding conventions
- Use meaningful variable and method names
- Add XML documentation comments for public APIs
- Keep methods focused and concise
- Write unit tests for new functionality
- Ensure existing tests pass
- Aim for high code coverage
- Test edge cases and error conditions
Enarro/
├── Enarro/ # Main API project
│ ├── Data/ # EF Core entities and DbContext
│ ├── Endpoints/ # Minimal API endpoints
│ ├── Models/ # DTOs and models
│ ├── Services/ # Business logic services
│ └── Program.cs # Application entry point
├── Enarro.AppHost/ # Aspire orchestration
├── Enarro.ServiceDefaults/ # Shared service configurations
└── README.md
When making database schema changes:
cd Enarro
dotnet ef migrations add YourMigrationName
dotnet ef database update- Update README.md for user-facing changes
- Update code comments for implementation details
- Add examples for new features
- Update API documentation
All pull requests require:
- Code review from at least one maintainer
- Passing CI/CD checks
- Updated documentation
- Appropriate tests
Feel free to:
- Open an issue for questions
- Start a discussion in GitHub Discussions
- Reach out to maintainers
Thank you for contributing to Enarro! 🎉