diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml
index 5f3c5236..db09e2e1 100644
--- a/.github/workflows/CI.yml
+++ b/.github/workflows/CI.yml
@@ -3,10 +3,13 @@ on:
pull_request:
branches:
- master
+ paths-ignore:
+ - 'docs/**'
push:
branches:
- master
- tags: '*'
+ paths-ignore:
+ - 'docs/**'
jobs:
test:
name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml
index 67e92708..48163a7d 100644
--- a/.github/workflows/CompatHelper.yml
+++ b/.github/workflows/CompatHelper.yml
@@ -21,4 +21,4 @@ jobs:
- name: CompatHelper.main()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: julia -e 'using CompatHelper; CompatHelper.main()'
+ run: julia -e 'using CompatHelper; CompatHelper.main(;subdirs=["", "docs"])'
diff --git a/.github/workflows/Documentation.yml b/.github/workflows/Documentation.yml
index 6afc0479..c918c3a2 100644
--- a/.github/workflows/Documentation.yml
+++ b/.github/workflows/Documentation.yml
@@ -21,3 +21,9 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # For authentication with GitHub Actions token
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # For authentication with SSH deploy key
run: julia --project=docs/ docs/make.jl
+ - uses: julia-actions/julia-processcoverage@v1
+ with:
+ directories: src
+ - uses: codecov/codecov-action@v3
+ with:
+ files: lcov.info
\ No newline at end of file
diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml
new file mode 100644
index 00000000..f8aaf0d0
--- /dev/null
+++ b/.github/workflows/FormatCheck.yml
@@ -0,0 +1,42 @@
+name: format-check
+
+on:
+ push:
+ branches:
+ - 'master'
+ - 'release-'
+ tags: '*'
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ julia-version: [1]
+ julia-arch: [x86]
+ os: [ubuntu-latest]
+ steps:
+ - uses: julia-actions/setup-julia@latest
+ with:
+ version: ${{ matrix.julia-version }}
+
+ - uses: actions/checkout@v4
+ - name: Install JuliaFormatter and format
+ # This will use the latest version by default but you can set the version like so:
+ #
+ # julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter", version="0.13.0"))'
+ run: |
+ julia -e 'using Pkg; Pkg.add(PackageSpec(name="JuliaFormatter"))'
+ julia -e 'using JuliaFormatter; format(".", verbose=true)'
+ - name: Format check
+ run: |
+ julia -e '
+ out = Cmd(`git diff --name-only`) |> read |> String
+ if out == ""
+ exit(0)
+ else
+ @error "Some files have not been formatted !!!"
+ write(stdout, out)
+ exit(1)
+ end'
\ No newline at end of file
diff --git a/.github/workflows/Invalidations.yml b/.github/workflows/Invalidations.yml
new file mode 100644
index 00000000..7e0aefe0
--- /dev/null
+++ b/.github/workflows/Invalidations.yml
@@ -0,0 +1,40 @@
+name: Invalidations
+
+on:
+ pull_request:
+
+concurrency:
+ # Skip intermediate builds: always.
+ # Cancel intermediate builds: always.
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ evaluate:
+ # Only run on PRs to the default branch.
+ # In the PR trigger above branches can be specified only explicitly whereas this check should work for master, main, or any other default branch
+ if: github.base_ref == github.event.repository.default_branch
+ runs-on: ubuntu-latest
+ steps:
+ - uses: julia-actions/setup-julia@v1
+ with:
+ version: '1'
+ - uses: actions/checkout@v4
+ - uses: julia-actions/julia-buildpkg@v1
+ - uses: julia-actions/julia-invalidations@v1
+ id: invs_pr
+
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{ github.event.repository.default_branch }}
+ - uses: julia-actions/julia-buildpkg@v1
+ - uses: julia-actions/julia-invalidations@v1
+ id: invs_default
+
+ - name: Report invalidation counts
+ run: |
+ echo "Invalidations on default branch: ${{ steps.invs_default.outputs.total }} (${{ steps.invs_default.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
+ echo "This branch: ${{ steps.invs_pr.outputs.total }} (${{ steps.invs_pr.outputs.deps }} via deps)" >> $GITHUB_STEP_SUMMARY
+ - name: Check if the PR does increase number of invalidations
+ if: steps.invs_pr.outputs.total > steps.invs_default.outputs.total
+ run: exit 1
\ No newline at end of file
diff --git a/docs/Project.toml b/docs/Project.toml
index eb62999f..e5abf6f8 100644
--- a/docs/Project.toml
+++ b/docs/Project.toml
@@ -5,3 +5,11 @@ Optim = "429524aa-4258-5aef-a3af-852621145aeb"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
RegularizationTools = "29dad682-9a27-4bc3-9c72-016788665182"
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
+
+[compat]
+DataInterpolations = "4"
+Documenter = "1"
+Optim = "1"
+Plots = "1"
+RegularizationTools = "0.6"
+StableRNGs = "1"
\ No newline at end of file
diff --git a/docs/make.jl b/docs/make.jl
index 2d5d5b74..2ffa3b49 100644
--- a/docs/make.jl
+++ b/docs/make.jl
@@ -5,17 +5,15 @@ ENV["GKSwstype"] = "100"
makedocs(
modules = [DataInterpolations],
sitename = "DataInterpolations.jl",
+ clean = true,
+ doctest = false,
+ linkcheck = true,
warnonly = [:missing_docs],
format = Documenter.HTML(
- analytics = "UA-90474609-3",
assets = ["assets/favicon.ico"],
canonical = "https://docs.sciml.ai/DataInterpolations/stable/",
),
- pages = [
- "index.md",
- "Methods" => "methods.md",
- "Interface" => "interface.md"
- ],
+ pages = ["index.md", "Methods" => "methods.md", "Interface" => "interface.md"],
)
deploydocs(repo = "github.com/SciML/DataInterpolations.jl"; push_preview = true)
diff --git a/docs/src/index.md b/docs/src/index.md
index ac2ce206..c5e04a24 100644
--- a/docs/src/index.md
+++ b/docs/src/index.md
@@ -6,6 +6,16 @@ some methods are mixtures of regressions with interpolations (i.e. do not hit th
points exactly, smoothing out the lines). This library can be used to fill in intermediate
data points in applications like timeseries data.
+
+## Installation
+
+To install LinearSolve.jl, use the Julia package manager:
+
+```julia
+using Pkg
+Pkg.add("DataInterpolations")
+```
+
## Available Interpolations
In all cases, `u` an `AbstractVector` of values and `t` is an `AbstractVector` of timepoints
@@ -53,3 +63,77 @@ The series types defined are:
- `:cubic_spline`
By and large, these accept the same keywords as their function counterparts.
+
+## Contributing
+
+ - Please refer to the
+ [SciML ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://github.com/SciML/ColPrac/blob/master/README.md)
+ for guidance on PRs, issues, and other matters relating to contributing to SciML.
+
+ - See the [SciML Style Guide](https://github.com/SciML/SciMLStyle) for common coding practices and other style decisions.
+ - There are a few community forums:
+
+ + The #diffeq-bridged and #sciml-bridged channels in the
+ [Julia Slack](https://julialang.org/slack/)
+ + The #diffeq-bridged and #sciml-bridged channels in the
+ [Julia Zulip](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)
+ + On the [Julia Discourse forums](https://discourse.julialang.org)
+ + See also [SciML Community page](https://sciml.ai/community/)
+
+## Reproducibility
+
+```@raw html
+The documentation of this SciML package was built using these direct dependencies,
+```
+
+```@example
+using Pkg # hide
+Pkg.status() # hide
+```
+
+```@raw html
+
+```
+
+```@raw html
+and using this machine and Julia version.
+```
+
+```@example
+using InteractiveUtils # hide
+versioninfo() # hide
+```
+
+```@raw html
+
+```
+
+```@raw html
+A more complete overview of all dependencies and their versions is also provided.
+```
+
+```@example
+using Pkg # hide
+Pkg.status(; mode = PKGMODE_MANIFEST) # hide
+```
+
+```@raw html
+
+```
+
+```@eval
+using TOML
+using Markdown
+version = TOML.parse(read("../../Project.toml", String))["version"]
+name = TOML.parse(read("../../Project.toml", String))["name"]
+link_manifest = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
+ "/assets/Manifest.toml"
+link_project = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
+ "/assets/Project.toml"
+Markdown.parse("""You can also download the
+[manifest]($link_manifest)
+file and the
+[project]($link_project)
+file.
+""")
+```
\ No newline at end of file