Skip to content

Commit 40ce7f7

Browse files
authored
Merge pull request #2078 from CliMA/gb/downgrade
Add downgrade workflow, fix lower bounds
2 parents 4c1368d + 5b99f3f commit 40ce7f7

19 files changed

+96
-56
lines changed

.buildkite/Manifest.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file is machine-generated - editing it directly is not advised
22

3-
julia_version = "1.10.6"
3+
julia_version = "1.10.5"
44
manifest_format = "2.0"
5-
project_hash = "8d508e9c067faf60d0fc48f17b0ac3f963b68711"
5+
project_hash = "58c4b495a198942d7fe1f15910bfa6451b6fdb53"
66

77
[[deps.ADTypes]]
88
git-tree-sha1 = "eea5d80188827b35333801ef97a40c2ed653b081"
@@ -309,7 +309,7 @@ weakdeps = ["CUDA", "MPI"]
309309
ClimaCommsMPIExt = "MPI"
310310

311311
[[deps.ClimaCore]]
312-
deps = ["Adapt", "BandedMatrices", "BlockArrays", "ClimaComms", "CubedSphere", "DataStructures", "DocStringExtensions", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "MultiBroadcastFusion", "NVTX", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "StaticArrays", "Statistics", "Unrolled"]
312+
deps = ["Adapt", "BandedMatrices", "BlockArrays", "ClimaComms", "CubedSphere", "DataStructures", "ForwardDiff", "GaussQuadrature", "GilbertCurves", "HDF5", "InteractiveUtils", "IntervalSets", "KrylovKit", "LinearAlgebra", "MultiBroadcastFusion", "NVTX", "PkgVersion", "RecursiveArrayTools", "RootSolvers", "SparseArrays", "StaticArrays", "Statistics", "Unrolled"]
313313
path = ".."
314314
uuid = "d414da3d-4745-48bb-8d80-42e94e092884"
315315
version = "0.14.19"

.buildkite/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ ClimaTimeSteppers = "595c0a79-7f3d-439a-bc5a-b232dc3bde79"
1616
Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
1717
CountFlops = "1db9610d-79e1-487a-8d40-77f3295c7593"
1818
CubedSphere = "7445602f-e544-4518-8976-18f8e8ae6cdb"
19+
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
1920
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
2021
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
2122
FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898"
@@ -32,7 +33,6 @@ Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
3233
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
3334
NCDatasets = "85f8d34a-cbdd-5861-8df4-14fed0d494ab"
3435
NVTX = "5da4648a-3479-48b8-97b9-01cb529c0a1f"
35-
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
3636
OrdinaryDiffEqSSPRK = "669c94d9-1f4b-4b64-b377-1aa079aa2388"
3737
OrdinaryDiffEqTsit5 = "b1df2697-797e-41e3-8120-5422d3b24e4a"
3838
PProf = "e4faabce-9ead-11e9-39d9-4379958e3056"

.github/workflows/downgrade.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Downgrade
2+
on:
3+
pull_request:
4+
push:
5+
branches:
6+
- main
7+
tags: '*'
8+
9+
# Needed to allow julia-actions/cache to delete old caches that it has created
10+
permissions:
11+
actions: write
12+
contents: read
13+
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
18+
jobs:
19+
test:
20+
runs-on: ubuntu-latest
21+
strategy:
22+
matrix:
23+
version: ['1.10', '1.11']
24+
steps:
25+
- uses: actions/checkout@v4
26+
- uses: julia-actions/setup-julia@latest
27+
with:
28+
version: ${{ matrix.version }}
29+
- uses: julia-actions/cache@v2
30+
- uses: julia-actions/julia-downgrade-compat@v1
31+
with:
32+
skip: Dates, InteractiveUtils, LinearAlgebra, Logging, Random, Test, SparseArrays, Statistics
33+
- uses: julia-actions/julia-buildpkg@latest
34+
- uses: julia-actions/julia-runtest@latest

