Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
f11a280
Update CI to Julia version to 1.12.0
navidcy Oct 9, 2025
0b17768
try increasing reactant compact
simone-silvestri Oct 9, 2025
2e15efd
Merge branch 'main' into ncc/julia-v1.12
simone-silvestri Oct 9, 2025
244442d
try without reactant
simone-silvestri Oct 9, 2025
ef56cac
just run the docs
simone-silvestri Oct 9, 2025
d1b7f3c
bugfix
simone-silvestri Oct 9, 2025
bdbfd4f
Change grid bottom function to GridFittedBottom
simone-silvestri Oct 9, 2025
d040a0c
Update warning for Julia version compatibility
navidcy Oct 9, 2025
57f395e
take up the changes in #3836
simone-silvestri Oct 9, 2025
0d34ac0
try without distributed
simone-silvestri Oct 9, 2025
612e6a8
Merge branch 'main' into ncc/julia-v1.12
navidcy Oct 15, 2025
e0f5137
imports alphabetically
navidcy Oct 15, 2025
92b9871
Merge branch 'main' into ncc/julia-v1.12
simone-silvestri Oct 16, 2025
879230a
Merge branch 'main' into ncc/julia-v1.12
glwagner Oct 24, 2025
2173b31
use a local accumulator and reinstate tests
simone-silvestri Nov 3, 2025
052c60f
reinstate all tests
simone-silvestri Nov 3, 2025
70e3b0a
white line
simone-silvestri Nov 3, 2025
7a78b5c
Merge branch 'main' into ncc/julia-v1.12
simone-silvestri Nov 3, 2025
ec35ad9
reinstate distributed examples
simone-silvestri Nov 3, 2025
00ae2ec
Merge branch 'ncc/julia-v1.12' of github.com:CliMA/Oceananigans.jl in…
simone-silvestri Nov 3, 2025
82caad0
Update KernelAbstractions version to 0.9.39
navidcy Nov 3, 2025
3e4bb4f
Merge branch 'main' into ncc/julia-v1.12
navidcy Nov 3, 2025
b058bad
Disable doctest temporarily
navidcy Nov 3, 2025
00d1a66
Update pipeline.yml
navidcy Nov 3, 2025
d7aef18
Merge branch 'main' into ncc/julia-v1.12
simone-silvestri Nov 4, 2025
ef4fed2
separate out reactant and enzyme tests
simone-silvestri Nov 4, 2025
2aeabaa
try like this
simone-silvestri Nov 4, 2025
c584334
don't need to make the new directory
simone-silvestri Nov 4, 2025
2e21f55
fixing
simone-silvestri Nov 4, 2025
5b0f7bc
use a new key
simone-silvestri Nov 4, 2025
498db3b
need to create the new folder
simone-silvestri Nov 4, 2025
88580e1
mv manifest to new version
simone-silvestri Nov 4, 2025
e776c21
Update .buildkite/pipeline.yml
simone-silvestri Nov 4, 2025
94bc181
[CI] Automatically create version-specific manifests
giordano Nov 4, 2025
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
76 changes: 65 additions & 11 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
env:
JULIA_VERSION: "1.10.10"
JULIA_VERSION: "1.12.1"
JULIA_VERSION_ENZYME: "1.11.7"
BUILDKITE_HOME: "/var/lib/buildkite-agent"
JULIA_DEPOT_PATH: "$BUILDKITE_HOME/.julia-oceananigans"
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager
Expand All @@ -12,7 +13,7 @@ with:
coverage: false

steps:
- label: "🏕️ initialize environment"
- label: "🏕️ initialize general environment"
key: "init"
agents:
queue: "Oceananigans-nautilus"
Expand All @@ -26,6 +27,29 @@ steps:
cd "$OCEANANIGANS_DIR"

