Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
e1150ca
build(tox): migrate from pip to uv via tox-uv
sentry-junior[bot] May 22, 2026
ef1c136
gen files
sl0thentr0py May 26, 2026
933d924
use 3.13 to run tox
sl0thentr0py May 26, 2026
7345ae7
restore rest of tox.in
sl0thentr0py May 26, 2026
ae9d57c
use astral setup-uv instead, containers for 3.6 and 3.7
sl0thentr0py May 26, 2026
b4d19a1
fix usedevelop on 3.6/3.7
sl0thentr0py May 26, 2026
7697552
ci: debug git inside 3.6/3.7 containers
sl0thentr0py May 26, 2026
4f20062
ci: mark workspace safe.directory for 3.6/3.7 containers
sl0thentr0py May 26, 2026
803a584
remove extras, move to installing all deps at once
sl0thentr0py May 26, 2026
462f3d7
bump boto3 min version to 1.17 due to unresolvable urllib3
sl0thentr0py May 26, 2026
ebf1b7b
proper potel deps
sl0thentr0py May 26, 2026
e058b40
fix makefile
sl0thentr0py May 26, 2026
a14fdd3
gen files
sl0thentr0py May 26, 2026
98ba496
allow prerelease
sl0thentr0py May 26, 2026
dfe6055
fix prerelease resolution for transitive deps
sl0thentr0py May 26, 2026
b4e6e63
pin pydantic-ai-slim prerelease for pydantic_ai 2.0.0b3 env
sl0thentr0py May 26, 2026
23d468b
pin transitive prereleases and cap setuptools<81 for pkg_resources
sl0thentr0py May 26, 2026
53c1837
comment
sl0thentr0py May 26, 2026
04efbcc
fix redis service
sl0thentr0py May 26, 2026
28855fa
debug celery
sl0thentr0py May 26, 2026
8a19fa0
fix(tests): make celery beat killer wait for pidfile
sl0thentr0py May 26, 2026
bafaeec
test(celery): faulthandler dump child stacks on beat hang
sl0thentr0py May 26, 2026
e1f79ee
test(celery): arm faulthandler at fixture scope, not in run_beat
sl0thentr0py May 26, 2026
5ac2deb
test(celery): diag — fail fast on broker connect
sl0thentr0py May 27, 2026
2887b4a
test(celery): skip beat-cron tests on py3.7, drop debug code
sl0thentr0py May 27, 2026
293c03d
test: pass SENTRY_PYTHON_TEST_REDIS_HOST through tox
sl0thentr0py May 27, 2026
4553bf9
move flask pins to normal config
sl0thentr0py May 27, 2026
aaca4d5
let uv handle tox top level
sl0thentr0py May 27, 2026
32a3736
pre-commit and instructions
sl0thentr0py May 27, 2026
e165b23
port runtox
sl0thentr0py May 27, 2026
7041f7d
fix preference after runtox
sl0thentr0py May 27, 2026
03675e8
boto 1.16 should work
sl0thentr0py May 27, 2026
5c4b201
fix ray uv
sl0thentr0py May 27, 2026
9a9da3b
uv run perms
sl0thentr0py May 27, 2026
bb5d843
fix pre-releases with gen
sl0thentr0py May 27, 2026
07280c2
chore: Move ruff completely to uv (#6430)
sl0thentr0py May 28, 2026
81acec3
chore: Move mypy to uv (#6436)
sl0thentr0py May 29, 2026
f469ce3
chore: Move script running to uv (#6439)
sl0thentr0py May 29, 2026
bdcda5e
Merge remote-tracking branch 'origin/master' into chore/migrate-to-to…
sl0thentr0py May 29, 2026
61c10ea
bump werkzeug to fix security error
sl0thentr0py May 29, 2026
d0621cb
Update CONTRIBUTING.md
sl0thentr0py May 29, 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
3 changes: 2 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@
"Bash(.tox/*/bin/ruff:*)",
"Bash(ruff format:*)",
"Bash(ruff check:*)",
"Bash(mypy:*)"
"Bash(mypy:*)",
"Bash(uv run *)"
],
"deny": []
}
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
*.jsonl -diff linguist-generated=true
uv.lock -diff linguist-generated=true
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
-->

#### Reminders
- Please add tests to validate your changes, and lint your code using `tox -e linters`.
- Please add tests to validate your changes, and lint your code using `uv run ruff`.
- Add GH Issue ID _&_ Linear ID (if applicable)
- PR title should use [conventional commit](https://develop.sentry.dev/engineering-practices/commit-messages/#type) style (`feat:`, `fix:`, `ref:`, `meta:`)
- For external contributors: [CONTRIBUTING.md](https://github.com/getsentry/sentry-python/blob/master/CONTRIBUTING.md), [Sentry SDK development docs](https://develop.sentry.dev/sdk/), [Discord community](https://discord.gg/Ww9hbqr)
48 changes: 25 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@ concurrency:
permissions:
contents: read

env:
BUILD_CACHE_KEY: ${{ github.sha }}
CACHED_BUILD_PATHS: |
${{ github.workspace }}/dist-serverless

jobs:
lint:
name: Lint Sources
Expand All @@ -28,13 +23,22 @@ jobs:

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: 3.14

- run: |
pip install tox
tox -e linters
- name: Ruff check
run: uv run ruff check tests sentry_sdk

- name: Ruff format
run: uv run ruff format --check tests sentry_sdk

- name: Find raise from None
run: uv run python scripts/find_raise_from_none.py

- name: Mypy
run: uv run --group typing mypy sentry_sdk

build_lambda_layer:
name: Build Package
Expand All @@ -43,20 +47,16 @@ jobs:

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: 3.12
- name: Setup build cache
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
id: build_cache
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
path: ${{ env.CACHED_BUILD_PATHS }}
key: ${{ env.BUILD_CACHE_KEY }}
python-version: 3.14
- name: Build Packages
run: |
echo "Creating directory containing Python SDK Lambda Layer"
# This will also trigger "make dist" that creates the Python packages
make aws-lambda-layer
echo "Building SDK dist wheel and tar.gz"
uv build
echo "Building AWS Lambda Layer"
uv run --group aws --with-editable . python scripts/build_aws_lambda_layer.py
- name: Upload Python Packages
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
Expand All @@ -72,12 +72,14 @@ jobs:

steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: 3.12
python-version: 3.14

- run: |
make apidocs
rm -rf docs/_build
uv run --group docs sphinx-build -vv -W -b html docs/ docs/_build
cd docs/_build && zip -r gh-pages ./

- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
Expand Down
42 changes: 17 additions & 25 deletions .github/workflows/test-integrations-agents.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ permissions:
actions: read
pull-requests: write
statuses: write
env:
BUILD_CACHE_KEY: ${{ github.sha }}
CACHED_BUILD_PATHS: |
${{ github.workspace }}/dist-serverless
jobs:
test-agents:
name: Agents
Expand All @@ -33,26 +29,28 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.10","3.11","3.12","3.13","3.14","3.14t"]
# python3.6 reached EOL and is no longer being supported on
# new versions of hosted runners on Github Actions
# ubuntu-20.04 is the last version that supported python3.6
# see https://github.com/actions/setup-python/issues/544#issuecomment-1332535877
os: [ubuntu-22.04]
# Use Docker container only for Python 3.6
container: ${{ matrix.python-version == '3.6' && 'python:3.6' || null }}
env:
# 3.6/3.7 run in the python:X.Y container; tell uv to use that system Python.
TOX_UV_PYTHON_PREFERENCE: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && 'only-system' || 'managed' }}
container: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && format('python:{0}', matrix.python-version) || null }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
if: ${{ matrix.python-version != '3.6' }}
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache-suffix: ${{ github.workflow }}-${{ matrix.python-version }}
- name: Mark workspace safe for git (3.6/3.7 container)
# needed to make git rev-parse work in the containers
# subprocesses (e.g. sentry_sdk.utils.get_git_revision) can run git.
if: ${{ matrix.python-version == '3.6' || matrix.python-version == '3.7' }}
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Setup Test Env
run: |
pip install "coverage[toml]" tox
uv sync
- name: Erase coverage
run: |
coverage erase
uv run coverage erase
- name: Test openai_agents
run: |
set -x # print commands that are executed
Expand All @@ -61,17 +59,11 @@ jobs:
run: |
set -x # print commands that are executed
./scripts/runtox.sh "py${{ matrix.python-version }}-pydantic_ai"
- name: Generate coverage XML (Python 3.6)
if: ${{ !cancelled() && matrix.python-version == '3.6' }}
run: |
export COVERAGE_RCFILE=.coveragerc36
coverage combine .coverage-sentry-*
coverage xml --ignore-errors
- name: Generate coverage XML
if: ${{ !cancelled() && matrix.python-version != '3.6' }}
if: ${{ !cancelled() }}
run: |
coverage combine .coverage-sentry-*
coverage xml
uv run coverage combine .coverage-sentry-*
uv run coverage xml
- name: Parse and Upload Coverage
if: ${{ !cancelled() }}
uses: getsentry/codecov-action@d90e69cdf071dfbb0430159125321dc09c424d4c # main
Expand Down
42 changes: 17 additions & 25 deletions .github/workflows/test-integrations-ai-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ permissions:
actions: read
pull-requests: write
statuses: write
env:
BUILD_CACHE_KEY: ${{ github.sha }}
CACHED_BUILD_PATHS: |
${{ github.workspace }}/dist-serverless
jobs:
test-ai_workflow:
name: AI Workflow
Expand All @@ -33,26 +29,28 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.9","3.10","3.11","3.12","3.13","3.14"]
# python3.6 reached EOL and is no longer being supported on
# new versions of hosted runners on Github Actions
# ubuntu-20.04 is the last version that supported python3.6
# see https://github.com/actions/setup-python/issues/544#issuecomment-1332535877
os: [ubuntu-22.04]
# Use Docker container only for Python 3.6
container: ${{ matrix.python-version == '3.6' && 'python:3.6' || null }}
env:
# 3.6/3.7 run in the python:X.Y container; tell uv to use that system Python.
TOX_UV_PYTHON_PREFERENCE: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && 'only-system' || 'managed' }}
container: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && format('python:{0}', matrix.python-version) || null }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
if: ${{ matrix.python-version != '3.6' }}
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache-suffix: ${{ github.workflow }}-${{ matrix.python-version }}
- name: Mark workspace safe for git (3.6/3.7 container)
# needed to make git rev-parse work in the containers
# subprocesses (e.g. sentry_sdk.utils.get_git_revision) can run git.
if: ${{ matrix.python-version == '3.6' || matrix.python-version == '3.7' }}
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Setup Test Env
run: |
pip install "coverage[toml]" tox
uv sync
- name: Erase coverage
run: |
coverage erase
uv run coverage erase
- name: Test langchain-base
run: |
set -x # print commands that are executed
Expand All @@ -65,17 +63,11 @@ jobs:
run: |
set -x # print commands that are executed
./scripts/runtox.sh "py${{ matrix.python-version }}-langgraph"
- name: Generate coverage XML (Python 3.6)
if: ${{ !cancelled() && matrix.python-version == '3.6' }}
run: |
export COVERAGE_RCFILE=.coveragerc36
coverage combine .coverage-sentry-*
coverage xml --ignore-errors
- name: Generate coverage XML
if: ${{ !cancelled() && matrix.python-version != '3.6' }}
if: ${{ !cancelled() }}
run: |
coverage combine .coverage-sentry-*
coverage xml
uv run coverage combine .coverage-sentry-*
uv run coverage xml
- name: Parse and Upload Coverage
if: ${{ !cancelled() }}
uses: getsentry/codecov-action@d90e69cdf071dfbb0430159125321dc09c424d4c # main
Expand Down
42 changes: 17 additions & 25 deletions .github/workflows/test-integrations-ai.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@ permissions:
actions: read
pull-requests: write
statuses: write
env:
BUILD_CACHE_KEY: ${{ github.sha }}
CACHED_BUILD_PATHS: |
${{ github.workspace }}/dist-serverless
jobs:
test-ai:
name: AI
Expand All @@ -33,26 +29,28 @@ jobs:
fail-fast: false
matrix:
python-version: ["3.8","3.9","3.10","3.11","3.12","3.13","3.14","3.14t"]
# python3.6 reached EOL and is no longer being supported on
# new versions of hosted runners on Github Actions
# ubuntu-20.04 is the last version that supported python3.6
# see https://github.com/actions/setup-python/issues/544#issuecomment-1332535877
os: [ubuntu-22.04]
# Use Docker container only for Python 3.6
container: ${{ matrix.python-version == '3.6' && 'python:3.6' || null }}
env:
# 3.6/3.7 run in the python:X.Y container; tell uv to use that system Python.
TOX_UV_PYTHON_PREFERENCE: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && 'only-system' || 'managed' }}
container: ${{ (matrix.python-version == '3.6' || matrix.python-version == '3.7') && format('python:{0}', matrix.python-version) || null }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
if: ${{ matrix.python-version != '3.6' }}
- name: Install uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
cache-suffix: ${{ github.workflow }}-${{ matrix.python-version }}
- name: Mark workspace safe for git (3.6/3.7 container)
# needed to make git rev-parse work in the containers
# subprocesses (e.g. sentry_sdk.utils.get_git_revision) can run git.
if: ${{ matrix.python-version == '3.6' || matrix.python-version == '3.7' }}
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Setup Test Env
run: |
pip install "coverage[toml]" tox
uv sync
- name: Erase coverage
run: |
coverage erase
uv run coverage erase
- name: Test anthropic
run: |
set -x # print commands that are executed
Expand Down Expand Up @@ -81,17 +79,11 @@ jobs:
run: |
set -x # print commands that are executed
./scripts/runtox.sh "py${{ matrix.python-version }}-openai-notiktoken"
- name: Generate coverage XML (Python 3.6)
if: ${{ !cancelled() && matrix.python-version == '3.6' }}
run: |
export COVERAGE_RCFILE=.coveragerc36
coverage combine .coverage-sentry-*
coverage xml --ignore-errors
- name: Generate coverage XML
if: ${{ !cancelled() && matrix.python-version != '3.6' }}
if: ${{ !cancelled() }}
run: |
coverage combine .coverage-sentry-*
coverage xml
uv run coverage combine .coverage-sentry-*
uv run coverage xml
- name: Parse and Upload Coverage
if: ${{ !cancelled() }}
uses: getsentry/codecov-action@d90e69cdf071dfbb0430159125321dc09c424d4c # main
Expand Down
Loading
Loading