Development
July 31, 2026 · View on GitHub
Local setup
git clone https://github.com/OpenVoiceOS/ovos-messagebus-chat-plugin
cd ovos-messagebus-chat-plugin
pip install -e .[test]
Running tests
pytest tests/ -v
Tests use FakeBus and never start a real OVOS instance or messagebus
server. Each turn is exercised end-to-end (emit utterance, simulate speak
replies, emit ovos.utterance.handled, assert the returned AgentMessage).
Coverage
pytest tests/ --cov=ovos_messagebus_chat_plugin --cov-report=term-missing
Branching and releases
devis the active development branch. All PRs targetdev.mastercarries tagged releases. Direct pushes tomasterare reserved for the publish workflow.- Alpha builds publish to PyPI automatically when a PR is merged to
dev(see.github/workflows/release_workflow.yml). - Stable releases publish when changes land on
master(see.github/workflows/publish_stable.yml).
Versions live in ovos_messagebus_chat_plugin/version.py. The publish
workflows bump them automatically.
Adding tests
Tests live under tests/. Conventions:
- Use
FakeBus. Never start a realMessageBusClient. - Drive turns by emitting
speakandovos.utterance.handledon theFakeBusfrom the test body. - Each behaviour from
docs/message_flow.mdshould have a corresponding test. - For cross-turn tests, reset
SessionManager.sessionsbetween test functions (aconftest.pyfixture handles this automatically).
Release checklist
- Open PRs against
dev. - Merge to
dev. Alpha is published automatically. - When ready for stable, the "Release Alpha and Propose Stable" workflow
opens a PR from
devtomaster. - Merge that PR. Stable is published automatically and the version is bumped.