Skip to content

Commit adc5f2c

Browse files
authored
Merge branch 'main' into main
2 parents 4ca69e7 + fee8227 commit adc5f2c

File tree

193 files changed

+15416
-14635
lines changed

Some content is hidden

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

193 files changed

+15416
-14635
lines changed

.github/DISCUSSION_TEMPLATE/questions.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,14 @@ body:
6464
If I (or someone) can copy it, run it, and see it right away, there's a much higher chance I (or someone) will be able to help you.
6565
6666
placeholder: |
67-
from typing import Optional
68-
6967
from sqlmodel import Field, Session, SQLModel, create_engine
7068
7169
7270
class Hero(SQLModel, table=True):
73-
id: Optional[int] = Field(default=None, primary_key=True)
71+
id: int | None = Field(default=None, primary_key=True)
7472
name: str
7573
secret_name: str
76-
age: Optional[int] = None
74+
age: int | None = None
7775
7876
7977
hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson")

.github/workflows/build-docs.yml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ on:
77
types:
88
- opened
99
- synchronize
10+
11+
env:
12+
UV_SYSTEM_PYTHON: 1
13+
14+
1015
jobs:
1116
changes:
1217
runs-on: ubuntu-latest
@@ -36,6 +41,7 @@ jobs:
3641
- mkdocs.no-insiders.yml
3742
- .github/workflows/build-docs.yml
3843
- .github/workflows/deploy-docs.yml
44+
- data/**
3945
4046
build-docs:
4147
needs:
@@ -52,17 +58,19 @@ jobs:
5258
uses: actions/setup-python@v5
5359
with:
5460
python-version: "3.11"
55-
- uses: actions/cache@v4
56-
id: cache
61+
- name: Setup uv
62+
uses: astral-sh/setup-uv@v6
5763
with:
58-
path: ${{ env.pythonLocation }}
59-
key: ${{ runner.os }}-python-docs-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml', 'requirements-docs.txt', 'requirements-docs-insiders.txt', 'requirements-docs-tests.txt') }}-v02
64+
version: "0.4.15"
65+
enable-cache: true
66+
cache-dependency-glob: |
67+
requirements**.txt
68+
pyproject.toml
6069
- name: Install docs extras
61-
if: steps.cache.outputs.cache-hit != 'true'
62-
run: pip install -r requirements-docs.txt
70+
run: uv pip install -r requirements-docs.txt
6371
- name: Install Material for MkDocs Insiders
64-
if: ( github.event_name != 'pull_request' || github.secret_source == 'Actions' ) && steps.cache.outputs.cache-hit != 'true'
65-
run: pip install -r requirements-docs-insiders.txt
72+
if: ( github.event_name != 'pull_request' || github.secret_source == 'Actions' )
73+
run: uv pip install -r requirements-docs-insiders.txt
6674
env:
6775
TOKEN: ${{ secrets.SQLMODEL_MKDOCS_MATERIAL_INSIDERS }}
6876
- uses: actions/cache@v4

.github/workflows/deploy-docs.yml

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ permissions:
1212
pull-requests: write
1313
statuses: write
1414

15+
env:
16+
UV_SYSTEM_PYTHON: 1
17+
1518
jobs:
1619
deploy-docs:
1720
runs-on: ubuntu-latest
@@ -25,14 +28,16 @@ jobs:
2528
uses: actions/setup-python@v5
2629
with:
2730
python-version: "3.11"
28-
- uses: actions/cache@v4
29-
id: cache
31+
- name: Setup uv
32+
uses: astral-sh/setup-uv@v6
3033
with:
31-
path: ${{ env.pythonLocation }}
32-
key: ${{ runner.os }}-python-github-actions-${{ env.pythonLocation }}-${{ hashFiles('requirements-github-actions.txt') }}-v01
34+
version: "0.4.15"
35+
enable-cache: true
36+
cache-dependency-glob: |
37+
requirements**.txt
38+
pyproject.toml
3339
- name: Install GitHub Actions dependencies
34-
if: steps.cache.outputs.cache-hit != 'true'
35-
run: pip install -r requirements-github-actions.txt
40+
run: uv pip install -r requirements-github-actions.txt
3641
- name: Deploy Docs Status Pending
3742
run: python ./scripts/deploy_docs_status.py
3843
env:
@@ -55,19 +60,19 @@ jobs:
5560
# hashFiles returns an empty string if there are no files
5661
if: hashFiles('./site/*')
5762
id: deploy
58-
uses: cloudflare/pages-action@v1
63+
env:
64+
PROJECT_NAME: sqlmodel
65+
BRANCH: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'main' && 'main' ) || ( github.event.workflow_run.head_sha ) }}
66+
uses: cloudflare/wrangler-action@v3
5967
with:
6068
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
6169
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
62-
projectName: sqlmodel
63-
directory: './site'
64-
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
65-
branch: ${{ ( github.event.workflow_run.head_repository.full_name == github.repository && github.event.workflow_run.head_branch == 'main' && 'main' ) || ( github.event.workflow_run.head_sha ) }}
70+
command: pages deploy ./site --project-name=${{ env.PROJECT_NAME }} --branch=${{ env.BRANCH }}
6671
- name: Comment Deploy
6772
run: python ./scripts/deploy_docs_status.py
6873
env:
6974
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70-
DEPLOY_URL: ${{ steps.deploy.outputs.url }}
75+
DEPLOY_URL: ${{ steps.deploy.outputs.deployment-url }}
7176
COMMIT_SHA: ${{ github.event.workflow_run.head_sha }}
7277
RUN_ID: ${{ github.run_id }}
7378
IS_DONE: "true"

.github/workflows/issue-manager.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
env:
2828
GITHUB_CONTEXT: ${{ toJson(github) }}
2929
run: echo "$GITHUB_CONTEXT"
30-
- uses: tiangolo/[email protected].0
30+
- uses: tiangolo/[email protected].1
3131
with:
3232
token: ${{ secrets.GITHUB_TOKEN }}
3333
config: >
@@ -39,5 +39,9 @@ jobs:
3939
"waiting": {
4040
"delay": 2628000,
4141
"message": "As this PR has been waiting for the original user for a while but seems to be inactive, it's now going to be closed. But if there's anyone interested, feel free to create a new PR."
42+
},
43+
"invalid": {
44+
"delay": 0,
45+
"message": "This was marked as invalid and will be closed now. If this is an error, please provide additional details."
4246
}
4347
}

.github/workflows/labeler.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/labeler@v5
20+
if: ${{ github.event.action != 'labeled' && github.event.action != 'unlabeled' }}
21+
- run: echo "Done adding labels"
2022
# Run this after labeler applied labels
2123
check-labels:
2224
needs:

.github/workflows/latest-changes.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
3131
with:
3232
limit-access-to-actor: true
33-
- uses: tiangolo/[email protected].1
33+
- uses: tiangolo/[email protected].2
3434
with:
3535
token: ${{ secrets.GITHUB_TOKEN }}
3636
latest_changes_file: docs/release-notes.md

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ jobs:
3434
TIANGOLO_BUILD_PACKAGE: ${{ matrix.package }}
3535
run: python -m build
3636
- name: Publish
37-
uses: pypa/gh-action-pypi-publish@v1.9.0
37+
uses: pypa/gh-action-pypi-publish@v1.12.4

.github/workflows/smokeshow.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,44 @@ on:
88
permissions:
99
statuses: write
1010

11+
env:
12+
UV_SYSTEM_PYTHON: 1
13+
1114
jobs:
1215
smokeshow:
1316
if: ${{ github.event.workflow_run.conclusion == 'success' }}
1417
runs-on: ubuntu-latest
15-
1618
steps:
19+
- uses: actions/checkout@v4
1720
- uses: actions/setup-python@v5
1821
with:
1922
python-version: '3.9'
20-
21-
- run: pip install smokeshow
22-
23+
- name: Setup uv
24+
uses: astral-sh/setup-uv@v6
25+
with:
26+
version: "0.4.15"
27+
enable-cache: true
28+
cache-dependency-glob: |
29+
requirements**.txt
30+
pyproject.toml
31+
- run: uv pip install -r requirements-github-actions.txt
2332
- uses: actions/download-artifact@v4
2433
with:
2534
name: coverage-html
2635
path: htmlcov
2736
github-token: ${{ secrets.GITHUB_TOKEN }}
2837
run-id: ${{ github.event.workflow_run.id }}
29-
30-
- run: smokeshow upload htmlcov
38+
# Try 5 times to upload coverage to smokeshow
39+
- name: Upload coverage to Smokeshow
40+
run: |
41+
for i in 1 2 3 4 5; do
42+
if smokeshow upload htmlcov; then
43+
echo "Smokeshow upload success!"
44+
break
45+
fi
46+
echo "Smokeshow upload error, sleep 1 sec and try again."
47+
sleep 1
48+
done
3149
env:
3250
SMOKESHOW_GITHUB_STATUS_DESCRIPTION: Coverage {coverage-percentage}
3351
SMOKESHOW_GITHUB_COVERAGE_THRESHOLD: 95

.github/workflows/test.yml

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,52 +18,56 @@ on:
1818
# cron every week on monday
1919
- cron: "0 0 * * 1"
2020

21+
env:
22+
UV_SYSTEM_PYTHON: 1
23+
2124
jobs:
2225
test:
23-
runs-on: ubuntu-latest
2426
strategy:
2527
matrix:
28+
os: [ ubuntu-latest ]
2629
python-version:
27-
- "3.7"
2830
- "3.8"
2931
- "3.9"
3032
- "3.10"
3133
- "3.11"
3234
- "3.12"
35+
- "3.13"
3336
pydantic-version:
3437
- pydantic-v1
3538
- pydantic-v2
3639
fail-fast: false
37-
40+
runs-on: ${{ matrix.os }}
3841
steps:
3942
- uses: actions/checkout@v4
4043
- name: Set up Python
4144
uses: actions/setup-python@v5
4245
with:
4346
python-version: ${{ matrix.python-version }}
47+
- name: Setup uv
48+
uses: astral-sh/setup-uv@v6
49+
with:
50+
version: "0.4.15"
51+
enable-cache: true
52+
cache-dependency-glob: |
53+
requirements**.txt
54+
pyproject.toml
4455
# Allow debugging with tmate
4556
- name: Setup tmate session
4657
uses: mxschmitt/action-tmate@v3
4758
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
4859
with:
4960
limit-access-to-actor: true
50-
- uses: actions/cache@v4
51-
id: cache
52-
with:
53-
path: ${{ env.pythonLocation }}
54-
key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml', 'requirements-tests.txt') }}-v01
5561
- name: Install Dependencies
56-
if: steps.cache.outputs.cache-hit != 'true'
57-
run: pip install -r requirements-tests.txt
62+
run: uv pip install -r requirements-tests.txt
5863
- name: Install Pydantic v1
5964
if: matrix.pydantic-version == 'pydantic-v1'
60-
run: pip install --upgrade "pydantic>=1.10.0,<2.0.0"
65+
run: uv pip install --upgrade "pydantic>=1.10.0,<2.0.0"
6166
- name: Install Pydantic v2
6267
if: matrix.pydantic-version == 'pydantic-v2'
63-
run: pip install --upgrade "pydantic>=2.0.2,<3.0.0" "typing-extensions==4.6.1"
68+
run: uv pip install --upgrade "pydantic>=2.0.2,<3.0.0"
6469
- name: Lint
65-
# Do not run on Python 3.7 as mypy behaves differently
66-
if: matrix.python-version != '3.7' && matrix.pydantic-version == 'pydantic-v2'
70+
if: matrix.pydantic-version == 'pydantic-v2' && matrix.python-version != '3.8'
6771
run: bash scripts/lint.sh
6872
- run: mkdir coverage
6973
- name: Test
@@ -82,28 +86,31 @@ jobs:
8286
needs:
8387
- test
8488
runs-on: ubuntu-latest
85-
8689
steps:
8790
- uses: actions/checkout@v4
88-
8991
- uses: actions/setup-python@v5
9092
with:
91-
python-version: '3.12'
92-
93+
python-version: '3.13'
94+
- name: Setup uv
95+
uses: astral-sh/setup-uv@v6
96+
with:
97+
version: "0.4.15"
98+
enable-cache: true
99+
cache-dependency-glob: |
100+
requirements**.txt
101+
pyproject.toml
93102
- name: Get coverage files
94103
uses: actions/download-artifact@v4
95104
with:
96105
pattern: coverage-*
97106
path: coverage
98107
merge-multiple: true
99-
100-
- run: pip install coverage[toml]
101-
108+
- name: Install Dependencies
109+
run: uv pip install -r requirements-tests.txt
102110
- run: ls -la coverage
103111
- run: coverage combine coverage
104112
- run: coverage report
105113
- run: coverage html --title "Coverage for ${{ github.sha }}"
106-
107114
- name: Store coverage HTML
108115
uses: actions/upload-artifact@v4
109116
with:

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ default_language_version:
44
python: python3.10
55
repos:
66
- repo: https://github.com/pre-commit/pre-commit-hooks
7-
rev: v4.6.0
7+
rev: v5.0.0
88
hooks:
99
- id: check-added-large-files
1010
- id: check-toml
@@ -14,7 +14,7 @@ repos:
1414
- id: end-of-file-fixer
1515
- id: trailing-whitespace
1616
- repo: https://github.com/astral-sh/ruff-pre-commit
17-
rev: v0.6.2
17+
rev: v0.12.4
1818
hooks:
1919
- id: ruff
2020
args:

0 commit comments

Comments
 (0)