Skip to content

Commit cd581c2

Browse files
start the repo
1 parent e9d590d commit cd581c2

38 files changed

+4336
-1
lines changed

.JuliaFormatter.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
style = "sciml"

.github/workflows/CompatHelper.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: CompatHelper
2+
3+
on:
4+
schedule:
5+
- cron: '00 * * * *'
6+
issues:
7+
types: [opened, reopened]
8+
9+
jobs:
10+
build:
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
matrix:
14+
julia-version: [1]
15+
julia-arch: [x86]
16+
os: [ubuntu-latest]
17+
steps:
18+
- uses: julia-actions/setup-julia@latest
19+
with:
20+
version: ${{ matrix.julia-version }}
21+
- name: Pkg.add("CompatHelper")
22+
run: julia -e 'using Pkg; Pkg.add("CompatHelper")'
23+
- name: CompatHelper.main()
24+
env:
25+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26+
run: julia -e 'using CompatHelper; CompatHelper.main()'
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Documentation
2+
on:
3+
push:
4+
branches:
5+
- master
6+
tags: '*'
7+
pull_request:
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: julia-actions/setup-julia@latest
15+
with:
16+
version: '1'
17+
- run: julia --project -e 'using Pkg; Pkg.develop([PackageSpec(path=joinpath(pwd(), "lib", "ArrayInterfaceCore"))])'
18+
- uses: julia-actions/julia-buildpkg@latest
19+
- run: julia --project=docs/ -e 'using Pkg; Pkg.develop([PackageSpec(path=joinpath(pwd(), "lib", "ArrayInterfaceCore"))]); Pkg.instantiate()'
20+
- uses: julia-actions/julia-docdeploy@releases/v1
21+
env:
22+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/Downstream.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: IntegrationTest
2+
on:
3+
push:
4+
branches: [master]
5+
tags: [v*]
6+
pull_request:
7+
8+
jobs:
9+
test:
10+
name: ${{ matrix.package.repo }}/${{ matrix.package.group }}/${{ matrix.julia-version }}
11+
runs-on: ${{ matrix.os }}
12+
env:
13+
GROUP: ${{ matrix.package.group }}
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
julia-version: [1,1.6]
18+
os: [ubuntu-latest]
19+
package:
20+
- {user: JuliaDiff, repo: SparseDiffTools.jl, group: Core}
21+
- {user: SciML, repo: SciMLBase.jl, group: Core}
22+
- {user: SciML, repo: DiffEqBase.jl, group: Core}
23+
- {user: SciML, repo: DiffEqBase.jl, group: Downstream}
24+
- {user: SciML, repo: DiffEqBase.jl, group: Downstream2}
25+
- {user: SciML, repo: SciMLSensitivity.jl, group: Core1}
26+
- {user: SciML, repo: SciMLSensitivity.jl, group: Core2}
27+
- {user: SciML, repo: SciMLSensitivity.jl, group: Core3}
28+
- {user: SciML, repo: SciMLSensitivity.jl, group: Core4}
29+
- {user: SciML, repo: SciMLSensitivity.jl, group: Core5}
30+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: Core}
31+
- {user: SciML, repo: OrdinaryDiffEq.jl, group: Interface}
32+
- {user: SciML, repo: DelayDiffEq.jl, group: Interface}
33+
- {user: JuliaSIMD, repo: VectorizationBase.jl, group: Interface}
34+
- {user: JuliaSIMD, repo: LoopVectorization.jl, group: Downstream3}
35+
steps:
36+
- uses: actions/checkout@v2
37+
- uses: julia-actions/setup-julia@v1
38+
with:
39+
version: ${{ matrix.julia-version }}
40+
arch: x64
41+
- uses: julia-actions/julia-buildpkg@latest
42+
- name: Clone Downstream
43+
uses: actions/checkout@v2
44+
with:
45+
repository: ${{ matrix.package.user }}/${{ matrix.package.repo }}
46+
path: downstream
47+
- name: Load this and run the downstream tests
48+
shell: julia --color=yes {0}
49+
run: |
50+
using Pkg
51+
try
52+
# force it to use this PR's version of the package
53+
Pkg.develop(PackageSpec(path=".")) # resolver may fail with main deps
54+
Pkg.develop(Pkg.PackageSpec(path=joinpath(pwd(), "lib", "ArrayInterfaceCore")))
55+
Pkg.develop(Pkg.PackageSpec(path=joinpath(pwd(), "lib", "ArrayInterfaceOffsetArrays")))
56+
Pkg.develop(Pkg.PackageSpec(path=joinpath(pwd(), "lib", "ArrayInterfaceStaticArrays")))
57+
Pkg.activate("downstream")
58+
Pkg.update()
59+
Pkg.test() # resolver may fail with test time deps
60+
catch err
61+
err isa Pkg.Resolve.ResolverError || rethrow()
62+
# If we can't resolve that means this is incompatible by SemVer and this is fine
63+
# It means we marked this as a breaking change, so we don't need to worry about
64+
# Mistakenly introducing a breaking change, as we have intentionally made one
65+
@info "Not compatible with this release. No problem." exception=err
66+
exit(0) # Exit immediately, as a success
67+
end
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Invalidations
2+
3+
on:
4+
pull_request:
5+
6+
concurrency:
7+
# Skip intermediate builds: always.
8+
# Cancel intermediate builds: always.
9+
group: ${{ github.workflow }}-${{ github.ref }}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
evaluate:
14+
# Only run on PRs to the default branch.
15+
# In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
16+
if: github.base_ref == github.event.repository.default_branch
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: julia-actions/setup-julia@v1
20+
with:
21+
version: '1'
22+
- uses: actions/checkout@v3
23+
- uses: julia-actions/julia-buildpkg@v1
24+
- uses: julia-actions/julia-invalidations@v1
25+
id: invs_pr
26+
27+
- uses: actions/checkout@v3
28+
with:
29+
ref: ${{ github.event.repository.default_branch }}
30+
- uses: julia-actions/julia-buildpkg@v1
31+
- uses: julia-actions/julia-invalidations@v1
32+
id: invs_default
33+
34+
- name: Report invalidation counts
35+
run: |
36+
echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
37+
echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
38+
- name: Check if the PR does increase number of invalidations
39+
if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
40+
run: exit 1

