Skip to content

Commit 0e9500e

Browse files
committed
feat: first stab at rewriting Circle CI config file
- Modify `pyproject.toml` to have a separate `dev_build` section with packages needed for building the plotly package. - Replace uses of `uv pip` with `uv sync` in `.circleci/config.yml`.
1 parent feddd5d commit 0e9500e

File tree

2 files changed

+29
-38
lines changed

2 files changed

+29
-38
lines changed

.circleci/config.yml

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ commands:
2525
curl -LsSf https://astral.sh/uv/install.sh | sh
2626
uv venv
2727
source .venv/bin/activate
28-
uv pip install .
29-
uv pip install -r ./test_requirements/requirements_core.txt
28+
uv sync --extra dev_core
3029
- run:
3130
name: List installed packages and python version
3231
command: |
@@ -56,8 +55,7 @@ commands:
5655
curl -LsSf https://astral.sh/uv/install.sh | sh
5756
uv venv
5857
source .venv/bin/activate
59-
uv pip install .
60-
uv pip install -r ./test_requirements/requirements_optional.txt
58+
uv sync --extra dev_optional
6159
6260
- when:
6361
condition:
@@ -70,8 +68,7 @@ commands:
7068
name: Install pandas
7169
command: |
7270
source .venv/bin/activate
73-
uv pip install pip
74-
python -m pip install pandas==<<parameters.pandas_version>> numpy==<<parameters.numpy_version>>
71+
uv pip install pandas==<<parameters.pandas_version>> numpy==<<parameters.numpy_version>>
7572
7673
- run:
7774
name: Test core
@@ -125,8 +122,7 @@ commands:
125122
curl -LsSf https://astral.sh/uv/install.sh | sh
126123
uv venv
127124
source .venv/bin/activate
128-
uv pip install .
129-
uv pip install -r ./test_requirements/requirements_optional.txt
125+
uv pip install .[dev_optional]
130126
# Install Kaleido v0 instead of the v1 specified in requirements_optional.txt
131127
uv pip uninstall kaleido
132128
uv pip install kaleido==0.2.1
@@ -151,16 +147,16 @@ jobs:
151147
steps:
152148
- checkout
153149
- run:
154-
name: Install black
150+
name: Install ruff
155151
command: |
156-
python -m venv venv
157-
. venv/bin/activate
158-
pip install black==25.1.0
152+
uv venv
153+
source .venv/bin/activate
154+
uv sync --extra dev_core
159155
- run:
160-
name: Check formatting with black
156+
name: Check formatting with ruff
161157
command: |
162-
. venv/bin/activate
163-
black --check . --exclude venv
158+
source .venv/bin/activate
159+
ruff check .
164160
165161
test_core_py:
166162
parameters:
@@ -226,22 +222,20 @@ jobs:
226222
curl -LsSf https://astral.sh/uv/install.sh | sh
227223
uv venv
228224
source .venv/bin/activate
229-
uv pip install -e .
230-
uv pip install -r test_requirements/requirements_optional.txt
225+
uv sync --extra dev_optional
231226
232227
- run:
233-
name: Build html figures (Pandas 2)
228+
name: Build HTML figures (Pandas 2)
234229
command: |
235230
source .venv/bin/activate
236231
python tests/percy/plotly-express.py
237232
- run:
238-
name: Build html figures (Pandas 1) and compare
233+
name: Build HTML figures (Pandas 1) and compare
239234
command: |
240235
source .venv/bin/activate
241236
mkdir tests/percy/pandas2
242237
mv tests/percy/*.html tests/percy/pandas2/
243-
uv pip install pip
244-
python -m pip install pandas==1.5.3 numpy==1.26.4
238+
uv pip install pandas==1.5.3 numpy==1.26.4
245239
python tests/percy/plotly-express.py
246240
python tests/percy/compare-pandas.py
247241
rm -rf tests/percy/pandas2
@@ -273,8 +267,7 @@ jobs:
273267
curl -LsSf https://astral.sh/uv/install.sh | sh
274268
uv venv
275269
source .venv/bin/activate
276-
uv pip install -e .
277-
uv pip install -r ./test_requirements/requirements_core.txt black inflect jupyterlab
270+
uv sync --extra dev_optional
278271
- run:
279272
name: Update plotly.js to dev
280273
command: |
@@ -291,7 +284,7 @@ jobs:
291284
name: Build source distribution packages
292285
command: |
293286
source .venv/bin/activate
294-
uv pip install build
287+
uv sync --extra dev_build
295288
python -m build --sdist --wheel -o dist
296289
when: always
297290
- store_artifacts:
@@ -312,8 +305,7 @@ jobs:
312305
curl -LsSf https://astral.sh/uv/install.sh | sh
313306
uv venv
314307
source .venv/bin/activate
315-
uv pip install build
316-
uv pip install jupyter
308+
uv sync --extra dev_build
317309
cd js
318310
npm ci
319311
npm run build
@@ -352,7 +344,7 @@ jobs:
352344
curl -LsSf https://astral.sh/uv/install.sh | sh
353345
uv venv
354346
source .venv/bin/activate
355-
uv pip install -r requirements.txt
347+
uv sync
356348
cd ..
357349
if [ "${CIRCLE_BRANCH}" != "doc-prod" ]; then
358350
uv pip uninstall plotly

pyproject.toml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,22 @@ express = ["numpy"]
4949
kaleido = ["kaleido==1.0.0rc15"]
5050
dev_core = [
5151
"pytest",
52-
"requests"
52+
"requests",
53+
# pin precise version of ruff to prevent accidental reformatting in case its defaults are updated
54+
"ruff==0.11.12"
5355
]
54-
dev_optional = [
55-
# all core dependencies
56+
dev_build = [
5657
"plotly[dev_core]",
57-
58-
# pin precise version of ruff to prevent accidental reformatting in case its defaults are updated
59-
"ruff==0.11.12",
60-
61-
# other dependencies required to test and build
62-
"anywidget",
6358
"build",
59+
"jupyter"
60+
]
61+
dev_optional = [
62+
"plotly[dev_build]",
63+
"plotly[kaleido]",
64+
"anywidget",
6465
"colorcet",
6566
"geopandas",
6667
"inflect",
67-
"jupyter",
68-
"plotly[kaleido]",
6968
"numpy",
7069
"orjson",
7170
"pandas",

0 commit comments

Comments
 (0)