Skip to content

Commit 87d0d41

Browse files
authored
Merge branch 'main' into vc/ignore_derivatives
2 parents 9584150 + a11d667 commit 87d0d41

Some content is hidden

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

61 files changed

+2061
-959
lines changed

.github/workflows/CI.yml

Lines changed: 29 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
name: CI
22
on:
33
pull_request:
4+
paths:
5+
- '.github/workflows/CI.yml'
6+
- 'deps/**'
7+
- 'ext/**'
8+
- 'lib/**'
9+
- 'src/**'
10+
- 'test/**'
11+
- '!test/integration/**'
12+
- 'Project.toml'
413
push:
514
branches:
615
- main
716
- release-*
17+
paths:
18+
- '.github/workflows/CI.yml'
19+
- 'deps/**'
20+
- 'ext/**'
21+
- 'lib/**'
22+
- 'src/**'
23+
- 'test/**'
24+
- '!test/integration/**'
25+
- 'Project.toml'
826
tags: '*'
927

1028
concurrency:
@@ -27,16 +45,16 @@ jobs:
2745
- 'nightly'
2846
os:
2947
- ubuntu-24.04
30-
- macOS-13
48+
- macOS-latest
3149
- windows-latest
3250
arch:
33-
- x64
51+
- default
3452
assertions:
3553
- false
3654
libEnzyme: [local, packaged]
3755
exclude:
3856
- os: windows-latest
39-
arch: x64
57+
arch: default
4058
libEnzyme: local
4159
include:
4260
- os: ubuntu-24.04
@@ -45,23 +63,23 @@ jobs:
4563
version: '1.10'
4664
assertions: false
4765
- os: ubuntu-24.04
48-
arch: x64
66+
arch: default
4967
libEnzyme: packaged
5068
version: '1.10'
5169
assertions: true
5270
- os: ubuntu-24.04
53-
arch: x64
71+
arch: default
5472
libEnzyme: packaged
5573
version: '1.11'
5674
assertions: true
5775
steps:
58-
- uses: actions/checkout@v4
76+
- uses: actions/checkout@v5
5977
- uses: julia-actions/setup-julia@v2
6078
if: ${{ ! matrix.assertions }}
6179
with:
6280
version: ${{ matrix.version }}
6381
arch: ${{ matrix.arch }}
64-
- uses: actions/checkout@v4
82+
- uses: actions/checkout@v5
6583
if: ${{ matrix.assertions }}
6684
with:
6785
repository: 'JuliaLang/julia'
@@ -139,10 +157,10 @@ jobs:
139157
os:
140158
- ubuntu-latest
141159
arch:
142-
- x64
160+
- default
143161
libEnzyme: [packaged]
144162
steps:
145-
- uses: actions/checkout@v4
163+
- uses: actions/checkout@v5
146164
- uses: julia-actions/setup-julia@v2
147165
with:
148166
version: ${{ matrix.version }}
@@ -193,10 +211,10 @@ jobs:
193211
os:
194212
- ubuntu-latest
195213
arch:
196-
- x64
214+
- default
197215
libEnzyme: [packaged]
198216
steps:
199-
- uses: actions/checkout@v4
217+
- uses: actions/checkout@v5
200218
- uses: julia-actions/setup-julia@v2
201219
with:
202220
version: ${{ matrix.version }}
@@ -230,57 +248,3 @@ jobs:
230248
files: lcov.info
231249
token: ${{ secrets.CODECOV_TOKEN }}
232250
fail_ci_if_error: false # or true if you want CI to fail when Codecov fails
233-
integration:
234-
timeout-minutes: 20
235-
name: Integration Tests - ${{ matrix.test }}
236-
runs-on: ${{ matrix.os }}
237-
env:
238-
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager
239-
strategy:
240-
fail-fast: false
241-
matrix:
242-
version:
243-
- '1.10'
244-
os:
245-
- ubuntu-latest
246-
test:
247-
- DynamicExpressions
248-
- Bijectors
249-
steps:
250-
- uses: actions/checkout@v4
251-
- uses: julia-actions/setup-julia@v2
252-
with:
253-
version: ${{ matrix.version }}
254-
- uses: julia-actions/cache@v2
255-
- uses: julia-actions/julia-buildpkg@v1
256-
- name: "Run tests"
257-
run: |
258-
julia --color=yes --project=test/integration/${{ matrix.test }} -e 'using Pkg; Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")]); Pkg.instantiate()'
259-
julia --color=yes --project=test/integration/${{ matrix.test }} --threads=auto --check-bounds=yes test/integration/${{ matrix.test }}/runtests.jl
260-
shell: bash
261-
docs:
262-
timeout-minutes: 20
263-
name: Documentation
264-
runs-on: ubuntu-latest
265-
steps:
266-
- uses: actions/checkout@v4
267-
- uses: julia-actions/setup-julia@v2
268-
with:
269-
version: '1'
270-
- uses: julia-actions/cache@v2
271-
- run: |
272-
julia --color=yes --project=docs -e '
273-
using Pkg
274-
Pkg.instantiate()'
275-
env:
276-
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager
277-
- run: |
278-
julia --color=yes --project=docs -e '
279-
using Documenter: DocMeta, doctest
280-
using Enzyme
281-
DocMeta.setdocmeta!(Enzyme, :DocTestSetup, :(using Enzyme); recursive=true)
282-
doctest(Enzyme)'
283-
- run: julia --color=yes --project=docs docs/make.jl
284-
env:
285-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
286-
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/CompatHelper.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
CompatHelper:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v4
12+
- uses: actions/checkout@v5
1313
- name: Get Julia compatibility
1414
id: julia_compat
1515
# NOTE: this requires a julia compat lower-bound with minor version!
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
name: Documentation
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- '.github/workflows/Documentation.yml'
7+
- 'docs/**'
8+
- 'examples/**'
9+
- 'lib/**'
10+
- 'src/**'
11+
- 'Project.toml'
12+
push:
13+
branches:
14+
- main
15+
- release-*
16+
paths:
17+
- '.github/workflows/Documentation.yml'
18+
- 'docs/**'
19+
- 'examples/**'
20+
- 'lib/**'
21+
- 'src/**'
22+
- 'Project.toml'
23+
tags: '*'
24+
25+
concurrency:
26+
# Same group concurrency as the `PreviewCleanup.yml` workflow, because they both
27+
# git-push to the same branch, so we want to avoid clashes. NOTE: this is
28+
# different from the concurrency group below, which is to cancel successive
29+
# jobs from within the PR.
30+
group: docs-pushing
31+
32+
jobs:
33+
docs:
34+
timeout-minutes: 20
35+
name: Documentation
36+
runs-on: ubuntu-latest
37+
concurrency:
38+
# Skip intermediate builds: always.
39+
# Cancel intermediate builds: only if it is a pull request build.
40+
group: ${{ github.workflow }}-${{ github.ref }}
41+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
42+
steps:
43+
- uses: actions/checkout@v5
44+
- uses: julia-actions/setup-julia@v2
45+
with:
46+
version: '1'
47+
- uses: julia-actions/cache@v2
48+
- name: Instantiate docs environment
49+
shell: julia --color=yes --project=docs {0}
50+
run: |
51+
using Pkg
52+
Pkg.instantiate()
53+
env:
54+
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager
55+
- name: Run doctests
56+
shell: julia --color=yes --project=docs {0}
57+
run: |
58+
using Documenter: DocMeta, doctest
59+
using Enzyme
60+
DocMeta.setdocmeta!(Enzyme, :DocTestSetup, :(using Enzyme); recursive=true)
61+
doctest(Enzyme)
62+
- name: Build the docs
63+
run: julia --color=yes --project=docs docs/make.jl
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/Format.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
if: github.event.pull_request.draft == false
1717
steps:
1818
- name: Check out repository
19-
uses: actions/checkout@v4
19+
uses: actions/checkout@v5
2020
with:
2121
ref: ${{github.event.pull_request.head.ref}}
2222
repository: ${{github.event.pull_request.head.repo.full_name}}

