developmentseed / developmentseed/openeo-studio
Re-enable openeo >=0.50 (geopandas runtime dep) in Pyodide
- Dominant language
- TypeScript
- Stars
- 8
- Forks
- 0
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 2
Description
## Context
In #71 we pinned `openeo<0.50` as a quick fix for #70. openeo 0.50.0 promoted `geopandas` from an optional/test extra to a hard runtime dependency:
\`\`\`
'geopandas>=0.14; python_version >= \"3.9\"',
'geopandas',
\`\`\`
micropip cannot currently resolve `geopandas` (and its native `GDAL`/`fiona`/`pyogrio` chain) in the Pyodide build we use, so installing openeo 0.50+ breaks the editor's Python env initialization.
## Goal
Remove the `openeo<0.50` pin in [\`app/contexts/pyodide-context.tsx\`](https://github.com/developmentseed/openeo-studio/blob/main/app/contexts/pyodide-context.tsx) and run on the latest `openeo` release.
## Options to investigate
1. **Wait for / pull a Pyodide release with geopandas + pyogrio.** Track Pyodide's package index — geopandas has been available in past releases via the built-in package list (loaded with `pyodide.loadPackage('geopandas')` rather than micropip). We may need to:
- Bump the `pyodide` npm version.
- Pre-load `geopandas` via `loadPackage` before `micropip.install('openeo')` so micropip sees it as already satisfied.
2. **Use \`micropip.install(..., deps=False)\` or a custom resolver** to skip `geopandas` if openeo doesn't actually need it at runtime for the code paths we exercise (worth confirming upstream — it may have been added for a niche helper).
3. **Open an upstream issue/PR on `Open-EO/openeo-python-client`** to make `geopandas` an optional extra again (e.g. \`openeo[geopandas]\`), since it pulls in a heavy native stack that isn't friendly to browser/Pyodide environments.
4. **Vendor a minimal shim** that satisfies the `geopandas` import surface openeo touches, if (2) turns out to be feasible but fragile.
## Acceptance criteria
- [ ] `micropip.install('openeo')` (unpinned) succeeds in our Pyodide setup.
- [ ] Editor loads and runs existing sample scenes without regression.
- [ ] Pin removed from [\`app/contexts/pyodide-context.tsx\`](https://github.com/developmentseed/openeo-studio/blob/main/app/contexts/pyodide-context.tsx) along with the explanatory comment.
## Related
- Quick fix: #71
- Original report: #70
- Upstream release: https://github.com/Open-EO/openeo-python-client/releases/tag/v0.50.0
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.