Skip to content

Commit 0ee3e34

Browse files
committed
ci: pin a guidata development ref for unreleased dataset items
Sigima develop imports guidata's unreleased HistogramRangeItem. Assisted-by: Claude Opus 5.5
1 parent 4b28e81 commit 0ee3e34

20 files changed

Lines changed: 395 additions & 126 deletions

‎.env.template‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,5 @@ PYTHONPATH=.;..\Sigima;..\guidata
2727
# Vite at it with an absolute /@fs/ URL (use forward slashes). This local value
2828
# overrides both fields in sigima-dependency.json for browser runtimes only:
2929
# VITE_SIGIMA_INSTALL_SPEC=/@fs/C:/path/to/Sigima/dist/sigima-X.Y.Z-py3-none-any.whl
30+
# The same override exists for guidata (guidata-dependency.json):
31+
# VITE_GUIDATA_INSTALL_SPEC=/@fs/C:/path/to/guidata/dist/guidata-X.Y.Z-py3-none-any.whl

‎.github/workflows/perf.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
- name: Install npm dependencies
6060
run: npm ci
6161

62-
- name: Prepare configured Sigima dependency
62+
- name: Prepare configured Sigima and guidata dependencies
6363
run: >-
6464
python scripts/sigima_dependency.py prepare-pyodide
6565
--wheel-dir .wheels

‎.github/workflows/release.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
steps:
2020
- uses: actions/checkout@v4
2121

22-
- name: Require a published Sigima dependency
22+
- name: Require published Sigima and guidata dependencies
2323
run: node scripts/check-sigima-release.mjs
2424

2525
- name: Check tag matches package.json and SDK versions
@@ -61,6 +61,7 @@ jobs:
6161
cache-dependency-path: |
6262
requirements-dev.txt
6363
sigima-dependency.json
64+
guidata-dependency.json
6465
6566
- name: Install Python dependencies
6667
run: |
@@ -91,6 +92,7 @@ jobs:
9192
- name: Run Playwright tests
9293
env:
9394
VITE_SIGIMA_INSTALL_SPEC: ""
95+
VITE_GUIDATA_INSTALL_SPEC: ""
9496
run: npm run test:e2e
9597

9698
- name: Upload Playwright report

‎.github/workflows/tests.yml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ jobs:
3030
cache-dependency-path: |
3131
requirements-dev.txt
3232
sigima-dependency.json
33+
guidata-dependency.json
3334
3435
- name: Install Python dependencies
3536
run: |
@@ -103,7 +104,7 @@ jobs:
103104
- name: Install npm dependencies
104105
run: npm ci
105106

106-
- name: Prepare configured Sigima dependency
107+
- name: Prepare configured Sigima and guidata dependencies
107108
run: >-
108109
python scripts/sigima_dependency.py prepare-pyodide
109110
--wheel-dir .wheels

‎CONTRIBUTING.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ and Pyodide without `PYTHONPATH` or `VITE_SIGIMA_INSTALL_SPEC`, then set
109109
`developmentRef` to `null`. See [doc/releasing.md](doc/releasing.md) for the
110110
release checklist.
111111

112+
Use [guidata-dependency.json](guidata-dependency.json) in the same way when Sigima or DataLab-Web needs a merged but unpublished guidata change. Its `publishedRequirement` may be an exact pin or a lower bound (`guidata>=X.Y.Z`); a non-null `developmentRef` blocks releases until a guidata version providing the change is published and required.
113+
112114
## Branching model
113115

114116
DataLab-Web follows the same two-branch model as the sibling repositories (DataLab, Sigima): day-to-day work lands on **`develop`**, and **`main`** is the release branch — `develop` is merged into `main` only when cutting a real release. CI ([tests.yml](.github/workflows/tests.yml)) runs the cheap regression suite on both branches and on pull requests targeting either. The multi-minute performance benchmarks are **not** part of that run; they are opt-in and driven by a separate on-demand workflow (see the **Performance benchmarks** section of [doc/testing-strategy.md](doc/testing-strategy.md)).