.github/workflows/Integration.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Integration
2+
on:
3+
pull_request:
4+
paths:
5+
- '.github/workflows/Integration.yml'
6+
- 'ext/**'
7+
- 'lib/**'
8+
- 'src/**'
9+
- 'test/**'
10+
- 'Project.toml'
11+
push:
12+
branches:
13+
- main
14+
paths:
15+
- release-*
16+
- '.github/workflows/Integration.yml'
17+
- 'ext/**'
18+
- 'lib/**'
19+
- 'src/**'
20+
- 'test/**'
21+
- 'Project.toml'
22+
tags: '*'
23+
24+
concurrency:
25+
# Skip intermediate builds: always.
26+
# Cancel intermediate builds: only if it is a pull request build.
27+
group: ${{ github.workflow }}-${{ github.ref }}
28+
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
29+
30+
jobs:
31+
integration:
32+
timeout-minutes: 45
33+
name: Integration Tests - ${{ matrix.package }} - Julia ${{ matrix.version }}
34+
runs-on: ${{ matrix.os }}
35+
container:
36+
image: ${{ (contains(matrix.os, 'linux') && 'ghcr.io/enzymead/reactant-docker-images@sha256:91e1edb7a7c869d5a70db06e417f22907be0e67ca86641d48adcea221fedc674' ) || '' }}
37+
env:
38+
JULIA_PKG_SERVER_REGISTRY_PREFERENCE: eager
39+
strategy:
40+
fail-fast: false
41+
matrix:
42+
version:
43+
- '1.10'
44+
- '1.11'
45+
os:
46+
- linux-x86-n2-32
47+
package:
48+
- Bijectors
49+
- DifferentiationInterface
50+
- DynamicExpressions
51+
- Lux
52+
steps:
53+
- uses: actions/checkout@v5
54+
- uses: julia-actions/setup-julia@v2
55+
with:
56+
version: ${{ matrix.version }}
57+
- uses: julia-actions/cache@v2
58+
- uses: julia-actions/julia-buildpkg@v1
59+
- name: "Install Dependencies"
60+
run: |
61+
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.develop([PackageSpec(; path) for path in (".", "lib/EnzymeCore")])'
62+
shell: bash
63+
if: ${{ matrix.version == '1.10' }}
64+
- name: "Instantiate"
65+
run: |
66+
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 -e 'using Pkg; Pkg.instantiate()'
67+
shell: bash
68+
- name: "Run tests"
69+
run: |
70+
julia --color=yes --project=test/integration/${{ matrix.package }} --threads=auto --check-bounds=yes -O1 test/integration/${{ matrix.package }}/runtests.jl
71+
shell: bash

