Skip to content

Commit dc2765f

Browse files
committed
Freeze dependencies
1 parent a393602 commit dc2765f

File tree

3 files changed

+293
-2
lines changed

3 files changed

+293
-2
lines changed

.github/workflows/test.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ jobs:
1414
test:
1515
strategy:
1616
fail-fast: false
17+
matrix:
18+
use-latest-deps:
19+
- true
20+
- false
1721
runs-on: ${{ inputs.os }}
1822
steps:
1923
- name: Checkout
@@ -27,9 +31,18 @@ jobs:
2731
python-version: ${{ inputs.pyVersion }}
2832

2933
- name: Run tests
30-
run: make dev install test
34+
# Tolerate failure when using latest deps; this is just an early warning notification
35+
# that there may have been a breaking change in a dependency.
36+
continue-on-error: ${{ matrix.use-latest-deps }}
37+
run: |
38+
if [ "${{ matrix.use-latest-deps }}" = "true" ]; then
39+
make dev-latest test
40+
else
41+
make dev test
42+
fi
3143
3244
- name: Publish test coverage
45+
if: ${{ !matrix.use-latest-deps }}
3346
uses: codecov/codecov-action@v4
3447
env:
3548
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

Makefile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,26 @@
1-
dev:
1+
dev-env:
22
python3 -m venv .venv
33
ifeq ($(OS), Windows_NT)
44
.venv\Scripts\activate
55
else
66
. .venv/bin/activate
77
endif
8+
9+
dev: dev-env
10+
# Install all dependencies from the requirements-dev.txt file
11+
# Regenerate this file with `make update-dev-dep-lockfile`
12+
pip install -r requirements-dev.txt
13+
14+
dev-latest: dev-env
15+
# Install all dependencies from the pyproject.toml file
816
pip install '.[dev]'
917

18+
install-pip-tools:
19+
pip install pip-tools
20+
21+
update-dev-dep-lockfile: install-pip-tools
22+
pip-compile pyproject.toml --extra dev --output-file requirements-dev.txt
23+
1024
install:
1125
pip install .
1226