‎README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@ the target Sigima version is published and qualified without a local override,
110110
set the field to `null`; the generalized snapshot mechanism remains available
111111
for the next coordinated change.
112112

113+
[`guidata-dependency.json`](guidata-dependency.json) applies the same mechanism to guidata when Sigima or DataLab-Web needs unreleased guidata changes. Its `publishedRequirement` may be an exact pin or a lower bound (`guidata>=X.Y.Z`). The install command above and the CI wheel preparation handle both manifests, and `VITE_GUIDATA_INSTALL_SPEC` is the matching local browser override.
114+
113115
## Documentation
114116

115117
| Topic | Guide |

‎doc/releasing.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ the release browser tests never build or export a development wheel.
3535
`release:pack` uses `build:release`, whose release mode ignores even an
3636
accidental `VITE_SIGIMA_INSTALL_SPEC` from the developer's ignored `.env`.
3737

38-
> **What `git push --tags` triggers** — the [`Release tarballs`](../.github/workflows/release.yml) workflow runs, in order: Sigima release guard and version coherence check (tag ↔ both `package.json` files) → `pytest tests/python` (3.11 + 3.12) and Playwright E2E against the published Sigima pin (in parallel) → lint + Vitest + build + pack the two `.tgz` → publish a GitHub Release with the tarballs and auto-generated notes → deploy `dist/` to GitHub Pages. Any failing gate aborts the release **and** the deploy.
38+
The guard applies the same rule to [`guidata-dependency.json`](../guidata-dependency.json): a non-null guidata `developmentRef` blocks the release until a guidata version providing the required changes is published and `publishedRequirement` requires it (for example `guidata>=X.Y.Z`). Release builds also ignore `VITE_GUIDATA_INSTALL_SPEC`.
39+
40+
> **What `git push --tags` triggers** — the [`Release tarballs`](../.github/workflows/release.yml) workflow runs, in order: Sigima and guidata release guard and version coherence check (tag ↔ both `package.json` files) → `pytest tests/python` (3.11 + 3.12) and Playwright E2E against the published Sigima pin (in parallel) → lint + Vitest + build + pack the two `.tgz` → publish a GitHub Release with the tarballs and auto-generated notes → deploy `dist/` to GitHub Pages. Any failing gate aborts the release **and** the deploy.
3941
4042
## Distribution: app bundle + SDK tarballs
4143

‎doc/testing-strategy.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ the sibling checkout, and its `PYTHONPATH` may prioritize sibling Python
5858
sources, but neither alters the versioned CI selection. Remove those local
5959
overrides when qualifying the exact manifest-selected dependency.
6060

61+
The resolver applies the same rules to [guidata-dependency.json](../guidata-dependency.json), installing its `developmentRef` in CPython and exporting the matching browser wheel through `VITE_GUIDATA_INSTALL_SPEC`.
62+
6163
When qualifying a published Sigima version for release, use a clean environment
6264
without `..\Sigima` in `PYTHONPATH` and without `VITE_SIGIMA_INSTALL_SPEC`.
6365
This ensures both pytest and Playwright exercise the exact PyPI version rather

‎guidata-dependency.json‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"publishedRequirement": "guidata>=3.15.0",
3+
"developmentRef": "7203944df510bac341df643a97ff17850ff3fe92"
4+
}

‎requirements-dev.txt‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ pylint>=3.0
1919
# ``pre-commit install`` once after cloning. See CONTRIBUTING.md.
2020
pre-commit>=3.7
2121

22-
# Sigima (= computation engine) is selected through sigima-dependency.json.
23-
# Use scripts/sigima_dependency.py to install the configured revision together
22+
# Sigima (= computation engine) and guidata are selected through
23+
# sigima-dependency.json and guidata-dependency.json. Use
24+
# scripts/sigima_dependency.py to install the configured revisions together
2425
# with these mandatory dependencies.
2526
guidata>=3.15.0
2627
numpy>=1.22

0 commit comments

Comments
 (0)