Skip to content

Commit 29b8d37

Browse files
Merge branch 'v4-dev' into runge-kutta2
2 parents a39a72c + 420d91e commit 29b8d37

File tree

112 files changed

+1285
-2155
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+1285
-2155
lines changed

.github/CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
See https://docs.oceanparcels.org/en/latest/contributing.html
1+
See https://docs.parcels-code.org/en/latest/contributing.html

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
contact_links:
22
- name: 🙏 Parcels use question, help, or support
3-
url: https://github.com/OceanParcels/parcels/discussions/new?category=q-a
3+
url: https://github.com/Parcels-code/parcels/discussions/new?category=q-a
44
about: Have a question about Parcels? Or do you need troubleshooting for a specific usecase? Then start a Q&A Discussion thread instead, and we'll be happy to help.
55
- name: 💬 Other Parcels discussion
6-
url: https://github.com/OceanParcels/parcels/discussions
6+
url: https://github.com/Parcels-code/parcels/discussions
77
about: For general discussion about Parcels, or to share your work with the community, please use the Discussions tab.

.github/ci/recipe.yaml

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,43 +29,35 @@ requirements:
2929
- wheel
3030
run:
3131
- python >=3.11
32-
- cftime
33-
- dask
34-
- matplotlib-base >=2.0.2
35-
- netcdf4 >=1.1.9
36-
- numpy >=1.11
37-
- platformdirs
38-
- pytest
39-
- scipy >=0.16.0
40-
- trajan
41-
- tqdm
42-
- xarray >=0.10.8
43-
- cf_xarray
44-
- xgcm
45-
- zarr >=2.11.0,!=2.18.0,<3
32+
- cftime >=1.6.3
33+
- dask >=2024.5.1
34+
- netcdf4 >=1.7.2
35+
- numpy >=2.1.0
36+
- tqdm >=4.50.0
37+
- xarray >=2024.5.0
38+
- cf_xarray >=0.8.6
39+
- xgcm >=0.9.0
40+
- zarr >=2.15.0,!=2.18.0,<3
4641
- uxarray>=2025.3.0
4742
- pyogrio # needed for geopandas (uxarray -> geoviews -> geopandas -> pyogrio, but for some reason conda doesn't pick it up automatically)
48-
- pooch
43+
- pooch >=1.8.0
4944

5045
tests:
5146
- python:
5247
imports:
5348
- parcels
5449

5550
about:
56-
homepage: https://github.com/OceanParcels/parcels
51+
homepage: https://github.com/Parcels-code/parcels
5752
license: MIT
5853
license_file: LICENSE.md
59-
summary: Probably A Really Computationally Efficient Lagrangian Simulator
54+
summary: Parcels - A highly customisable Lagrangian simulation framework
6055
description: |
61-
Parcels (Probably A Really Computationally Efficient Lagrangian Simulator)
62-
is a set of Python classes and methods to create customisable particle
63-
tracking simulations using output from Ocean Circulation models.
64-
Parcels can be used to track passive and active particulates such as
65-
water, nutrients, plankton, plastic and fish.
66-
documentation: https://oceanparcels.org/
67-
repository: https://github.com/OceanParcels/parcels
56+
Parcels provides a set of Python classes and methods to create customisable particle tracking simulations using gridded output from (ocean) circulation models.
57+
documentation: https://parcels-code.org/
58+
repository: https://github.com/Parcels-code/parcels
6859

6960
extra:
7061
recipe-maintainers:
7162
- VeckoTheGecko
63+
- erikvansebille

.github/workflows/additional.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
shell: bash -l {0}
1414

1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717
- name: Setup micromamba
1818
uses: mamba-org/setup-micromamba@v2
1919
with:
@@ -36,7 +36,7 @@ jobs:
3636
shell: bash -l {0}
3737

3838
steps:
39-
- uses: actions/checkout@v4
40-
- uses: actions/checkout@v4
39+
- uses: actions/checkout@v5
40+
- uses: actions/checkout@v5
4141
- uses: prefix-dev/[email protected]
4242
- run: pixi run docs-linkcheck

.github/workflows/cache-pixi-lock.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ name: Generate and cache Pixi lockfile
22

