Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,11 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
- package-ecosystem: "julia"
directory: "/"
schedule:
interval: "weekly"
groups:
all-julia-packages:
patterns:
- "*"
54 changes: 48 additions & 6 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,67 @@ on:
tags: [v*]
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

# needed to allow julia-actions/cache to delete old caches that it has created
permissions:
actions: write
contents: read

jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
name: Julia ${{ matrix.version }} - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.allow-failure == true }}
strategy:
fail-fast: false
matrix:
version:
- "lts"
- "1" # Latest Release
- "lts" # Long-term support version
- "1" # Latest Release
os:
- ubuntu-latest
- macOS-latest # Apple silicon
- windows-latest
include:
- os: ubuntu-latest
version: "pre"
allow-failure: true
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v2
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.version }}
- uses: julia-actions/cache@v2
- uses: julia-actions/cache@v3
- uses: julia-actions/julia-buildpkg@v1
- uses: julia-actions/julia-runtest@v1
- uses: julia-actions/julia-processcoverage@v1
- uses: codecov/codecov-action@v7
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true

docs:
name: Documentation
runs-on: ubuntu-latest
permissions:
actions: write
contents: write # Required when authenticating with `GITHUB_TOKEN`, not needed when authenticating with SSH deploy keys
pull-requests: read # Required when using `push_preview=true`
statuses: write # Optional, used to report documentation build statuses
steps:
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: '1'
- uses: julia-actions/cache@v3
- run: julia --project=docs -e 'using Pkg; Pkg.instantiate()'
- run: julia --project=docs docs/make.jl
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
17 changes: 0 additions & 17 deletions .github/workflows/CompatHelper.yml

This file was deleted.

20 changes: 0 additions & 20 deletions .github/workflows/Documenter.yml

This file was deleted.

42 changes: 27 additions & 15 deletions .github/workflows/IntegrationTest.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,62 @@
name: IntegrationTest
on:
push:
branches: [master]
branches: [main]
tags: [v*]
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

# needed to allow julia-actions/cache to delete old caches that it has created
permissions:
actions: write
contents: read

jobs:
test:
name: ${{ matrix.package.repo }}
name: ${{ matrix.package.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
julia-version: [1]
os: [ubuntu-latest]
package:
- {user: JuliaDiff, repo: ChainRules.jl}
- {user: JuliaMath, repo: SpecialFunctions.jl}
- {user: invenia, repo: BlockDiagonals.jl}
- {user: JuliaDiff, name: ChainRules}
- {user: JuliaMath, name: SpecialFunctions}
- {user: invenia, name: BlockDiagonals}

steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@v1
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
arch: x64
- uses: julia-actions/julia-buildpkg@latest
- uses: julia-actions/cache@v3
- uses: julia-actions/julia-buildpkg@v1
- name: Clone Downstream
uses: actions/checkout@v2
uses: actions/checkout@v7
with:
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
repository: ${{ matrix.package.user }}/${{ matrix.package.name }}.jl
path: downstream
- name: Load this and run the downstream tests
shell: julia --project=downstream {0}
shell: julia --project=@temp {0}
run: |
using Pkg
try
# force it to use this PR's version of the package
Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
Pkg.develop([PackageSpec(path="."), PackageSpec(path="downstream")]) # resolver may fail with main deps
Pkg.update()
Pkg.test() # resolver may fail with test time deps
Pkg.test("${{ matrix.package.name }}") # resolver may fail with test time deps
catch err
err isa Pkg.Resolve.ResolverError || rethrow()
# If we can't resolve that means this is incompatible by SemVer and this is fine
# It means we marked this as a breaking change, so we don't need to worry about
# Mistakenly introducing a breaking change, as we have intentionally made one

@info "Not compatible with this release. No problem." exception=err
exit(0) # Exit immediately, as a success
exit(0) # Exit immediately, as a success
end
28 changes: 0 additions & 28 deletions .github/workflows/JuliaNightly.yml

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/SpellCheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Spell Check

on:
push:
branches: [main]
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: only if it is a pull request build.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

permissions:
contents: read

jobs:
typos:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: crate-ci/typos@v1.51.1
21 changes: 15 additions & 6 deletions .github/workflows/fix_doctests.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,37 @@
name: fix_doctests
on:
pull_request:

concurrency:
# Skip intermediate builds: always.
# Cancel intermediate builds: always.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read
pull-requests: write # Required by reviewdog/action-suggester to post suggestions

jobs:
doctests:
name: Fix doctests (Julia ${{ matrix.julia-version }} - ${{ github.event_name }})
runs-on: ubuntu-latest
strategy:
matrix:
julia-version:
- '1.10'
- '1'
steps:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@latest
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
- name: Fix doctests
shell: julia --project=docs/ {0}
run: |
using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()
using Pkg; Pkg.instantiate()
using Documenter
using ChainRulesTestUtils
doctest(ChainRulesTestUtils, fix=true)
# don't push changes to Manifest in suggestions, as it removes `path=..`
run(`git restore docs/Manifest.toml`)
- uses: reviewdog/action-suggester@v1
if: github.event_name == 'pull_request'
with:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ docs/site/
# It records a fixed state of all packages used by the project. As such, it should not be
# committed for packages, but should be committed for applications that require a static
# environment.
/Manifest.toml
Manifest*.toml

# JetBrains meta files
.idea/*
Expand Down
17 changes: 7 additions & 10 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name = "ChainRulesTestUtils"
uuid = "cdddcdb0-9152-4a09-a978-84456f9df70a"
version = "1.13.1"
version = "1.13.2"

[deps]
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
Compat = "34da2185-b29b-5c13-b0c7-acf172513d20"
FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Expand All @@ -13,14 +12,12 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[compat]
ChainRulesCore = "1.11.2"
Compat = "3, 4"
FiniteDifferences = "0.12.12"
MetaTesting = "0.1"
LinearAlgebra = "1"
Random = "1"
Suppressor = "0.2.6"
julia = "1"
Test = "1"
julia = "1.10"

[extras]
MetaTesting = "9e32d19f-1e4f-477a-8631-b16c78aa0f56"

[targets]
test = ["MetaTesting"]
[workspace]
projects = ["test", "docs"]
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaDiff.github.io/ChainRulesTestUtils.jl/stable)


| ⚠️ The ChainRules project is currently seeking a new primary maintainer ⚠️ |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| See this [Discourse thread](https://discourse.julialang.org/t/chainrules-project-looking-for-a-new-primary-maintainer/115636). We currently have many secondary maintainers and contributors with commit rights, but noone who has committed to leading the efforts. Until this is resolved PRs and issues may not recieve timely response. |
| ⚠️ The ChainRules project is currently seeking a new primary maintainer ⚠️ |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| See this [Discourse thread](https://discourse.julialang.org/t/chainrules-project-looking-for-a-new-primary-maintainer/115636). We currently have many secondary maintainers and contributors with commit rights, but no one who has committed to leading the efforts. Until this is resolved PRs and issues may not receive timely response. |

> Collection of utilities for testing forward- and reverse-mode AD sensitivities.

Expand Down
Loading
Loading