Skip to content

Commit 17ba89f

Browse files
committed
Merge remote-tracking branch 'origin/main' into fix/prevent-session-hang
2 parents a972192 + d41d0c0 commit 17ba89f

File tree

246 files changed

+3814
-3441
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

246 files changed

+3814
-3441
lines changed

.github/dependabot.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: monthly
7+
groups:
8+
github-actions:
9+
patterns:
10+
- "*"

.github/workflows/comment-on-release.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: Checkout
16-
uses: actions/checkout@v4
16+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1717
with:
1818
fetch-depth: 0
1919

2020
- name: Get previous release
2121
id: previous_release
22-
uses: actions/github-script@v7
22+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
2323
with:
2424
script: |
2525
const currentTag = '${{ github.event.release.tag_name }}';
@@ -53,7 +53,7 @@ jobs:
5353
5454
- name: Get merged PRs between releases
5555
id: get_prs
56-
uses: actions/github-script@v7
56+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
5757
with:
5858
script: |
5959
const currentTag = '${{ github.event.release.tag_name }}';
@@ -103,7 +103,7 @@ jobs:
103103
return Array.from(prNumbers);
104104
105105
- name: Comment on PRs
106-
uses: actions/github-script@v7
106+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
107107
with:
108108
script: |
109109
const prNumbers = ${{ steps.get_prs.outputs.result }};

.github/workflows/main-checks.yml

Lines changed: 0 additions & 14 deletions
This file was deleted.

.github/workflows/main.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: ["main", "v1.x"]
6+
tags: ["v*.*.*"]
7+
pull_request:
8+
branches: ["main", "v1.x"]
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
checks:
15+
uses: ./.github/workflows/shared.yml
16+
17+
all-green:
18+
if: always()
19+
needs: [checks]
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe # v1.2.2
23+
with:
24+
jobs: ${{ toJSON(needs) }}

.github/workflows/publish-docs-manually.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ jobs:
99
permissions:
1010
contents: write
1111
steps:
12-
- uses: actions/checkout@v4
12+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1313
- name: Configure Git Credentials
1414
run: |
1515
git config user.name github-actions[bot]
1616
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
1717
1818
- name: Install uv
19-
uses: astral-sh/setup-uv@v3
19+
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
2020
with:
2121
enable-cache: true
2222
version: 0.9.5
2323

2424
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
25-
- uses: actions/cache@v4
25+
- uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
2626
with:
2727
key: mkdocs-material-${{ env.cache_id }}
2828
path: .cache

.github/workflows/publish-pypi.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ jobs:
1010
runs-on: ubuntu-latest
1111
needs: [checks]
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1414

1515
- name: Install uv
16-
uses: astral-sh/setup-uv@v3
16+
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
1717
with:
1818
enable-cache: true
1919
version: 0.9.5
@@ -25,7 +25,7 @@ jobs:
2525
run: uv build
2626

2727
- name: Upload artifacts
28-
uses: actions/upload-artifact@v4
28+
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
2929
with:
3030
name: release-dists
3131
path: dist/
@@ -44,34 +44,34 @@ jobs:
4444

4545
steps:
4646
- name: Retrieve release distributions
47-
uses: actions/download-artifact@v4
47+
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
4848
with:
4949
name: release-dists
5050
path: dist/
5151

5252
- name: Publish package distributions to PyPI
53-
uses: pypa/gh-action-pypi-publish@release/v1
53+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
5454

5555
docs-publish:
5656
runs-on: ubuntu-latest
5757
needs: ["pypi-publish"]
5858
permissions:
5959
contents: write
6060
steps:
61-
- uses: actions/checkout@v4
61+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
6262
- name: Configure Git Credentials
6363
run: |
6464
git config user.name github-actions[bot]
6565
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
6666
6767
- name: Install uv
68-
uses: astral-sh/setup-uv@v3
68+
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
6969
with:
7070
enable-cache: true
7171
version: 0.9.5
7272

7373
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
74-
- uses: actions/cache@v4
74+
- uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
7575
with:
7676
key: mkdocs-material-${{ env.cache_id }}
7777
path: .cache

.github/workflows/pull-request-checks.yml

Lines changed: 0 additions & 8 deletions
This file was deleted.

.github/workflows/shared.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ jobs:
1313
pre-commit:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v5
16+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1717

18-
- uses: astral-sh/setup-uv@v7
18+
- uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
1919
with:
2020
enable-cache: true
2121
version: 0.9.5
2222
- name: Install dependencies
2323
run: uv sync --frozen --all-extras --python 3.10
2424

25-
- uses: pre-commit/action@v3.0.1
25+
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
2626
with:
2727
extra_args: --all-files --verbose
2828
env:
@@ -39,15 +39,15 @@ jobs:
3939
dep-resolution:
4040
- name: lowest-direct
4141
install-flags: "--upgrade --resolution lowest-direct"
42-
- name: highest
43-
install-flags: "--upgrade --resolution highest"
42+
- name: locked
43+
install-flags: "--frozen"
4444
os: [ubuntu-latest, windows-latest]
4545

