Skip to content
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
3603881
Removed support for Python 3.6/3.7 missing ContextVar
danielmorell Jan 9, 2026
2414d2a
Initial work on adding typing.
danielmorell Jan 16, 2026
4813578
Merge branch 'master' into added/typehints
danielmorell Jan 16, 2026
57d5945
Added type stubs and typed imports where possible ignored the rest
danielmorell Feb 21, 2026
eb58125
Merge branch 'master' into added/typehints
danielmorell Apr 17, 2026
93194dc
Merge branch 'master' into added/typehints
danielmorell Apr 17, 2026
9ef5009
Added initial round of typehints
danielmorell Apr 17, 2026
158f79e
Fixed missing route passed to app init.
danielmorell May 1, 2026
2312565
Fixed check_level function to allow custom levels.
danielmorell May 1, 2026
a8102b7
Removed commented code.
danielmorell May 1, 2026
83434fc
Address review comments.
danielmorell May 8, 2026
a02b8c0
Fixed deprecated Starlette routing in tests.
danielmorell May 8, 2026
1a3c08d
More code review fixes.
danielmorell May 8, 2026
e15edf1
Removed unnecessary missing contextvar test.
danielmorell May 8, 2026
6318c76
Addressed code review comments.
danielmorell May 8, 2026
3fe9121
Dropped support for Python 3.9
danielmorell May 15, 2026
f347608
Updated 3.9 Unions and Optional to modern syntax
danielmorell May 15, 2026
50e8438
Moved type only imports to behind typing.TYPE_CHECKING.
danielmorell May 15, 2026
fba47bd
Require mypy < 2.0 until it is more stable.
danielmorell May 15, 2026
944c701
Fixed FastAPI tests skipped because of incorrect version.
danielmorell May 16, 2026
2557198
Fixed tests and addressed review comments.
danielmorell May 16, 2026
98944e5
Fixed httpx JSON encoding in FastAPI tests.
danielmorell May 16, 2026
ed68dc9
Fixed adjustment to JSON body in FastAPI tests.
danielmorell May 16, 2026
ac38287
Fixed custom traversal and typehints in tests.
danielmorell May 22, 2026
ea5823a
Updated handler typehints
danielmorell May 22, 2026
982f9c4
Added py.typed file to expose types.
danielmorell Jun 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,28 @@ jobs:

- name: Run tests
run: pytest

types:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9, '3.10', 3.11, 3.12, 3.13, 3.14]

steps:
- uses: actions/checkout@v2
with:
submodules: recursive

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install Dependencies
run: |
pip install --group test .
pip install --group type .


- name: Check Types
run: mypy
Comment thread
brianr marked this conversation as resolved.
18 changes: 18 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,21 @@
"webob",
Comment thread
danielmorell marked this conversation as resolved.
]

type = [
"bottle",
"djangorestframework-stubs[compatible-mypy]",
"django-stubs",
"fastapi",
"mypy",
"pyramid",
"quart",
"sanic",
"starlette",
"tornado",
"twisted",
"uvicorn",
]

Check failure on line 68 in pyproject.toml

View check run for this annotation

Claude / Claude Code Review

Missing typing_extensions runtime dependency breaks Python 3.9/3.10 import

On a clean Python 3.9 or 3.10 install, `import rollbar` fails with `ModuleNotFoundError: No module named 'typing_extensions'` because `rollbar/__init__.py:25-31` (Unpack) and `rollbar/lib/traverse.py:8-12` (ParamSpec) fall back to `typing_extensions` for symbols not yet in the stdlib (Unpack is 3.11+, ParamSpec is 3.10+), but pyproject.toml only declares `requests>=0.12.1` as a runtime dependency. CI hides this because the new `type` group transitively pulls `typing_extensions` via mypy and `tes
Comment thread
danielmorell marked this conversation as resolved.

[project.urls]
Homepage = "https://rollbar.com/"
Documentation = "https://docs.rollbar.com/docs/python"
Expand All @@ -64,6 +79,9 @@
[project.entry-points."paste.filter_app_factory"]
pyramid = "rollbar.contrib.pyramid:create_rollbar_middleware"

[tool.mypy]
Comment thread
brianr marked this conversation as resolved.
packages = ["rollbar"]

[tool.pytest]
testpaths = [
"rollbar/test",
Expand Down
Loading
Loading