requirements-dev.txt

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.12
3+
# by the following command:
4+
#
5+
# pip-compile --extra=dev --output-file=requirements-dev.txt pyproject.toml
6+
#
7+
annotated-types==0.7.0
8+
# via pydantic
9+
anyio==4.9.0
10+
# via
11+
# httpx
12+
# openai
13+
asttokens==3.0.0
14+
# via stack-data
15+
autoflake==2.3.1
16+
# via databricks-sdk (pyproject.toml)
17+
black==25.1.0
18+
# via databricks-sdk (pyproject.toml)
19+
build==1.2.2.post1
20+
# via databricks-sdk (pyproject.toml)
21+
cachetools==5.5.2
22+
# via google-auth
23+
certifi==2025.4.26
24+
# via
25+
# httpcore
26+
# httpx
27+
# requests
28+
charset-normalizer==3.4.2
29+
# via requests
30+
click==8.2.1
31+
# via black
32+
comm==0.2.2
33+
# via ipywidgets
34+
coverage[toml]==7.9.0
35+
# via pytest-cov
36+
databricks-connect==17.0.0
37+
# via databricks-sdk (pyproject.toml)
38+
databricks-sdk==0.57.0
39+
# via databricks-connect
40+
decorator==5.2.1
41+
# via ipython
42+
distro==1.9.0
43+
# via openai
44+
execnet==2.1.1
45+
# via pytest-xdist
46+
executing==2.2.0
47+
# via stack-data
48+
google-auth==2.40.3
49+
# via
50+
# databricks-sdk
51+
# databricks-sdk (pyproject.toml)
52+
googleapis-common-protos==1.70.0
53+
# via
54+
# databricks-connect
55+
# grpcio-status
56+
grpcio==1.73.0
57+
# via
58+
# databricks-connect
59+
# grpcio-status
60+
grpcio-status==1.73.0
61+
# via databricks-connect
62+
h11==0.16.0
63+
# via httpcore
64+
httpcore==1.0.9
65+
# via httpx
66+
httpx==0.28.1
67+
# via
68+
# databricks-sdk (pyproject.toml)
69+
# langsmith
70+
# openai
71+
idna==3.10
72+
# via
73+
# anyio
74+
# httpx
75+
# requests
76+
iniconfig==2.1.0
77+
# via pytest
78+
ipython==9.3.0
79+
# via
80+
# databricks-sdk (pyproject.toml)
81+
# ipywidgets
82+
ipython-pygments-lexers==1.1.1
83+
# via ipython
84+
ipywidgets==8.1.7
85+
# via databricks-sdk (pyproject.toml)
86+
isort==6.0.1
87+
# via databricks-sdk (pyproject.toml)
88+
jedi==0.19.2
89+
# via ipython
90+
jiter==0.10.0
91+
# via openai
92+
jsonpatch==1.33
93+
# via langchain-core
94+
jsonpointer==3.0.0
95+
# via jsonpatch
96+
jupyterlab-widgets==3.0.15
97+
# via ipywidgets
98+
langchain-core==0.3.65
99+
# via langchain-openai
100+
langchain-openai==0.3.22 ; python_version > "3.7"
101+
# via databricks-sdk (pyproject.toml)
102+
langsmith==0.3.45
103+
# via langchain-core
104+
matplotlib-inline==0.1.7
105+
# via ipython
106+
mypy-extensions==1.1.0
107+
# via black
108+
numpy==2.3.0
109+
# via
110+
# databricks-connect
111+
# pandas
112+
openai==1.86.0
113+
# via
114+
# databricks-sdk (pyproject.toml)
115+
# langchain-openai
116+
orjson==3.10.18
117+
# via langsmith
118+
packaging==24.2
119+
# via
120+
# black
121+
# build
122+
# databricks-connect
123+
# langchain-core
124+
# langsmith
125+
# pytest
126+
# pytest-rerunfailures
127+
pandas==2.3.0
128+
# via databricks-connect
129+
parso==0.8.4
130+
# via jedi
131+
pathspec==0.12.1
132+
# via black
133+
pexpect==4.9.0
134+
# via ipython
135+
platformdirs==4.3.8
136+
# via black
137+
pluggy==1.6.0
138+
# via
139+
# pytest
140+
# pytest-cov
141+
prompt-toolkit==3.0.51
142+
# via ipython
143+
protobuf==6.31.1
144+
# via
145+
# googleapis-common-protos
146+
# grpcio-status
147+
ptyprocess==0.7.0
148+
# via pexpect
149+
pure-eval==0.2.3
150+
# via stack-data
151+
py4j==0.10.9.9
152+
# via databricks-connect
153+
pyarrow==20.0.0
154+
# via databricks-connect
155+
pyasn1==0.6.1
156+
# via
157+
# pyasn1-modules
158+
# rsa
159+
pyasn1-modules==0.4.2
160+
# via google-auth
161+
pycodestyle==2.13.0
162+
# via databricks-sdk (pyproject.toml)
163+
pydantic==2.11.6
164+
# via
165+
# langchain-core
166+
# langsmith
167+
# openai
168+
pydantic-core==2.33.2
169+
# via pydantic
170+
pyfakefs==5.8.0
171+
# via databricks-sdk (pyproject.toml)
172+
pyflakes==3.3.2
173+
# via autoflake
174+
pygments==2.19.1
175+
# via
176+
# ipython
177+
# ipython-pygments-lexers
178+
# pytest
179+
pyproject-hooks==1.2.0
180+
# via build
181+
pytest==8.4.0
182+
# via
183+
# databricks-sdk (pyproject.toml)
184+
# pytest-cov
185+
# pytest-mock
186+
# pytest-rerunfailures
187+
# pytest-xdist
188+
pytest-cov==6.2.1
189+
# via databricks-sdk (pyproject.toml)
190+
pytest-mock==3.14.1
191+
# via databricks-sdk (pyproject.toml)
192+
pytest-rerunfailures==15.1
193+
# via databricks-sdk (pyproject.toml)
194+
pytest-xdist==3.7.0
195+
# via databricks-sdk (pyproject.toml)
196+
python-dateutil==2.9.0.post0
197+
# via pandas
198+
pytz==2025.2
199+
# via pandas
200+
pyyaml==6.0.2
201+
# via langchain-core
202+
regex==2024.11.6
203+
# via tiktoken
204+
requests==2.32.4
205+
# via
206+
# databricks-sdk
207+
# databricks-sdk (pyproject.toml)
208+
# langsmith
209+
# requests-mock
210+
# requests-toolbelt
211+
# tiktoken
212+
requests-mock==1.12.1
213+
# via databricks-sdk (pyproject.toml)
214+
requests-toolbelt==1.0.0
215+
# via langsmith
216+
rsa==4.9.1
217+
# via google-auth
218+
six==1.17.0
219+
# via
220+
# databricks-connect
221+
# python-dateutil
222+
sniffio==1.3.1
223+
# via
224+
# anyio
225+
# openai
226+
stack-data==0.6.3
227+
# via ipython
228+
tenacity==9.1.2
229+
# via langchain-core
230+
tiktoken==0.9.0
231+
# via langchain-openai
232+
tqdm==4.67.1
233+
# via openai
234+
traitlets==5.14.3
235+
# via
236+
# comm
237+
# ipython
238+
# ipywidgets
239+
# matplotlib-inline
240+
typing-extensions==4.14.0
241+
# via
242+
# anyio
243+
# langchain-core
244+
# openai
245+
# pydantic
246+
# pydantic-core
247+
# typing-inspection
248+
typing-inspection==0.4.1
249+
# via pydantic
250+
tzdata==2025.2
251+
# via pandas
252+
urllib3==2.4.0
253+
# via requests
254+
wcwidth==0.2.13
255+
# via prompt-toolkit
256+
wheel==0.45.1
257+
# via databricks-sdk (pyproject.toml)
258+
widgetsnbextension==4.0.14
259+
# via ipywidgets
260+
zstandard==0.23.0
261+
# via langsmith
262+
263+
# The following packages are considered to be unsafe in a requirements file:
264+
# setuptools

0 commit comments

Comments
 (0)