4646
steps:
47-
- uses: actions/checkout@v5
47+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
4848

4949
- name: Install uv
50-
uses: astral-sh/setup-uv@v7
50+
uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
5151
with:
5252
enable-cache: true
5353
version: 0.9.5
@@ -65,9 +65,9 @@ jobs:
6565
readme-snippets:
6666
runs-on: ubuntu-latest
6767
steps:
68-
- uses: actions/checkout@v5
68+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
6969

70-
- uses: astral-sh/setup-uv@v7
70+
- uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0
7171
with:
7272
enable-cache: true
7373
version: 0.9.5
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Weekly Lockfile Update
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
# Every Thursday at 8:00 UTC
7+
- cron: "0 8 * * 4"
8+
9+
permissions:
10+
contents: write
11+
pull-requests: write
12+
13+
jobs:
14+
update-lockfile:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v6.0.1
18+
19+
- uses: astral-sh/setup-uv@v7.2.0
20+
with:
21+
version: 0.9.5
22+
23+
- name: Update lockfile
24+
run: |
25+
echo '## Updated Dependencies' > pr_body.md
26+
echo '' >> pr_body.md
27+
echo '```' >> pr_body.md
28+
uv lock --upgrade 2>&1 | tee -a pr_body.md
29+
echo '```' >> pr_body.md
30+
31+
- name: Create pull request
32+
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v7
33+
with:
34+
commit-message: "chore: update uv.lock with latest dependencies"
35+
title: "chore: weekly dependency update"
36+
body-path: pr_body.md
37+
branch: weekly-lockfile-update
38+
delete-branch: true
39+
add-paths: uv.lock
40+
labels: dependencies

CLAUDE.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ This document contains critical information about working with this codebase. Fo
66

77
1. Package Management
88
- ONLY use uv, NEVER pip
9-
- Installation: `uv add package`
10-
- Running tools: `uv run tool`
11-
- Upgrading: `uv add --dev package --upgrade-package package`
9+
- Installation: `uv add <package>`
10+
- Running tools: `uv run <tool>`
11+
- Upgrading: `uv lock --upgrade-package <package>`
1212
- FORBIDDEN: `uv pip install`, `@latest` syntax
1313

1414
2. Code Quality
@@ -21,6 +21,7 @@ This document contains critical information about working with this codebase. Fo
2121
3. Testing Requirements
2222
- Framework: `uv run --frozen pytest`
2323
- Async testing: use anyio, not asyncio
24+
- Do not use `Test` prefixed classes, use functions
2425
- Coverage: test edge cases and errors
2526
- New features require tests
2627
- Bug fixes require regression tests
@@ -51,6 +52,17 @@ This document contains critical information about working with this codebase. Fo
5152
- NEVER ever mention a `co-authored-by` or similar aspects. In particular, never
5253
mention the tool used to create the commit message or PR.
5354

55+
## Breaking Changes
56+
57+
When making breaking changes, document them in `docs/migration.md`. Include:
58+
59+
- What changed
60+
- Why it changed
61+
- How to migrate existing code
62+
63+
Search for related sections in the migration guide and group related changes together
64+
rather than adding new standalone sections.
65+
5466
## Python Tools
5567

5668
## Code Formatting
@@ -66,12 +78,11 @@ This document contains critical information about working with this codebase. Fo
6678
- Line wrapping:
6779
- Strings: use parentheses
6880
- Function calls: multi-line with proper indent
69-
- Imports: split into multiple lines
81+
- Imports: try to use a single line
7082

7183
2. Type Checking
7284
- Tool: `uv run --frozen pyright`
7385
- Requirements:
74-
- Explicit None checks for Optional
7586
- Type narrowing for strings
7687
- Version warnings can be ignored if checks pass
7788

@@ -106,10 +117,6 @@ This document contains critical information about working with this codebase. Fo
106117
- Add None checks
107118
- Narrow string types
108119
- Match existing patterns
109-
- Pytest:
110-
- If the tests aren't finding the anyio pytest mark, try adding PYTEST_DISABLE_PLUGIN_AUTOLOAD=""
111-
to the start of the pytest run command eg:
112-
`PYTEST_DISABLE_PLUGIN_AUTOLOAD="" uv run --frozen pytest`
113120

114121
3. Best Practices
115122
- Check git status before commits
@@ -127,6 +134,4 @@ This document contains critical information about working with this codebase. Fo
127134
- File ops: `except (OSError, PermissionError):`
128135
- JSON: `except json.JSONDecodeError:`
129136
- Network: `except (ConnectionError, TimeoutError):`
130-
- **Only catch `Exception` for**:
131-
- Top-level handlers that must not crash
132-
- Cleanup blocks (log at debug level)
137+
- **FORBIDDEN** `except Exception:` - unless in top-level handlers

0 commit comments

Comments
 (0)