Skip to content

chore: align ci titles and group tests#225

Merged
mogita merged 2 commits intomainfrom
chore/align-ci-titles
Mar 20, 2026
Merged

chore: align ci titles and group tests#225
mogita merged 2 commits intomainfrom
chore/align-ci-titles

Conversation

@mogita
Copy link
Copy Markdown
Contributor

@mogita mogita commented Mar 19, 2026

Summary by CodeRabbit

  • Chores
    • Split CI test workflow into separate non-video and video test jobs and moved test/lint/typecheck steps to centralized development targets for clearer, consistent runs.
  • Documentation
    • Updated developer docs to describe the new centralized targets, test variants (non-video, video, integration, telemetry), and guidance to prefer the new targets over the legacy script.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 19, 2026

📝 Walkthrough

Walkthrough

The CI and developer workflow were migrated to Makefile-driven targets: the single test job in .github/workflows/run_tests.yml was split into test-non-video and test-video, lint/typecheck steps now invoke make lint/make typecheck, and documentation/dev tooling were updated to reference Makefile targets.

Changes

Cohort / File(s) Summary
CI Workflow
​.github/workflows/run_tests.yml
Replaced inline pytest/ruff/ty steps with Makefile-driven commands. Split test job into test-non-video and test-video, adjusted env credential sourcing and unified test step labels to "Run tests".
Makefile (new)
Makefile
Added Makefile with targets: test, test-video, test-all, test-integration, test-jaeger, test-prometheus, lint, format, typecheck, check, regen, help. Introduces MARKER, VIDEO_PATHS/VIDEO_IGNORE, MANUAL_PATHS/MANUAL_IGNORE, and TY_EXCLUDES.
Developer docs
DEVELOPMENT.md
Rewrote workflow instructions to prefer Makefile targets (make test, make test-video, make lint, make typecheck, make regen, etc.), added Setup steps (copy .env.example, install pre-commit), and documented legacy dev.py.
Legacy dev script docstring
dev.py
Docstring updated to recommend using the Makefile (make help) and mark the script as retained for backward compatibility. No runtime changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I nibble at Makefiles under moonlight's glow,
Targets sprout paths where test-rivers flow,
Split hops for video and non-video trails,
Lint, type, and regen — I leave neat rabbit trails. 🥕✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: CI workflow titles were standardized and tests were reorganized into separate jobs (non-video and video groups).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/align-ci-titles
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the reusable CI workflow to better align test job titles and to separate “non-video” vs “video” test execution based on which Stream credentials are required.

Changes:

  • Renames/splits the prior test job into test-non-video and test-video with clearer job names per Python version.
  • Adjusts pytest invocation to exclude video-related code/tests from non-video runs and explicitly run video-related paths under video-enabled credentials.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@mogita mogita changed the title chore: align ci titles chore: align ci titles and group tests Mar 20, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (2)
DEVELOPMENT.md (1)

58-61: Avoid documenting two primary codegen paths.