julia +$JULIA_VERSION -O0 --color=yes --project -e 'using Pkg; Pkg.test()'
# After we have instantiated the general environment, move manifest to the
# version-specific filename, not to clash with the manifest for Enzyme.
mv -v Manifest.toml Manifest-v$(echo "${JULIA_VERSION}" | cut -d. -f1-2).toml
retry:
automatic:
- exit_status: 1
limit: 1

- label: "🏕️ initialize enzyme environment"
key: "init_enzyme"
depends_on: "init"
agents:
queue: "Oceananigans-nautilus"
env:
TEST_GROUP: "init"
command: |
juliaup add $JULIA_VERSION_ENZYME
cd "$OCEANANIGANS_DIR"

julia +$JULIA_VERSION_ENZYME -O0 --color=yes --project -e 'using Pkg; Pkg.test()'
# After we have instantiated the Enzyme environment, move manifest to the
# version-specific filename, not to clash with the general manifest.
mv -v Manifest.toml Manifest-v$(echo "${JULIA_VERSION_ENZYME}" | cut -d. -f1-2).toml
retry:
automatic:
- exit_status: 1
Expand Down Expand Up @@ -58,12 +82,6 @@ steps:
export TEST_ARCHITECTURE="GPU"
fi

# Force IFRT runtime for Reactant (this can be moved to Project.toml on 1.11)
touch LocalPreferences.toml
echo "[Reactant]" >> LocalPreferences.toml
echo "xla_runtime = \"IFRT\"" >> LocalPreferences.toml
cat LocalPreferences.toml

# Strip emoji for environment variable
group="{{ matrix.group }}"
export TEST_GROUP="\${group#* }"
Expand All @@ -80,7 +98,6 @@ steps:
- "GPU"
group:
- "🦖 poisson_solvers_2"
- "🎭 reactant_2"
- "🐇 unit"
- "👻 abstract_operations"
- "🕊 poisson_solvers_1"
Expand All @@ -99,14 +116,51 @@ steps:
- "🍂 lagrangian_particles"
- "🧅 multi_region"
- "🦧 scripts"
- "👺 enzyme"
- "🍱 xesmf"
- "👹 reactant_1"

retry:
automatic:
- exit_status: 1
limit: 1

- label: "{{ matrix.architecture }} - {{ matrix.group }} tests"
key: "tests_enzyme_reactant"
depends_on: "init_enzyme"
agents:
queue: "Oceananigans-nautilus"
command: |
# Add matrix-specific environment variables
if [[ "{{ matrix.architecture }}" == "CPU" ]]; then
export CUDA_VISIBLE_DEVICES="-1"
export TEST_ARCHITECTURE="CPU"
else
export CUDA_VISIBLE_DEVICES="0"
export TEST_ARCHITECTURE="GPU"
fi

# Strip emoji for environment variable
group="{{ matrix.group }}"
export TEST_GROUP="\${group#* }"
echo $TEST_GROUP

# Run tests
cd "$OCEANANIGANS_DIR"
julia +$JULIA_VERSION_ENZYME -O0 --color=yes --project -e 'using Pkg; Pkg.test()'

matrix:
setup:
architecture:
- "CPU"
- "GPU"
group:
- "🎭 reactant_2"
- "👺 enzyme"
- "👹 reactant_1"

