Skip to content

Commit 0e3d78a

Browse files
Merge branch 'main' into claude/flip-slack-verifier-precedence
2 parents dff667b + a0d8816 commit 0e3d78a

3 files changed

Lines changed: 13 additions & 7 deletions

File tree

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
strategy:
1616
matrix:
17-
python-version: ["3.10", "3.11", "3.12", "3.13"]
17+
python-version: ["3.12", "3.13"]
1818
steps:
1919
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.2.2
2020
- uses: astral-sh/setup-uv@e4db8464a088ece1b920f60402e813ea4de65b8f # v4

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ async def handle_mention(thread, message):
7171
| Feature | chat-sdk | Raw platform SDKs | BotFramework SDK |
7272
|---------|----------|--------------------|------------------|
7373
| Multi-platform from one codebase | 8 platforms | 1 per SDK | Teams + limited |
74-
| Async-native (Python 3.10+) | Yes | Varies | No |
74+
| Async-native (Python 3.12+) | Yes | Varies | No |
7575
| Cross-platform cards | Card model | Platform-specific | Adaptive Cards only |
7676
| Thread locking / dedup | Built-in | DIY | DIY |
7777
| State abstraction (mem/redis/pg) | Built-in | DIY | DIY |

pyproject.toml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,14 @@ keywords = [
1818
]
1919
readme = "README.md"
2020
license = {text = "MIT"}
21-
requires-python = ">=3.10"
21+
requires-python = ">=3.12"
2222
dependencies = []
2323
classifiers = [
2424
"Development Status :: 3 - Alpha",
2525
"Framework :: AsyncIO",
2626
"Intended Audience :: Developers",
2727
"License :: OSI Approved :: MIT License",
2828
"Programming Language :: Python :: 3",
29-
"Programming Language :: Python :: 3.10",
30-
"Programming Language :: Python :: 3.11",
3129
"Programming Language :: Python :: 3.12",
3230
"Programming Language :: Python :: 3.13",
3331
"Topic :: Communications",
@@ -99,11 +97,19 @@ include = [
9997
asyncio_mode = "auto"
10098

10199
[tool.ruff]
102-
target-version = "py310"
100+
target-version = "py312"
103101
line-length = 120
104102

105103
[tool.ruff.lint]
106104
select = ["E", "F", "I", "B", "SIM", "UP"]
105+
# Modernization of pre-3.12 patterns is deferred to follow-up PRs; the 3.12
106+
# floor bump itself doesn't rewrite call sites. Re-enable these as the
107+
# codebase is migrated.
108+
ignore = [
109+
"UP017", # datetime.timezone.utc → datetime.UTC (3.11+)
110+
"UP040", # TypeAlias → PEP 695 `type` keyword (3.12+)
111+
"UP041", # asyncio.TimeoutError → builtins TimeoutError (3.11+)
112+
]
107113

108114
[dependency-groups]
109115
dev = [
@@ -132,7 +138,7 @@ project-excludes = ["**/__pycache__", "**/.pytest_cache"]
132138
disable-project-excludes-heuristics = true
133139
use-ignore-files = false
134140

135-
python-version = "3.10"
141+
python-version = "3.12"
136142
python-platform = "linux"
137143

138144
# Optional adapter deps that aren't in the default install. Treating them as

0 commit comments

Comments
 (0)