This adds make regen, but the existing ## OpenAPI & Protobuf section later in the file still tells contributors to run ./generate.sh and ./generate_webrtc.sh directly. I'd collapse the lower section onto make regen or explicitly label the scripts as the implementation behind that target, otherwise the guidance will drift.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@DEVELOPMENT.md` around lines 58 - 61, Consolidate the duplicate codegen
guidance by making "make regen" the single primary instruction and either remove
or re-label the later "OpenAPI & Protobuf" section; update the text to state
that "make regen" runs the underlying scripts (./generate.sh and
./generate_webrtc.sh) or collapse that section into the "Code generation"
section so contributors only see one authoritative command (reference: the "make
regen" mention and the ./generate.sh and ./generate_webrtc.sh script names).
Makefile (1)

93-95: Consider pinning ty to improve reproducibility of this target.

The typecheck target uses uvx ty check, which executes ty in an isolated environment without version pinning. This differs from other quality targets in the Makefile that use uv run and benefit from exact version pinning in uv.lock. If ty is already a dev dependency in the project, use uv run ty check ... to match the pattern and ensure reproducibility. Otherwise, pin the tool explicitly with uvx --from 'ty==…' to avoid fetching the latest version on first invocation.

♻️ Suggested change if ty is in dev dependencies
 ## Run ty type checker
 typecheck:
-	uvx ty check getstream/ $(TY_EXCLUDES)
+	uv run ty check getstream/ $(TY_EXCLUDES)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@Makefile` around lines 93 - 95, The Makefile's typecheck target uses an
unpinned tool invocation ("uvx ty check" in the typecheck target), which makes
runs non-reproducible; update the typecheck target to either call the pinned
dev-dependency runner ("uv run ty check getstream/ $(TY_EXCLUDES)") if ty is
already a dev dependency, or explicitly pin the tool when using uvx (e.g., use
uvx --from 'ty==<version>' ty check getstream/ $(TY_EXCLUDES)) so the Makefile's
typecheck target consistently uses a fixed ty version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@DEVELOPMENT.md`:
- Around line 3-22: Change the two top-level sections currently using "###"
headings ("### Setup" and "### Running tests") to "##" so they are siblings of
"## Release" and "## OpenAPI & Protobuf", and update the three fenced code
blocks under those headings to use shell language identifiers (```shell) so
markdown lint rules MD001/MD040 are satisfied; apply the same heading and fence
fixes to the other occurrences mentioned (the later blocks around the remainder
of the file).

---

Nitpick comments:
In `@DEVELOPMENT.md`:
- Around line 58-61: Consolidate the duplicate codegen guidance by making "make
regen" the single primary instruction and either remove or re-label the later
"OpenAPI & Protobuf" section; update the text to state that "make regen" runs
the underlying scripts (./generate.sh and ./generate_webrtc.sh) or collapse that
section into the "Code generation" section so contributors only see one
authoritative command (reference: the "make regen" mention and the ./generate.sh
and ./generate_webrtc.sh script names).

In `@Makefile`:
- Around line 93-95: The Makefile's typecheck target uses an unpinned tool
invocation ("uvx ty check" in the typecheck target), which makes runs
non-reproducible; update the typecheck target to either call the pinned
dev-dependency runner ("uv run ty check getstream/ $(TY_EXCLUDES)") if ty is
already a dev dependency, or explicitly pin the tool when using uvx (e.g., use
uvx --from 'ty==<version>' ty check getstream/ $(TY_EXCLUDES)) so the Makefile's
typecheck target consistently uses a fixed ty version.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 89015bc9-7ef0-4ce1-a965-056f3f9b890f

📥 Commits

Reviewing files that changed from the base of the PR and between cf91fcc and 22e873a.

📒 Files selected for processing (4)
  • .github/workflows/run_tests.yml
  • DEVELOPMENT.md
  • Makefile
  • dev.py
✅ Files skipped from review due to trivial changes (1)
  • dev.py

Comment on lines +3 to 22
### Setup

Clone the repo and sync
Clone the repo and install dependencies:

```
git clone git@github.com:GetStream/stream-py.git
uv sync --no-sources --all-packages --all-extras --dev
cp .env.example .env # fill in your Stream credentials
pre-commit install # optional: enable commit hooks
```

Env setup
### Running tests

Run `make help` to see all available targets. The most common ones:

```
cp .env.example .env
make test # non-video tests (chat, feeds, moderation, etc.)
make test-video # video/WebRTC tests only
make test-all # both of the above
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix the new Markdown hierarchy/language lint regressions.

These sections read as top-level siblings of ## Release and ## OpenAPI & Protobuf, so they should be ## headings instead of ###. The added command snippets are also all shell examples, so fencing them as shell will clear the MD001/MD040 warnings and keep the document structure consistent.

Also applies to: 27-64

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)


[warning] 7-7: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 18-18: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@DEVELOPMENT.md` around lines 3 - 22, Change the two top-level sections
currently using "###" headings ("### Setup" and "### Running tests") to "##" so
they are siblings of "## Release" and "## OpenAPI & Protobuf", and update the
three fenced code blocks under those headings to use shell language identifiers
(```shell) so markdown lint rules MD001/MD040 are satisfied; apply the same
heading and fence fixes to the other occurrences mentioned (the later blocks
around the remainder of the file).

@mogita mogita merged commit 8ff29f0 into main Mar 20, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants