Skip to content

Commit 2e2a2bf

Browse files
teh-hippoCopilot
andcommitted
chore: migrate to uv and update dependencies
- Add .python-version (3.13) for uv - Add uv.lock for reproducible installs - Update dependency pins to latest compatible versions: requests 2.32.3→2.32.5, schema 0.7.7→0.7.8, tqdm 4.67.1→4.67.3, typing_extensions 4.14.0→4.15.0, Flask 3.1.1→3.1.3, pytz 2025.2→2026.1.post1, certifi 2025.4.26→2026.2.25, keyring 25.6.0→25.7.0 - Keep urllib3 at 1.26.20 (intentional 1.x pin) - Keep piexif, srp, keyrings-alt, waitress, tzlocal (already latest) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent a191045 commit 2e2a2bf

File tree

5 files changed

+2032
-83
lines changed

5 files changed

+2032
-83
lines changed

.github/workflows/publish.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,13 @@ jobs:
9090
- name: Checkout code
9191
uses: actions/checkout@v4
9292

93-
- name: Set up Python 3.13
94-
uses: actions/setup-python@v5
93+
- name: Set up uv
94+
uses: astral-sh/setup-uv@v5
9595
with:
96-
python-version: '3.13'
97-
96+
enable-cache: true
97+
9898
- name: Install Dev dependencies
99-
run: |
100-
pip3 install --group dev
99+
run: uv sync --python 3.13 --group dev
101100