33
on:
44
workflow_call:
5+
inputs:
6+
pixi-version:
7+
type: string
58
outputs:
69
cache-id:
710
description: "The lock file contents"
@@ -17,6 +20,7 @@ jobs:
1720
- uses: actions/checkout@v5
1821
with:
1922
fetch-depth: 0
23+
submodules: recursive
2024
- name: Get current date
2125
id: date
2226
run: echo "date=$(date +'%Y-%m-%d')" >> "$GITHUB_OUTPUT"
@@ -25,11 +29,11 @@ jobs:
2529
with:
2630
path: |
2731
pixi.lock
28-
key: ${{ steps.date.outputs.date }}_${{hashFiles('pixi.toml')}}
32+
key: ${{ steps.date.outputs.date }}_${{inputs.pixi-version}}_${{hashFiles('pixi.toml')}}
2933
- uses: prefix-dev/[email protected]
3034
if: ${{ !steps.restore.outputs.cache-hit }}
3135
with:
32-
pixi-version: v0.56.0
36+
pixi-version: ${{ inputs.pixi-version }}
3337
run-install: false
3438
- name: Run pixi lock
3539
if: ${{ !steps.restore.outputs.cache-hit }}
@@ -42,7 +46,7 @@ jobs:
4246
pixi.lock
4347
key: ${{ steps.restore.outputs.cache-primary-key }}
4448
- name: Upload pixi.lock
45-
uses: actions/upload-artifact@v4
49+
uses: actions/upload-artifact@v5
4650
with:
4751
name: pixi-lock
4852
path: pixi.lock

.github/workflows/ci.yml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,22 @@ jobs:
2828
strategy:
2929
fail-fast: false
3030
matrix:
31-
os: [ubuntu] #, mac, windows] # TODO v4: Re-enable windows and mac
31+
os: [ubuntu, mac, windows]
3232
pixi-environment: [test-latest]
3333
include:
3434
- os: ubuntu
3535
pixi-environment: "test-py311"
36+
- os: ubuntu
37+
pixi-environment: "test-py313"
38+
- os: ubuntu
39+
pixi-environment: "test-minimum"
3640
steps:
37-
- uses: actions/checkout@v4
41+
- uses: actions/checkout@v5
3842
- name: Restore cached pixi lockfile
3943
uses: actions/cache/restore@v4
4044
id: restore-pixi-lock
4145
with:
46+
enableCrossOsArchive: true
4247
path: |
4348
pixi.lock
4449
key: ${{ needs.cache-pixi-lock.outputs.cache-id }}
@@ -50,14 +55,14 @@ jobs:
5055
run: |
5156
pixi run -e ${{ matrix.pixi-environment }} tests -v -s --cov=parcels --cov-report=xml --html="${{ env.COVERAGE_REPORT }}" --self-contained-html
5257
- name: Codecov
53-
uses: codecov/codecov-action@v5.3.1
58+
uses: codecov/codecov-action@v5.5.1
5459
env:
5560
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
5661
with:
5762
flags: unit-tests
5863
- name: Upload test results
5964
if: ${{ always() }} # Always run this step, even if tests fail
60-
uses: actions/upload-artifact@v4
65+
uses: actions/upload-artifact@v5
6166
with:
6267
name: Unittest report ${{ matrix.os }}-${{ matrix.pixi-environment }}
6368
path: ${{ env.COVERAGE_REPORT }}
@@ -78,11 +83,12 @@ jobs:
7883
- os: ubuntu
7984
python-version: "3.11"
8085
steps:
81-
- uses: actions/checkout@v4
86+
- uses: actions/checkout@v5
8287
- name: Restore cached pixi lockfile
8388
uses: actions/cache/restore@v4
8489
id: restore-pixi-lock
8590
with:
91+
enableCrossOsArchive: true
8692
path: |
8793
pixi.lock
8894
key: ${{ needs.cache-pixi-lock.outputs.cache-id }}
@@ -94,14 +100,14 @@ jobs:
94100
run: |
95101
pixi run test-notebooks -v -s --html="${{ env.COVERAGE_REPORT }}" --self-contained-html --cov=parcels --cov-report=xml
96102
- name: Codecov
97-
uses: codecov/codecov-action@v5.3.1
103+
uses: codecov/codecov-action@v5.5.1
98104
env:
99105
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
100106
with:
101107
flags: integration-tests
102108
- name: Upload test results
103109
if: ${{ always() }} # Always run this step, even if tests fail
104-
uses: actions/upload-artifact@v4
110+
uses: actions/upload-artifact@v5
105111
with:
106112
name: Integration test report ${{ matrix.os }}-${{ matrix.pixi-environment }}
107113
path: ${{ env.COVERAGE_REPORT }}
@@ -113,7 +119,7 @@ jobs:
113119
- typechecking
114120
steps:
115121
- name: Merge Artifacts
116-
uses: actions/upload-artifact/merge@v4
122+
uses: actions/upload-artifact/merge@v5
117123
with:
118124
name: Testing reports
119125
pattern: "* report *"
@@ -125,7 +131,7 @@ jobs:
125131
needs: [cache-pixi-lock]
126132
steps:
127133
- name: Checkout
128-
uses: actions/checkout@v4
134+
uses: actions/checkout@v5
129135
- name: Restore cached pixi lockfile
130136
uses: actions/cache/restore@v4
131137
id: restore-pixi-lock
@@ -142,7 +148,7 @@ jobs:
142148
pixi run typing --non-interactive --html-report mypy-report
143149
- name: Upload test results
144150
if: ${{ always() }} # Upload even on mypy error
145-
uses: actions/upload-artifact@v4
151+
uses: actions/upload-artifact@v5
146152
with:
147153
name: Mypy report
148154
path: mypy-report

