This repository is intended to be published as rstreamlabs/rstream-python.
From the repository root:
gh repo create rstreamlabs/rstream-python \
--private \
--source . \
--remote origin \
--pushKeep the repository private until the first maintainer review is complete. After validation, make it public:
gh repo edit rstreamlabs/rstream-python --visibility publicRecommended repository settings:
gh repo edit rstreamlabs/rstream-python \
--enable-issues=true \
--enable-projects=false \
--enable-wiki=falseThe normal CI workflow does not require secrets. It runs on pushes to main and
on pull requests:
- Ruff lint and format check.
- Mypy strict type check.
- Pytest.
- Source distribution and wheel build.
- Linux, macOS, and Windows.
- Python 3.10, 3.11, 3.12, and 3.13.
Release automation requires:
| Kind | Name | Purpose |
|---|---|---|
| Repository variable | CI_ALLOWED_ACTOR |
GitHub login allowed to run release-please on main. |
| Repository secret | RELEASE_PLEASE_TOKEN |
Token used by release-please to create and update release PRs. |
release-please-config.json and .release-please-manifest.json are part of
the repository contract. Keep both files versioned so release-please can update
pyproject.toml, src/rstream/version.py, CHANGELOG.md, tags, and GitHub
releases from the same manifest state.
RELEASE_PLEASE_TOKEN should have the minimum permissions needed to write
contents and pull requests in this repository. The workflow is guarded by
CI_ALLOWED_ACTOR so regular contributors cannot trigger release automation.
Before making the repository public, protect main with:
- pull request required before merge;
- CI required;
- no force pushes;
- no branch deletion;
- linear history if that remains consistent with the rest of the rstream SDK repositories.
The package distribution name is rstreamlabs-rstream. The import package
inside Python remains rstream, so application code uses import rstream.
Prefer PyPI trusted publishing over a long-lived API token. Configure the PyPI project with:
| Field | Value |
|---|---|
| Owner | rstreamlabs |
| Repository | rstream-python |
| Project name | rstreamlabs-rstream |
| Workflow | the future publish workflow filename |
| Environment | pypi, if an environment gate is used |
This repository currently includes CI and release-please. Add the PyPI publish workflow only when the first public package release is approved.
If trusted publishing is not available, use a scoped PYPI_API_TOKEN secret, but
prefer keeping that path disabled until release policy is decided.
Before the first push:
ruff check .
ruff format --check .
mypy
pytest
python -m buildAlso run at least one real-engine e2e command from TESTING.md against a local or managed engine and record the command in the release notes or PR description.