- Node.js (20)
- Go (for backend development)
- Docker (for local testing)
- Set up git hooks:
git config core.hooksPath .githooks- Install dependencies:
npm install- Build backend plugin binaries:
mage -v- Build plugin in development mode:
npm run dev- Run tests:
# Frontend tests
# Watch mode for development
npm run test
# CI mode
npm run test:ci
# Backend tests
npm run test:go
# or
mage test
# or
go test ./pkg/plugin/... -v- Run linter:
# Frontend linter
npm run lint
# or
npm run lint:fix
# Backend linter
npm run lint:backend- Local testing with Grafana:
npm run serveror with hot-reloading of backend plugin changes:
npm run server:watch- Run E2E tests:
npm run server
npm run e2e- Search existing issues to avoid duplicates
- Use a clear, descriptive title
- Include steps to reproduce if reporting a bug
- Provide context and examples for feature requests
- Create a feature branch from main
- Make focused, atomic commits with clear messages
- Run tests and linting locally
- Add or update unit tests for new functionality
- Ensure all existing tests pass
- Update documentation if needed
- Submit PR with description of changes, and add a reviewer from the Sift team
- Respond to review feedback
Apache-2.0