.github/workflows/nightly.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515
- name: Build conda package
16-
uses: prefix-dev/[email protected].19
16+
uses: prefix-dev/[email protected].34
1717
with:
1818
recipe-path: .github/ci/recipe.yaml
1919

.github/workflows/pypi-release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ on:
1111
jobs:
1212
build-artifacts:
1313
runs-on: ubuntu-latest
14-
if: github.repository == 'OceanParcels/parcels'
14+
if: github.repository == 'Parcels-code/parcels'
1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@v5
1717
with:
1818
fetch-depth: 0
19-
- uses: actions/setup-python@v5
19+
- uses: actions/setup-python@v6
2020
name: Install Python
2121
with:
2222
python-version: "3.11"
@@ -42,7 +42,7 @@ jobs:
4242
else
4343
echo "✅ Looks good"
4444
fi
45-
- uses: actions/upload-artifact@v4
45+
- uses: actions/upload-artifact@v5
4646
with:
4747
name: releases
4848
path: dist
@@ -51,11 +51,11 @@ jobs:
5151
needs: build-artifacts
5252
runs-on: ubuntu-latest
5353
steps:
54-
- uses: actions/setup-python@v5
54+
- uses: actions/setup-python@v6
5555
name: Install Python
5656
with:
5757
python-version: "3.11"
58-
- uses: actions/download-artifact@v4
58+
- uses: actions/download-artifact@v6
5959
with:
6060
name: releases
6161
path: dist
@@ -84,7 +84,7 @@ jobs:
8484
if: github.event_name == 'release'
8585
runs-on: ubuntu-latest
8686
steps:
87-
- uses: actions/download-artifact@v4
87+
- uses: actions/download-artifact@v6
8888
with:
8989
name: releases
9090
path: dist
@@ -102,5 +102,5 @@ jobs:
102102
channels: conda-forge
103103
- run: conda install -c conda-forge pip
104104
- run: pip install parcels --no-cache
105-
- run: curl https://raw.githubusercontent.com/OceanParcels/parcels/main/docs/examples/example_peninsula.py > example_peninsula.py
105+
- run: curl https://raw.githubusercontent.com/Parcels-code/parcels/main/docs/examples/example_peninsula.py > example_peninsula.py
106106
- run: python example_peninsula.py

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,8 @@ src/parcels/_version_setup.py
2929
.pixi
3030
*.egg-info
3131

32-
# Ignore pixi.lock file for now as Vecko is the only one using pixi for development. This should be checked into VCS if it becomes a more common tool.
32+
# Ignore pixi.lock file for this project. The con of 22k lines of noise it adds to diffs is not worth
33+
# the minor benefit of perfectly reproducible environments for all developers (and all the tooling that would
34+
# be required to support that - see https://github.com/pydata/xarray/issues/10732#issuecomment-3327780806
35+
# for more details)
3336
pixi.lock

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/pre-commit/pre-commit-hooks
3-
rev: v5.0.0
3+
rev: v6.0.0
44
hooks:
55
- id: trailing-whitespace
66
- id: end-of-file-fixer
@@ -10,7 +10,7 @@ repos:
1010
types: [text]
1111
files: \.(json|ipynb)$
1212
- repo: https://github.com/astral-sh/ruff-pre-commit
13-
rev: v0.12.5
13+
rev: v0.14.2
1414
hooks:
1515
- id: ruff
1616
name: ruff lint (.py)

0 commit comments

Comments
 (0)