Files
abogen/docs/contributing.md
Artem Akymenko 096ea58d74 docs: rewrite developer-guide as architectural reference
- Remove implementation details that will rot (code templates, tutorials)
- Keep only stable contracts: ownership, lifecycle, protocols, error semantics
- 270 lines → reference that only changes when architecture changes
2026-07-12 16:20:28 +03:00

1.4 KiB

Contributing to Abogen

We welcome contributions to Abogen!

How to Contribute

  1. Fork the repository
  2. Create a branch for your feature
  3. Make your changes
  4. Write tests
  5. Submit a pull request

Code Standards

  • Follow PEP 8 for Python
  • Use TypeScript for JavaScript
  • Type hints required for new Python code
  • Document complex logic with comments

Plugin Architecture

When contributing TTS engines, implement the Plugin Architecture contract.

See Developer Guide for:

  • Required exports (PLUGIN_MANIFEST, MODEL_REQUIREMENTS, create_engine)
  • Engine / EngineSession contracts
  • Capability interfaces (VoiceLister, PreviewGenerator, etc.)
  • Step-by-step plugin creation guide

Testing

# All tests
pytest

# Contract tests (architectural compliance)
pytest tests/contracts/

# Behavioral regression tests
pytest tests/test_behavioral_regression.py

Documentation

  • Update relevant docs in docs/ when changing architecture or APIs
  • Add docstrings to all public functions/classes
  • Follow existing documentation style

Pull Request Checklist

  • Tests pass (pytest)
  • Code follows style guide (ruff check, ruff format)
  • Documentation updated
  • No legacy architecture references (TTSBackend, register_backend, TTSBackendRegistry)
  • Uses new Plugin Architecture patterns