Thanks for your interest in the project — you're awesome! 😎🎉
Any kind of help is welcome (Code, Bug reports, Content, Data, Documentation, Design, Examples, Ideas, Feedback, etc.). Issues and Pull Requests are encouraged: from a tiny typo fix to a new feature. Help us make SDialog better 👍
You can use the Edit button (pencil icon) on GitHub to quickly propose changes to any file via the web UI.
We follow Chris Beams' guidelines for commit messages.
git clone [email protected]:idiap/sdialog.git
cd sdialog
pip install -e .Note
If you plan to work with audio capabilities, first install the required system dependencies, then install SDialog locally with:
pip install -e .[audio]For Mac users (zsh shell), you'll need to quote the argument:
pip install -e '.[audio]'flake8 --ignore=W503 --max-line-length=120
pytest -vCoverage (HTML + terminal):
pytest -v --cov=src/sdialog --cov-report=term-missing --cov-report=html
# Open htmlcov/index.htmlGenerate HTML:
cd docs
python -m sphinx -T -b html -d _build/doctrees -D language=en . ../docs_htmlRegenerate API reference (only needed if new submodules are are added):
cd docs
sphinx-apidoc -f --ext-autodoc -o api ../src/sdialogReadTheDocs latest build list: https://app.readthedocs.org/projects/sdialog/
- Update version in
src/sdialog/util.py(follow semver) - Update CHANGELOG (if present)
- Tag & push
git commit -m "Release v0.x.x"
git tag v0.x.x
git push origin main --tags- Build & upload:
python -m build
python -m twine upload dist/*- Keep functions/classes small & composable
- Add/extend tests for new features or bug fixes
- Document public APIs (docstrings + docs reference where appropriate)
- Prefer pure functions where state is not needed
- Avoid introducing heavy deps without discussion (open issue first)
- Use meaningful names; avoid abbreviations except standard ones (LLM, NLP, etc.)
Place new notebooks under tutorials/ and keep naming numeric + descriptive (e.g., 8.new_feature_example.ipynb). Ensure they run top-to-bottom in Colab. Use lightweight models or small number of elements to keep runtime short.
Provide:
- Summary
- Steps to reproduce (if bug)
- Expected vs actual
- Environment (Python version, OS, backend model)
- Minimal reproducible code snippet
- Feature / bug issue linked (if applicable)
- Tests added or updated
- Docs / examples updated
- No lint errors
- Local tests pass
- Changelog updated (if user-facing change)
Use GitHub Issues / Discussions for feature proposals. For larger changes, open a draft PR early for feedback.
This project provides an llm.txt file following the llms.txt specification for AI coding assistants. GitHub Copilot and other AI tools can fetch structured project information with: #fetch https://sdialog.readthedocs.io/en/latest/llm.txt
Your contributions make the project better for everyone. 🙏