Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
5d90857
upper limit dependency cases solved move to numpyv2 - step 1 cleared
suriyahgit Apr 9, 2026
8a864e9
grep replaced parse_obj to model_validate - solving this persistent p…
suriyahgit Apr 9, 2026
1add225
numpy upgraded to v2 - solved
suriyahgit Apr 9, 2026
a117de6
pre-commit linting - numpyv2 upgrade
suriyahgit Apr 9, 2026
4085af1
updated main workflow file
suriyahgit Apr 9, 2026
292e10b
github actions node20 deprecation annotation to node24
suriyahgit Apr 9, 2026
1bf0cf6
retaining flexibility into the pyproject.toml along with raising the …
suriyahgit Apr 9, 2026
a58bae5
the pyupgrade to accomodate py3.14 pre-commit hooks
suriyahgit Apr 9, 2026
12d1546
gdal installed from conda and not unstable ppa anymore
suriyahgit Apr 10, 2026
3e579bb
adding ci-environment.yml where it is visible to the github actions
suriyahgit Apr 10, 2026
24a859e
adding more sensibility to the cache mgmt - release ci aligned with m…
suriyahgit Apr 10, 2026
b2e9960
release ci regex issue solved
suriyahgit Apr 10, 2026
5ef6999
node20 deprecation for action runners by april 2026, moving to node24…
suriyahgit Apr 10, 2026
a04a606
corrections on the node20 -- node24 upgradations
suriyahgit Apr 10, 2026
a9ffecb
release package compiler set to py3.12 from py3.11 for lts
suriyahgit Apr 10, 2026
1df3e26
relaxed dependencies - dependency matrix tests - completed
suriyahgit Apr 10, 2026
d68fc81
array interpolate linear - previous brute force compute is now rework…
suriyahgit Apr 10, 2026
4cbe6c8
solved the masked array return type issue - modified dummy string tes…
suriyahgit Apr 10, 2026
0d3eecf
adding tests for codecov - scalar return tests for array_find
suriyahgit Apr 13, 2026
63fb96b
accomodating michele's review - xgboost dask explicit extra adding
suriyahgit Apr 14, 2026
e91ab28
Address PR review feedback
suriyahgit May 15, 2026
deab724
Merge branch 'main' into fix/dependencies_update
clausmichele Jun 3, 2026
d8dbe00
Slim down load_stac: remove xcube-eopf, drop Python 3.14 from CI
suriyahgit Jun 4, 2026
0a74b01
Drop Python 3.14 classifiers and version constraint from pyproject.toml
suriyahgit Jun 4, 2026
0b6626c
Update README GDAL instructions and add install-methods CI workflow
suriyahgit Jun 5, 2026
e055dac
Fix install-methods CI: use conda instead of mamba, fix micromamba in…
suriyahgit Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/ci-environment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name: ci
channels:
- conda-forge
dependencies:
- gdal
57 changes: 57 additions & 0 deletions .github/workflows/install-methods.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Install Methods

on:
schedule:
- cron: '0 6 * * 1'
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

jobs:
conda-pip:
name: conda + pip
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6
- uses: conda-incubator/setup-miniconda@v4
with:
python-version: "3.12"
activate-environment: install-test
channels: conda-forge
channel-priority: strict
conda-remove-defaults: true
- run: conda install -y gdal
- run: pip install .[implementations]
- run: python -c "import openeo_processes_dask; print('OK')"

micromamba-pip:
name: micromamba + pip
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6
- uses: mamba-org/setup-micromamba@v2
with:
environment-name: install-test
create-args: python=3.12 gdal
- run: pip install .[implementations]
- run: python -c "import openeo_processes_dask; print('OK')"

system-pip:
name: system packages + pip
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6
- run: sudo apt-get update && sudo apt-get install -y gdal-bin libgdal-dev
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- run: pip install "gdal==$(gdal-config --version)" .[implementations]
- run: python -c "import openeo_processes_dask; print('OK')"
101 changes: 53 additions & 48 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ on:
workflow_dispatch:

env:
POETRY_VERSION: 1.5.1

POETRY_VERSION: 2.3.3

jobs:
tests:
Expand All @@ -24,77 +23,83 @@ jobs:
strategy:
matrix:
os: [Ubuntu]
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.10", "3.11", "3.12", "3.13"]
include:
- os: Ubuntu
image: ubuntu-24.04 # switch to Noble (24.04)
image: ubuntu-24.04
fail-fast: false
defaults:
run:
shell: bash
shell: bash -l {0}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
# --- Conda env with GDAL from conda-forge ---
- name: Set up Miniforge + Python ${{ matrix.python-version }}
uses: conda-incubator/setup-miniconda@v4
with:
miniforge-version: latest
python-version: ${{ matrix.python-version }}
activate-environment: ci
channels: conda-forge
channel-priority: strict
environment-file: .github/ci-environment.yml
use-mamba: true
conda-remove-defaults: true

# Cache downloaded conda tarballs (NOT the resolved environment)
- name: Cache conda package downloads
uses: actions/cache@v5
with:
path: ~/conda_pkgs_dir
key: conda-pkgs-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('.github/ci-environment.yml') }}
restore-keys: |
conda-pkgs-${{ runner.os }}-py${{ matrix.python-version }}-

- name: Install system GDAL 3.11.3 (UbuntuGIS)
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y
sudo apt-get update
# Install GDAL from the PPA (brings matching libgdal)
sudo apt-get install -y libgdal-dev gdal-bin
gdalinfo --version
# Show where libgdal comes from (should be /usr/lib/* from UbuntuGIS)
apt-cache policy libgdal-dev | sed -n '1,20p'
- name: Configure conda pkg cache directory
run: conda config --add pkgs_dirs ~/conda_pkgs_dir

- name: Get full Python version
id: full-python-version
run: echo version=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT
# Always do a full solve + install — never skip, so dependency breakage is caught
- name: Install GDAL via conda-forge
run: |
mamba install -y gdal
conda clean --all -f -y

- name: Bootstrap poetry
run: curl -sSL https://install.python-poetry.org | python3 - -y --version $POETRY_VERSION
- name: Verify GDAL
run: |
gdalinfo --version
python -c "from osgeo import gdal; print('GDAL Python:', gdal.__version__)"

- name: Update PATH
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
# --- Poetry ---
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 - -y --version $POETRY_VERSION
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Configure poetry
run: poetry config virtualenvs.in-project true
- name: Configure Poetry to use conda env
run: poetry config virtualenvs.create false

- name: Set up cache
uses: actions/cache@v3
id: cache
# Cache downloaded pip wheels (NOT installed packages)
- name: Cache pip downloads
uses: actions/cache@v5
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('**/poetry.lock') }}
path: ~/.cache/pip
key: pip-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
pip-${{ runner.os }}-py${{ matrix.python-version }}-

- name: Ensure cache is healthy
if: steps.cache.outputs.cache-hit == 'true'
run: |
[ "$(command -v timeout)" ] || function timeout() { perl -e 'alarm shift; exec @ARGV' "$@"; }
timeout 10s poetry run pip --version || rm -rf .venv

# Important: make Poetry resolve GDAL against system libgdal=3.11
# If you explicitly pin GDAL in pyproject, set it to "==3.11.3".
- name: Install dependencies
run: |
ver="$(gdal-config --version)"
poetry add "gdal==${ver}" # adds to main group
poetry install --with dev --all-extras
run: poetry install --with dev --all-extras

- name: Pre-commit hooks
run: poetry run pre-commit run --all-files
run: pre-commit run --all-files

- name: Run pytest
run: poetry run pytest --cov=openeo_processes_dask --cov-report=xml
run: pytest --cov=openeo_processes_dask --cov-report=xml

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v6
with:
files: ./coverage.xml
44 changes: 34 additions & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,53 @@ on:
- '*.*.*'

env:
POETRY_VERSION: 1.5.1
POETRY_VERSION: 2.3.3

jobs:
release:
name: Release
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v6
with:
submodules: recursive

- name: Set up Python 3.11
uses: actions/setup-python@v4
- name: Set up Miniforge + Python 3.12
uses: conda-incubator/setup-miniconda@v4
with:
python-version: "3.11"
miniforge-version: latest
python-version: "3.12"
activate-environment: release
channels: conda-forge
channel-priority: strict
environment-file: .github/ci-environment.yml
use-mamba: true
conda-remove-defaults: true

- name: Bootstrap poetry
- name: Install GDAL via conda-forge
run: |
curl -sL https://install.python-poetry.org | python - -y
mamba install -y gdal
conda clean --all -f -y

- name: Update PATH
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Verify GDAL
run: |
gdalinfo --version
python -c "from osgeo import gdal; print('GDAL Python:', gdal.__version__)"

- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 - -y --version $POETRY_VERSION
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Configure Poetry to use conda env
run: poetry config virtualenvs.create false

- name: Install dependencies
run: poetry install

- name: Build project for distribution
run: poetry build
Expand Down
27 changes: 14 additions & 13 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_language_version:
python: python3
python: python3

repos:
- repo: https://github.com/asottile/pyupgrade
rev: v3.10.1
- repo: https://github.com/asottile/pyupgrade
rev: v3.21.2 # upgrading to 3.21.2 from 3.10.1 to accomodate py3.14 in test_matrix
hooks:
- id: pyupgrade
args:
- --keep-runtime-typing
- --py39-plus

- repo: https://github.com/python-poetry/poetry
rev: 1.5.1
- repo: https://github.com/python-poetry/poetry
rev: 2.3.3
hooks:
- id: poetry-check

- repo: https://github.com/pycqa/isort
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
name: isort (python)
args: ["--profile", "black"]

- repo: https://github.com/pre-commit/pre-commit-hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

- repo: https://github.com/psf/black
- repo: https://github.com/psf/black
rev: 23.7.0
hooks:
- id: black
- id: black
exclude: ^specs/openeo-processes/
Loading
Loading