102101
- name: Download artifacts (src)
103102
uses: actions/download-artifact@v4
@@ -120,7 +119,7 @@ jobs:
120119
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
121120
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
122121
run: |
123-
python3 -m twine upload --non-interactive --disable-progress-bar dist/*.whl
122+
uv run python3 -m twine upload --non-interactive --disable-progress-bar dist/*.whl
124123
125124
gh_release:
126125
runs-on: ubuntu-22.04

.github/workflows/quality-checks.yml

Lines changed: 27 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,14 @@ jobs:
3636
python-version: ['3.10', '3.11', '3.12', '3.13']
3737
steps:
3838
- uses: actions/checkout@v4
39-
- name: Set up Python ${{ matrix.python-version }}
40-
uses: actions/setup-python@v5
39+
- name: Set up uv
40+
uses: astral-sh/setup-uv@v5
4141
with:
42-
python-version: ${{ matrix.python-version }}
43-
- name: Install Test dependencies
44-
run: >
45-
python3 -m pip install --disable-pip-version-check -r requirements-pip.txt &&
46-
pip3 install --disable-pip-version-check . --group test
47-
42+
enable-cache: true
43+
- name: Install dependencies
44+
run: uv sync --python ${{ matrix.python-version }} --group test
4845
- name: Lint
49-
run: |
50-
scripts/lint
46+
run: uv run scripts/lint
5147

5248
type_check:
5349
needs: skip_check
@@ -58,18 +54,14 @@ jobs:
5854
python-version: ['3.10', '3.11', '3.12', '3.13']
5955
steps:
6056
- uses: actions/checkout@v4
61-
- name: Set up Python ${{ matrix.python-version }}
62-
uses: actions/setup-python@v5
63-
with:
64-
python-version: ${{ matrix.python-version }}
65-
cache: 'pip'
66-
- name: Install Test dependencies
67-
run: >
68-
python3 -m pip install --disable-pip-version-check -r requirements-pip.txt &&
69-
pip3 install --disable-pip-version-check . --group test
57+
- name: Set up uv
58+
uses: astral-sh/setup-uv@v5
59+
with:
60+
enable-cache: true
61+
- name: Install dependencies
62+
run: uv sync --python ${{ matrix.python-version }} --group test
7063
- name: Type Check
71-
run: |
72-
scripts/type_check
64+
run: uv run scripts/type_check
7365

7466
patch_version:
7567
needs: skip_check
@@ -97,20 +89,14 @@ jobs:
9789
path: |
9890
src/foundation
9991
100-
- name: Set up Python ${{ matrix.python-version }}
101-
uses: actions/setup-python@v5
102-
with:
103-
python-version: ${{ matrix.python-version }}
104-
cache: 'pip'
105-
106-
- name: Install Test dependencies
107-
run: >
108-
python3 -m pip install --disable-pip-version-check -r requirements-pip.txt &&
109-
pip3 install --disable-pip-version-check . --group test
110-
92+
- name: Set up uv
93+
uses: astral-sh/setup-uv@v5
94+
with:
95+
enable-cache: true
96+
- name: Install dependencies
97+
run: uv sync --python ${{ matrix.python-version }} --group test
11198
- name: Test
112-
run: |
113-
scripts/test
99+
run: uv run scripts/test
114100

115101
test_non_linux:
116102
needs: [skip_check, patch_version]
@@ -139,20 +125,14 @@ jobs:
139125
path: |
140126
src/foundation
141127
142-
- name: Set up Python ${{ matrix.python-version }}
143-
uses: actions/setup-python@v5
144-
with:
145-
python-version: ${{ matrix.python-version }}
146-
cache: 'pip'
147-
148-
- name: Install Test dependencies
149-
run: >
150-
python3 -m pip install --disable-pip-version-check -r requirements-pip.txt &&
151-
pip3 install --disable-pip-version-check . --group test
152-
128+
- name: Set up uv
129+
uses: astral-sh/setup-uv@v5
130+
with:
131+
enable-cache: true
132+
- name: Install dependencies
133+
run: uv sync --python ${{ matrix.python-version }} --group test
153134
- name: Test
154-
run: |
155-
scripts/test
135+
run: uv run scripts/test
156136

157137
get_version:
158138
needs: skip_check

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

pyproject.toml

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[build-system]
22
requires = [
3-
"setuptools==80.9.0",
4-
"wheel==0.45.1",
3+
"setuptools==82.0.1",
4+
"wheel==0.46.3",
55
]
66
build-backend = "setuptools.build_meta"
77

@@ -23,57 +23,57 @@ classifiers = [
2323
"License :: OSI Approved :: MIT License",
2424
]
2525
dependencies = [
26-
"requests==2.32.3",
27-
"schema==0.7.7",
28-
"tqdm==4.67.1",
26+
"requests==2.33.0",
27+
"schema==0.7.8",
28+
"tqdm==4.67.3",
2929
"piexif==1.1.3",
3030
"urllib3==1.26.20",
31-
"typing_extensions==4.14.0",
32-
"Flask==3.1.1",
31+
"typing_extensions==4.15.0",
32+
"Flask==3.1.3",
3333
"waitress==3.0.2",
3434
# from pyicloud_ipd
3535
"tzlocal==5.3.1",
36-
"pytz==2025.2",
37-
"certifi==2025.4.26",
38-
"keyring==25.6.0",
36+
"pytz==2026.1.post1",
37+
"certifi==2026.2.25",
38+
"keyring==25.7.0",
3939
"keyrings-alt==5.0.2",
4040
"srp==1.0.22",
4141
]
4242

4343
[dependency-groups]
4444
doc = [
45-
"furo==2024.8.6",
46-
"Sphinx==7.4.7",
45+
"furo==2025.12.19",
46+
"Sphinx==8.1.3",
4747
"sphinx-autobuild==2024.10.3",
48-
"myst-parser==3.0.1"
48+
"myst-parser==4.0.1"
4949
]
5050
dev = [
51-
"twine==6.1.0",
52-
"pyinstaller==6.14.0",
53-
"wheel==0.45.1",
51+
"twine==6.2.0",
52+
"pyinstaller==6.19.0",
53+
"wheel==0.46.3",
5454
]
5555
devlinux = [
56-
"auditwheel==6.4.0",
56+
"auditwheel==6.6.0",
5757
#"staticx==0.14.1",
58-
"scons==4.9.1"
58+
"scons==4.10.1"
5959
]
6060
test = [
61-
"pytest==8.4.0",
61+
"pytest==9.0.2",
6262
"mock==5.2.0",
63-
"freezegun==1.5.2",
64-
"vcrpy==7.0.0",
65-
"pytest-cov==6.2.1",
66-
"ruff==0.11.13",
63+
"freezegun==1.5.5",
64+
"vcrpy==8.1.1",
65+
"pytest-cov==7.1.0",
66+
"ruff==0.15.8",
6767
"pytest-timeout==2.4.0",
68-
"pytest-xdist==3.7.0",
69-
"mypy==1.16.0",
70-
"types-pytz==2025.2.0.20250516",
68+
"pytest-xdist==3.8.0",
69+
"mypy==1.19.1",
70+
"types-pytz==2026.1.1.20260304",
7171
"types-tzlocal==5.1.0.1",
7272
"types-requests==2.31.0.2",
7373
"types-urllib3==1.26.25.14",
74-
"types-tqdm==4.67.0.20250516",
75-
"types-mock==5.2.0.20250516",
76-
"types-waitress==3.0.1.20241117",
74+
"types-tqdm==4.67.3.20260303",
75+
"types-mock==5.2.0.20250924",
76+
"types-waitress==3.0.1.20260316",
7777
]
7878

7979
[project.urls]

0 commit comments

Comments
 (0)