.github/workflows/TagBot.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: TagBot
2+
on:
3+
issue_comment:
4+
types:
5+
- created
6+
workflow_dispatch:
7+
jobs:
8+
TagBot:
9+
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: JuliaRegistries/TagBot@v1
13+
with:
14+
token: ${{ secrets.GITHUB_TOKEN }}
15+
ssh: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/ci.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: CI
2+
on:
3+
pull_request:
4+
branches:
5+
- master
6+
push:
7+
branches:
8+
- master
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
group:
15+
- Core
16+
version:
17+
- '1'
18+
- '1.6'
19+
steps:
20+
- uses: actions/checkout@v2
21+
- uses: julia-actions/setup-julia@v1
22+
with:
23+
version: ${{ matrix.version }}
24+
- uses: actions/cache@v1
25+
env:
26+
cache-name: cache-artifacts
27+
with:
28+
path: ~/.julia/artifacts
29+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
30+
restore-keys: |
31+
${{ runner.os }}-test-${{ env.cache-name }}-
32+
${{ runner.os }}-test-
33+
${{ runner.os }}-
34+
- uses: julia-actions/julia-buildpkg@v1
35+
- uses: julia-actions/julia-runtest@v1
36+
env:
37+
GROUP: ${{ matrix.group }}
38+
- uses: julia-actions/julia-processcoverage@v1
39+
- uses: codecov/codecov-action@v1
40+
with:
41+
file: lcov.info

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
*.jl.cov
2+
*.jl.*.cov
3+
*.jl.mem
4+
deps/deps.jl
5+
Manifest.toml
6+
*~

CITATION.bib

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@article{DifferentialEquations.jl-2017,
2+
author = {Rackauckas, Christopher and Nie, Qing},
3+
doi = {10.5334/jors.151},
4+
journal = {The Journal of Open Research Software},
5+
keywords = {Applied Mathematics},
6+
note = {Exported from https://app.dimensions.ai on 2019/05/05},
7+
number = {1},
8+
pages = {},
9+
title = {DifferentialEquations.jl – A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia},
10+
url = {https://app.dimensions.ai/details/publication/pub.1085583166 and http://openresearchsoftware.metajnl.com/articles/10.5334/jors.151/galley/245/download/},
11+
volume = {5},
12+
year = {2017}
13+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2018 JuliaDiffEq
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)