NEWS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ main
1919
- We've refactored some modules to use less internals. PR [#2053](https://github.com/CliMA/ClimaCore.jl/pull/2053), PR [#2052](https://github.com/CliMA/ClimaCore.jl/pull/2052), [#2051](https://github.com/CliMA/ClimaCore.jl/pull/2051), [#2049](https://github.com/CliMA/ClimaCore.jl/pull/2049).
2020
- Some work was done in attempt to reduce specializations and compile time. PR [#2042](https://github.com/CliMA/ClimaCore.jl/pull/2042), [#2041](https://github.com/CliMA/ClimaCore.jl/pull/2041)
2121

22+
### ![][badge-🐛bugfix] Fix lower compat bounds
23+
24+
`ClimaCore` had incorrect lower bounds for certain packages. PR
25+
[#2078](https://github.com/CliMA/ClimaCore.jl/pull/2078) fixes the lower bounds
26+
and adds a GitHub Action workflow to test it. `ClimaCore` now requires Julia
27+
1.10 or greater.
28+
2229
v0.14.19
2330
-------
2431

Project.toml

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e"
1010
ClimaComms = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d"
1111
CubedSphere = "7445602f-e544-4518-8976-18f8e8ae6cdb"
1212
DataStructures = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
13-
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
1413
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1514
GaussQuadrature = "d54b0c1a-921d-58e0-8e36-89d8069c0969"
1615
GilbertCurves = "88fa7841-ef32-4516-bb70-c6ec135699d9"
@@ -42,47 +41,44 @@ Adapt = "3, 4"
4241
Aqua = "0.8"
4342
ArgParse = "1"
4443
AssociatedLegendrePolynomials = "1"
45-
BandedMatrices = "0.17, 1"
44+
BandedMatrices = "1"
4645
BenchmarkTools = "1"
47-
BlockArrays = "0.16, 1"
48-
ClimaComms = "0.6"
46+
BlockArrays = "1"
47+
ClimaComms = "0.6.2"
4948
CountFlops = "0.1"
5049
CubedSphere = "0.2, 0.3"
51-
CUDA = "5"
50+
CUDA = "5.5"
5251
Dates = "1"
53-
DataStructures = "0.18"
54-
DocStringExtensions = "0.8, 0.9"
55-
FastBroadcast = "0.3"
56-
ForwardDiff = "0.10"
57-
GaussQuadrature = "0.5"
52+
DataStructures = "0.18.13"
53+
FastBroadcast = "0.3.1"
54+
ForwardDiff = "0.10.15"
55+
GaussQuadrature = "0.5.8"
5856
GilbertCurves = "0.1"
59-
HDF5 = "0.16, 0.17"
57+
HDF5 = "0.16.16, 0.17"
6058
InteractiveUtils = "1"
6159
IntervalSets = "0.5, 0.6, 0.7"
6260
JET = "0.9"
6361
Krylov = "0.9"
6462
KrylovKit = "0.6, 0.7, 0.8"
6563
LinearAlgebra = "1"
66-
LazyBroadcast = "0.1"
64+
LazyBroadcast = "0.1.4"
6765
Logging = "1"
68-
MPI = "0.20"
69-
MultiBroadcastFusion = "0.3, 0.4"
66+
MultiBroadcastFusion = "0.3.1, 0.4"
7067
NVTX = "0.3"
71-
OrderedCollections = "1"
7268
PkgVersion = "0.1, 0.2, 0.3"
7369
PrettyTables = "2"
7470
Random = "1"
75-
RecursiveArrayTools = "2, 3"
71+
RecursiveArrayTools = "3.1"
7672
RootSolvers = "0.3, 0.4"
7773
SafeTestsets = "0.1"
7874
SparseArrays = "1"
79-
StaticArrays = "1"
75+
StaticArrays = "1.6"
8076
Statistics = "1"
8177
StatsBase = "0.34"
8278
TerminalLoggers = "0.1"
8379
Test = "1"
84-
Unrolled = "0.1"
85-
julia = "1.9"
80+
Unrolled = "0.1.5"
81+
julia = "1.10"
8682

8783
[extras]
8884
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
@@ -96,8 +92,6 @@ Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7"
9692
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
9793
LazyBroadcast = "9dccce8e-a116-406d-9fcc-a88ed4f510c8"
9894
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
99-
MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195"
100-
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
10195
PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d"
10296
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
10397
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
@@ -106,5 +100,4 @@ TerminalLoggers = "5d786b92-1e48-4d6f-9151-6b4477ca9bed"
106100
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
107101

108102
[targets]
109-
test = ["Aqua", "ArgParse", "AssociatedLegendrePolynomials", "BenchmarkTools", "CountFlops", "Dates", "FastBroadcast", "Krylov", "JET", "LazyBroadcast", "Logging", "MPI", "OrderedCollections", "PrettyTables", "Random", "SafeTestsets", "StatsBase", "TerminalLoggers", "Test"]
110-
103+
test = ["Aqua", "ArgParse", "AssociatedLegendrePolynomials", "BenchmarkTools", "CountFlops", "Dates", "FastBroadcast", "Krylov", "JET", "LazyBroadcast", "Logging", "PrettyTables", "Random", "SafeTestsets", "StatsBase", "TerminalLoggers", "Test"]

src/Domains/Domains.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module Domains
22

33
import ..Geometry: Geometry, float_type
4-
using IntervalSets
4+
import IntervalSets
55
export RectangleDomain
66

77
"""
@@ -62,7 +62,7 @@ function IntervalDomain(
6262
end
6363
IntervalDomain(promote(coord_min, coord_max)..., boundary_names)
6464
end
65-
IntervalDomain(coords::ClosedInterval; kwargs...) =
65+
IntervalDomain(coords::IntervalSets.ClosedInterval; kwargs...) =
6666
IntervalDomain(coords.left, coords.right; kwargs...)
6767

6868
"""
@@ -130,8 +130,8 @@ Construct a `RectangularDomain` in the horizontal.
130130
If a given x1 or x2 boundary is not periodic, then `x1boundary` or `x2boundary` boundary name keyword arguments must be supplied.
131131
"""
132132
function RectangleDomain(
133-
x1::ClosedInterval{X1CT},
134-
x2::ClosedInterval{X2CT};
133+
x1::IntervalSets.ClosedInterval{X1CT},
134+
x2::IntervalSets.ClosedInterval{X2CT};
135135
x1periodic = false,
136136
x2periodic = false,
137137
x1boundary::BCTagType = nothing,

src/Meshes/Meshes.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
module Meshes
22

33
import RootSolvers
4-
using DocStringExtensions
54

65
export RectilinearMesh,
76
EquiangularCubedSphere,

src/Topologies/Topologies.jl

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
module Topologies
22

3-
using DocStringExtensions
4-
53
import ClimaComms, Adapt
64

75
import ..ClimaCore

src/Topologies/dss.jl

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using DocStringExtensions
21
using .DataLayouts: CartesianFieldIndex
32

43
const DSSTypesAll = Union{
@@ -24,7 +23,18 @@ const DSSWeightTypes = Union{DataLayouts.IJFH, DataLayouts.IJHF}
2423
DSSBuffer{G, D, A, B}
2524
2625
# Fields
27-
$(DocStringExtensions.FIELDS)
26+
27+
- `graph_context`: ClimaComms graph context for communication
28+
- `perimeter_data`: Perimeter `DataLayout` object: typically a
29+
`VIFH{TT,Nv,Np,Nh}` or `VIHF{TT,Nv,Np,Nh}`, where `TT` is the transformed
30+
type, `Nv` is the number of vertical levels, and `Np` is the length of the
31+
perimeter
32+
- `send_date`: send buffer `AbstractVector{FT}`
33+
- `recv_data`: recv buffer `AbstractVector{FT}`
34+
- `send_buf_idx`: indexing array for loading send buffer from `perimeter_data`
35+
- `recv_buf_idx`: indexing array for loading (and summing) data from recv buffer to
36+
- `internal_elems`: internal local elements (lidx)
37+
- `perimeter_elems`: local elements (lidx) located on process boundary
2838
"""
2939
struct DSSBuffer{S, G, D, A, B, VI}
3040
"ClimaComms graph context for communication"

src/Topologies/topology2d.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ function _Topology2D(
454454
end
455455
end
456456
end
457-
# 6).
457+
# 6).
458458
comm_vertex_lengths = zeros(Int, length(send_elem_pids))
459459
ghost_vertex_neighbor_loc = Int[]
460460
ghost_vertex_comm_idx_offset = ones(Int, length(ghost_vertex_offset))
@@ -492,7 +492,7 @@ function _Topology2D(
492492
end
493493
unique!(perimeter_elems)
494494
internal_elems = setdiff(1:length(local_elem_gidx), perimeter_elems)
495-
# 7).
495+
# 7).
496496
comm_face_lengths = zeros(Int, length(send_elem_pids))
497497
ghost_face_neighbor_loc = Vector{Int}(undef, length(ghost_faces))
498498
ghost_face_gcidx = zeros(Int, length(ghost_faces))

0 commit comments

Comments
 (0)