We are pleased that you would like to contribute to Steerability. We welcome both reporting issues and submitting pull requests.
Please make sure to include any potentially useful information in the issue, so we can pinpoint the issue faster without going back and forth.
- What SHA of Steerability are you running? If this is not the latest SHA on the main branch, please try if the problem persists with the latest version.
- Python versions
Contributions to this project are released to the public under the project's opensource license.
Contributors must sign off that they adhere to these requirements by adding a Signed-off-by line to all commit messages with an email address that matches the commit author:
feat: this is my commit message
Signed-off-by: Random J Developer <random@developer.example.org>
Install the toolkit with the all extra and the default dev dependency group (pytest, pre-commit, and notebook
tooling):
uv sync --extra all
We use tools to enforce code style:
- isort, to sort imports (configured in
[tool.isort]inpyproject.toml) - detect-secrets, to scan for credentials
- a set of file checks, covering trailing whitespace, end-of-file newlines, large files, and YAML/TOML syntax
We run a series of checks on the codebase on every commit using pre-commit. To install the hooks, run:
pre-commit install
To run the checks on-demand, run:
pre-commit run --all-files
uv sync --extra all --group docs
We use MkDocs to write documentation.
To run the documentation server, run:
uv run mkdocs serveThe server will be available at http://localhost:8000.
Run the following:
uv run mkdocs gh-deploy- Fork and clone the repository
- Create a new branch:
git checkout -b my-branch-name - Make your change, push to your fork and submit a pull request
- Wait for your pull request to be reviewed and merged.
We are pleased that you are developing new functionality for the toolkit. Before committing any code, please make sure you run the secret scanning below.
This repository uses IBM's detect-secrets to scan for secrets before the code is pushed to GitHub. Follow installation instructions in their repository: https://github.com/ibm/detect-secrets?tab=readme-ov-file#example-usage
To update the secrets database manually, run:
detect-secrets scan --update .secrets.baseline
To audit detected secrets, use:
detect-secrets audit .secrets.baseline
If the pre-commit hook raises an error but the audit command succeeds with just
Nothing to audit! then run detect-secrets scan --update .secrets.baseline
to perform a full scan and then repeat the audit command.