Thank you for your interest in contributing to TraceMind! 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 open an issue with:
- Clear title and description of the bug
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (OS, Node.js version, Docker version)
- Relevant logs or error messages
- Screenshots if applicable
Feature suggestions are welcome! Please open an issue with:
- Clear description of the feature
- Use case and why it would be useful
- Possible implementation approach (if you have ideas)
-
Fork the repository and create a new branch from
maingit checkout -b feature/your-feature-name
-
Make your changes following our coding standards:
- Follow existing code style
- Write clear, self-documenting code
- Add comments for complex logic
- Update documentation as needed
-
Write tests for new features or bug fixes
npm run test npm run test:e2e -
Run linting and fix any issues
npm run lint
-
Update CHANGELOG.md with your changes
-
Commit your changes with clear commit messages
git commit -m "feat: add new feature" git commit -m "fix: resolve bug in trace analyzer"
-
Push to your fork and open a Pull Request
git push origin feature/your-feature-name
- Node.js 20+
- Docker and Docker Compose
- npm or yarn
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/trace-mind.git cd trace-mind -
Install dependencies
npm install
-
Set up environment
cp .env.example .env # Edit .env and add your GEMINI_API_KEY (optional for local dev) -
Run in development mode
npm run start:dev
-
Run tests
npm run test npm run test:e2e
- Use TypeScript strict mode
- Prefer
interfaceovertypefor object shapes - Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Follow NestJS module structure
- Use dependency injection
- Keep controllers thin, business logic in services
- Use DTOs for data validation
Follow Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Example:
feat: add support for custom Gemini models
fix: resolve memory leak in trace analyzer
docs: update README with Docker Compose examples
- Write unit tests for services
- Write e2e tests for API endpoints
- Aim for good test coverage
- Test error cases and edge cases
- Update README.md for user-facing changes
- Update code comments for complex logic
- Add JSDoc for public APIs
- Update CHANGELOG.md
- All PRs require at least one approval
- CI checks must pass
- Code review feedback should be addressed
- Maintainers will merge approved PRs
Feel free to open an issue for questions or reach out to maintainers.
Thank you for contributing to TraceMind! 🚀