retry:
automatic:
- exit_status: 1
limit: 1
#####
##### Blocking wait on tests and documentation
#####
Expand Down
4 changes: 2 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ GPUArraysCore = "0.2"
Glob = "1.3"
InteractiveUtils = "1.9"
JLD2 = "0.4, 0.5, 0.6"
KernelAbstractions = "0.9.21"
KernelAbstractions = "0.9.39"
Krylov = "0.10.0"
KrylovPreconditioners = "0.3.2"
LinearAlgebra = "1.9"
Expand All @@ -92,7 +92,7 @@ OffsetArrays = "1.4"
OrderedCollections = "1.1"
Printf = "1.9"
Random = "1.9"
Reactant = "0.2.162"
Reactant = "0.2.169"
ReactantCore = "0.1"
Rotations = "1.0"
SeawaterPolynomials = "0.3.9"
Expand Down
2 changes: 1 addition & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ makedocs(; sitename = "Oceananigans.jl",
plugins = [bib],
warnonly = [:cross_references],
draft = false, # set to true to speed things up
doctest = true, # set to false to speed things up
doctest = false, # set to false to speed things up
doctestfilters = [
r"┌ Warning:.*", # remove standard warning lines
r"└ @ .*", # remove the source location of warnings
Expand Down
2 changes: 1 addition & 1 deletion examples/internal_tide.jl
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ width = 20kilometers
hill(x) = h₀ * exp(-x^2 / 2width^2)
bottom(x) = - H + hill(x)

grid = ImmersedBoundaryGrid(underlying_grid, PartialCellBottom(bottom))
grid = ImmersedBoundaryGrid(underlying_grid, GridFittedBottom(bottom))

# Let's see how the domain with the bathymetry is.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ function mask_immersed_model_fields!(model, grid)
η = displacement(model.free_surface)
fields_to_mask = merge(model.auxiliary_fields, prognostic_fields(model))

foreach(fields_to_mask) do field
if field !== η
mask_immersed_field!(field)
foreach(keys(fields_to_mask)) do key
if key != :η
@inbounds mask_immersed_field!(fields_to_mask[key])
end
end
mask_immersed_field_xy!(η, k=size(grid, 3)+1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ the `buoyancy_perturbationᶜᶜᶜ` downwards:
@kernel function _update_hydrostatic_pressure!(pHY′, grid, buoyancy, C)
i, j = @index(Global, NTuple)

@inbounds pHY′[i, j, grid.Nz] = - z_dot_g_bᶜᶜᶠ(i, j, grid.Nz+1, grid, buoyancy, C) * Δzᶜᶜᶠ(i, j, grid.Nz+1, grid)
pᵏ = - z_dot_g_bᶜᶜᶠ(i, j, grid.Nz+1, grid, buoyancy, C) * Δzᶜᶜᶠ(i, j, grid.Nz+1, grid)
@inbounds pHY′[i, j, grid.Nz] = pᵏ

for k in grid.Nz-1 : -1 : 1
@inbounds pHY′[i, j, k] = pHY′[i, j, k+1] - z_dot_g_bᶜᶜᶠ(i, j, k+1, grid, buoyancy, C) * Δzᶜᶜᶠ(i, j, k+1, grid)
pᵏ -= z_dot_g_bᶜᶜᶠ(i, j, k+1, grid, buoyancy, C) * Δzᶜᶜᶠ(i, j, k+1, grid)
@inbounds pHY′[i, j, k] = pᵏ
end
end

Expand Down
2 changes: 1 addition & 1 deletion src/MultiRegion/multi_region_field.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ using Oceananigans.OutputWriters: output_indices

using Base: @propagate_inbounds

import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions
import Oceananigans.BoundaryConditions: regularize_field_boundary_conditions, FieldBoundaryConditions
import Oceananigans.Diagnostics: hasnan
import Oceananigans.DistributedComputations: reconstruct_global_field, CommunicationBuffers
import Oceananigans.Fields: set!, compute!, compute_at!, interior, communication_buffers,
Expand Down
8 changes: 4 additions & 4 deletions src/Oceananigans.jl
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,10 @@ using DocStringExtensions
using FFTW

function __init__()
if VERSION >= v"1.11.0"
@warn """You are using Julia v1.11 or later!"
Oceananigans is currently tested on Julia v1.10."
If you find issues with Julia v1.11 or later,"
if VERSION >= v"1.13.0"
@warn """You are using Julia v1.13 or later!"
Oceananigans is currently tested on Julia v1.12."
If you find issues with Julia v1.13 or later,"
please report at https://github.com/CliMA/Oceananigans.jl/issues/new"""

end
Expand Down
1 change: 0 additions & 1 deletion test/test_init.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using Enzyme
using CUDA
using Metal
using AMDGPU
Expand Down