.github/workflows/PreviewCleanup.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@ on:
44
pull_request:
55
types: [closed]
66

7+
concurrency:
8+
# Same group concurrency as the `Documentation.yml` workflow, because they both
9+
# git-push to the same branch, so we want to avoid clashes.
10+
group: docs-pushing
11+
712
jobs:
813
doc-preview-cleanup:
914
runs-on: ubuntu-latest
1015
steps:
1116
- name: Checkout gh-pages branch
12-
uses: actions/checkout@v4
17+
uses: actions/checkout@v5
1318
with:
1419
ref: gh-pages
1520
- name: Delete preview and history + push changes

.github/workflows/benchmark_pr.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@ name: Benchmark a pull request
22

33
on:
44
pull_request:
5+
paths:
6+
- '.github/workflows/benchmark_pr.yml'
7+
- 'benchmark/**'
8+
- 'ext/**'
9+
- 'lib/**'
10+
- 'src/**'
11+
- 'Project.toml'
512

613
permissions:
714
pull-requests: write
@@ -17,7 +24,7 @@ jobs:
1724
runs-on: ubuntu-latest
1825

1926
steps:
20-
- uses: actions/checkout@v4
27+
- uses: actions/checkout@v5
2128
- uses: julia-actions/setup-julia@v2
2229
with:
2330
version: "1"

.github/workflows/scripts_deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
docs:
1212
runs-on: ubuntu-24.04
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@v5
1515

1616
- uses: julia-actions/setup-julia@v2
1717
with:

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ lib/EnzymeCore/Manifest.toml
88
/docs/Manifest.toml
99
/docs/build/
1010
/docs/src/generated/
11-
11+
test/integration/**/Manifest.toml
1212
.vscode

0 commit comments

Comments
 (0)