Thank you for your interest in contributing to RASA!
- Fork and clone the repository
- Create a virtual environment:
conda create -n rasa python=3.10 conda activate rasa
- Install in development mode:
make dev
- Copy and configure environment:
cp .env.example .env # Edit .env with your settings
make test # All tests
make test-api # API tests only
make test-cli # CLI tests only
pytest tests/test_runner.py -v # Single fileWe use black for formatting and ruff for linting:
make format # Auto-format code
make lint # Check for issuesInstall pre-commit hooks to auto-check before commits:
pre-commit install- Create a feature branch from
main - Make your changes with clear, focused commits
- Add tests for new functionality
- Ensure all tests pass:
make test - Ensure code is formatted:
make format - Submit a PR with a clear description
Use descriptive titles:
feat: add new memory backend for PostgreSQLfix: resolve session frame state persistencedocs: update persona YAML specificationtest: add coverage for travel_concierge flow
- Create
apps/<persona_name>/persona.yaml - Add custom frames in
apps/<persona_name>/frames/ - Add custom operators in
apps/<persona_name>/operators/ - Add tests in
tests/test_<persona_name>_flow.py
- Add to
rasa/frames/orrasa/operators/ - Follow existing patterns (inherit from base classes)
- Add unit tests
- Check existing issues first
- Include Python version, OS, and steps to reproduce
- For LLM-related issues, include provider and model info
Open a discussion or issue on GitHub.