Contributing
Contributions are welcome.
The first step to contribute is to install the package in editable mode. For any changes, check that the tests still pass as detailed below.
Local development¶
- Clone the repository.
- Install uv.
-
Create a venv and install signalbot with its dependencies in it (including extra dependencies to be able to run the examples)
- You can install signalbot as an editable depedency in another repository (e.g. your own bot repository) like so
-
Install the prek hook for linting and formatting
Unit Testing¶
The tests can be executed with
Extending signalbot¶
Adding support for a new Signal message type touches a small, predictable set of files. Start with the Architecture page to see how the layers fit together, then follow the checklist for the direction you are adding:
- New incoming messages: a message pushed by signal-cli-rest-api that signalbot parses and dispatches to a handler.
- New outgoing messages: a bot author call that turns into an HTTP request against a signal-cli-rest-api endpoint.
Supporting a newer signal-cli-rest-api release? See Upgrading to a new signal-cli-rest-api version.
Releasing¶
Maintainers publish a new version by pushing a tag, see Releasing.
Serving the documentation locally¶
- Install the docs dependencies
- Run the zensical serve command