Thank you for your interest in contributing to NeuronIP! 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.
- Docker and Docker Compose
- PostgreSQL 16+ with NeuronDB extension
- Go 1.24+ (for backend development)
- Node.js 18+ (for frontend development)
-
Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/NeuronIP.git cd NeuronIP -
Set up environment variables
# Copy example environment files cp .env.example .env cp frontend/.env.example frontend/.env.local -
Start services with Docker Compose
docker compose up -d
-
For local development
Backend:
cd api go mod download go run cmd/server/main.goFrontend:
cd frontend npm install npm run dev
- Feature branches:
feature/description-of-feature - Bug fixes:
fix/description-of-bug - Documentation:
docs/description-of-docs - Refactoring:
refactor/description-of-refactor
-
Create a branch from
mainordevelopgit checkout -b feature/your-feature-name
-
Make your changes following the coding standards below
-
Test your changes
- Run backend tests:
cd api && go test ./... - Run frontend tests:
cd frontend && npm test - Run linters:
npm run lint(frontend) orgolangci-lint run(backend)
- Run backend tests:
-
Commit your changes with clear commit messages
git commit -m "feat: add new feature description" -
Push and create a Pull Request
git push origin feature/your-feature-name
We follow the Conventional Commits specification:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, missing semicolons, etc.)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Example:
feat(semantic): add vector similarity search
fix(warehouse): resolve SQL query timeout issue
docs: update API documentation
- Follow Effective Go guidelines
- Use
gofmtorgoimportsfor formatting - Run
golangci-lintbefore committing - Write tests for new functionality
- Document exported functions with comments
- Follow the existing code style in the project
- Use TypeScript for type safety
- Follow React best practices and hooks patterns
- Use functional components
- Run
npm run lintbefore committing - Write tests for components and utilities
- Keep functions small and focused
- Write clear, descriptive variable and function names
- Add comments for complex logic
- Remove debug code before committing
cd api
go test ./...
go test -v -coverprofile=coverage.out ./...cd frontend
npm test
npm test -- --coverageEnsure Docker Compose services are running and test the full stack:
docker compose up -d
# Run integration tests-
Ensure your PR is ready
- All tests pass
- Code is properly formatted
- Documentation is updated if needed
- No merge conflicts with the base branch
-
Fill out the PR template completely
-
Request review from maintainers
-
Address feedback from reviewers
-
Wait for approval before merging
- Update README.md if you change setup or usage instructions
- Add or update API documentation if you modify endpoints
- Update CHANGELOG.md for user-facing changes
- Comment complex code and algorithms
- Open a discussion for general questions
- Open an issue for bugs or feature requests
- Check existing issues and PRs before creating new ones
Thank you for contributing to NeuronIP! 🎉