diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000..da9e46d --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,33 @@ +# Documentation: https://github.com/JuliaCI/Appveyor.jl +environment: + matrix: + - julia_version: 1.6 + - julia_version: 1.7 + - julia_version: nightly +platform: + - x64 +cache: + - '%USERPROFILE%\.julia\artifacts' +matrix: + allow_failures: + - julia_version: nightly +branches: + only: + - master + - /release-.*/ +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false +install: + - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1")) +build_script: + - echo "%JL_BUILD_SCRIPT%" + - C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%" +test_script: + - echo "%JL_TEST_SCRIPT%" + - C:\julia\bin\julia -e "%JL_TEST_SCRIPT%" +on_success: + - echo "%JL_CODECOV_SCRIPT%" + - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%" diff --git a/.cirrus.yml b/.cirrus.yml new file mode 100644 index 0000000..1950ae9 --- /dev/null +++ b/.cirrus.yml @@ -0,0 +1,18 @@ +freebsd_instance: + image: freebsd-12-0-release-amd64 +task: + name: FreeBSD + artifacts_cache: + folder: ~/.julia/artifacts + env: + JULIA_VERSION: 1.6 + JULIA_VERSION: 1.7 + JULIA_VERSION: nightly + install_script: + - sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)" + build_script: + - cirrusjl build + test_script: + - cirrusjl test + coverage_script: + - cirrusjl coverage codecov coveralls diff --git a/.drone.star b/.drone.star new file mode 100644 index 0000000..1a4e2a0 --- /dev/null +++ b/.drone.star @@ -0,0 +1,27 @@ +def main(ctx): + pipelines = [] + for arch in ["amd64"]: + for julia in ["1.6", "1.7"]: + pipelines.append(pipeline(arch, julia)) + return pipelines + +def pipeline(arch, julia): + return { + "kind": "pipeline", + "type": "docker", + "name": "Julia %s - %s" % (julia, arch), + "platform": { + "os": "linux", + "arch": arch, + }, + "steps": [ + { + "name": "test", + "image": "julia:%s" % julia, + "commands": [ + "julia -e 'using InteractiveUtils; versioninfo()'", + "julia --project=@. -e 'using Pkg; Pkg.instantiate(); Pkg.build(); Pkg.test();'", + ], + }, + ], + } diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..d866642 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,68 @@ +name: CI +on: + push: + branches: + - master + tags: '*' + 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/') }} +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - '1.6' + - '1.7' + - 'nightly' + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - x86 + exclude: + - os: macOS-latest + arch: x86 + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: julia-actions/cache@v1 + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-runtest@v1 + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v2 + with: + files: lcov.info + - uses: julia-actions/julia-uploadcoveralls@v1 + env: + COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }} + docs: + name: Documentation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: julia-actions/setup-julia@v1 + with: + version: '1' + - uses: julia-actions/julia-buildpkg@v1 + - uses: julia-actions/julia-docdeploy@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} + - run: | + julia --project=docs -e ' + using Documenter: DocMeta, doctest + using Kelpie + DocMeta.setdocmeta!(Kelpie, :DocTestSetup, :(using Kelpie); recursive=true) + doctest(Kelpie)' diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml new file mode 100644 index 0000000..cba9134 --- /dev/null +++ b/.github/workflows/CompatHelper.yml @@ -0,0 +1,16 @@ +name: CompatHelper +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: +jobs: + CompatHelper: + runs-on: ubuntu-latest + steps: + - name: Pkg.add("CompatHelper") + run: julia -e 'using Pkg; Pkg.add("CompatHelper")' + - name: CompatHelper.main() + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COMPATHELPER_PRIV: ${{ secrets.DOCUMENTER_KEY }} + run: julia -e 'using CompatHelper; CompatHelper.main()' diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000..f49313b --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,15 @@ +name: TagBot +on: + issue_comment: + types: + - created + workflow_dispatch: +jobs: + TagBot: + if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot' + runs-on: ubuntu-latest + steps: + - uses: JuliaRegistries/TagBot@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + ssh: ${{ secrets.DOCUMENTER_KEY }} diff --git a/.github/workflows/register.yml b/.github/workflows/register.yml new file mode 100644 index 0000000..6e71f2f --- /dev/null +++ b/.github/workflows/register.yml @@ -0,0 +1,14 @@ +name: Register Package +on: + workflow_dispatch: + inputs: + version: + description: Version to register or component to bump + required: true +jobs: + register: + runs-on: ubuntu-latest + steps: + - uses: julia-actions/RegisterAction@latest + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..20fe29d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.jl.*.cov +*.jl.cov +*.jl.mem +/Manifest.toml +/docs/build/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..e3f8937 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,28 @@ +.script: + script: + - | + julia --project=@. -e ' + using Pkg + Pkg.build() + Pkg.test(coverage=true)' +.coverage: + coverage: /Test coverage (\d+\.\d+%)/ + after_script: + - | + julia -e ' + using Pkg + Pkg.add("Coverage") + using Coverage + c, t = get_summary(process_folder()) + using Printf + @printf "Test coverage %.2f%%\n" 100c / t' +Julia 1.6: + image: julia:1.6 + extends: + - .script + - .coverage +Julia 1.7: + image: julia:1.7 + extends: + - .script + - .coverage diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..dad38b0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,32 @@ +# Documentation: http://docs.travis-ci.com/user/languages/julia +language: julia +notifications: + email: false +julia: + - 1.6 + - 1.7 + - nightly +os: + - linux +arch: + - x64 +cache: + directories: + - ~/.julia/artifacts +jobs: + fast_finish: true + allow_failures: + - julia: nightly +after_success: + - | + julia -e ' + using Pkg + Pkg.add("Coverage") + using Coverage + Codecov.submit(process_folder())' + - | + julia -e ' + using Pkg + Pkg.add("Coverage") + using Coverage + Coveralls.submit(process_folder())' diff --git a/CITATION.bib b/CITATION.bib new file mode 100644 index 0000000..03b3273 --- /dev/null +++ b/CITATION.bib @@ -0,0 +1,8 @@ +@misc{Kelpie.jl, + author = {Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> and contributors}, + title = {Kelpie.jl}, + url = {https://github.com/MillironX/Kelpie.jl}, + version = {v0.1.0}, + year = {2022}, + month = {3} +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a7844ac --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Project.toml b/Project.toml new file mode 100644 index 0000000..219b50c --- /dev/null +++ b/Project.toml @@ -0,0 +1,13 @@ +name = "Kelpie" +uuid = "1b112299-d6bc-44e2-912a-478f25731460" +authors = ["Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> and contributors"] +version = "0.1.0" + +[compat] +julia = "1.6" + +[extras] +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[targets] +test = ["Test"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..bce4f18 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Kelpie + +[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://MillironX.github.io/Kelpie.jl/stable) +[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://MillironX.github.io/Kelpie.jl/dev) +[![Build Status](https://github.com/MillironX/Kelpie.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/MillironX/Kelpie.jl/actions/workflows/CI.yml?query=branch%3Amaster) +[![Build Status](https://github.com/MillironX/Kelpie.jl/badges/master/pipeline.svg)](https://github.com/MillironX/Kelpie.jl/pipelines) +[![Coverage](https://github.com/MillironX/Kelpie.jl/badges/master/coverage.svg)](https://github.com/MillironX/Kelpie.jl/commits/master) +[![Build Status](https://travis-ci.com/MillironX/Kelpie.jl.svg?branch=master)](https://travis-ci.com/MillironX/Kelpie.jl) +[![Build Status](https://ci.appveyor.com/api/projects/status/github/MillironX/Kelpie.jl?svg=true)](https://ci.appveyor.com/project/MillironX/Kelpie-jl) +[![Build Status](https://cloud.drone.io/api/badges/MillironX/Kelpie.jl/status.svg)](https://cloud.drone.io/MillironX/Kelpie.jl) +[![Build Status](https://api.cirrus-ci.com/github/MillironX/Kelpie.jl.svg)](https://cirrus-ci.com/github/MillironX/Kelpie.jl) +[![Coverage](https://codecov.io/gh/MillironX/Kelpie.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/MillironX/Kelpie.jl) +[![Coverage](https://coveralls.io/repos/github/MillironX/Kelpie.jl/badge.svg?branch=master)](https://coveralls.io/github/MillironX/Kelpie.jl?branch=master) +[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle) +[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor's%20Guide-blueviolet)](https://github.com/SciML/ColPrac) +[![PkgEval](https://JuliaCI.github.io/NanosoldierReports/pkgeval_badges/K/Kelpie.svg)](https://JuliaCI.github.io/NanosoldierReports/pkgeval_badges/report.html) diff --git a/docs/Manifest.toml b/docs/Manifest.toml new file mode 100644 index 0000000..6dd9c7f --- /dev/null +++ b/docs/Manifest.toml @@ -0,0 +1,100 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.7.2" +manifest_format = "2.0" + +[[deps.ANSIColoredPrinters]] +git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c" +uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9" +version = "0.0.1" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "b19534d1895d702889b219c382a6e18010797f0b" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.8.6" + +[[deps.Documenter]] +deps = ["ANSIColoredPrinters", "Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"] +git-tree-sha1 = "7d9a46421aef53cbd6b8ecc40c3dcbacbceaf40e" +uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +version = "0.27.15" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.2" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.3" + +[[deps.Kelpie]] +path = ".." +uuid = "1b112299-d6bc-44e2-912a-478f25731460" +version = "0.1.0" + +[[deps.LibGit2]] +deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" + +[[deps.Parsers]] +deps = ["Dates"] +git-tree-sha1 = "621f4f3b4977325b9128d5fae7a8b4829a0c2222" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.2.4" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA", "Serialization"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" diff --git a/docs/Project.toml b/docs/Project.toml new file mode 100644 index 0000000..ceaaa72 --- /dev/null +++ b/docs/Project.toml @@ -0,0 +1,3 @@ +[deps] +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +Kelpie = "1b112299-d6bc-44e2-912a-478f25731460" diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..929f628 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,24 @@ +using Kelpie +using Documenter + +DocMeta.setdocmeta!(Kelpie, :DocTestSetup, :(using Kelpie); recursive=true) + +makedocs(; + modules=[Kelpie], + authors="Thomas A. Christensen II <25492070+MillironX@users.noreply.github.com> and contributors", + repo="https://github.com/MillironX/Kelpie.jl/blob/{commit}{path}#{line}", + sitename="Kelpie.jl", + format=Documenter.HTML(; + prettyurls=get(ENV, "CI", "false") == "true", + canonical="https://MillironX.github.io/Kelpie.jl", + assets=String[], + ), + pages=[ + "Home" => "index.md", + ], +) + +deploydocs(; + repo="github.com/MillironX/Kelpie.jl", + devbranch="master", +) diff --git a/docs/src/index.md b/docs/src/index.md new file mode 100644 index 0000000..3302666 --- /dev/null +++ b/docs/src/index.md @@ -0,0 +1,14 @@ +```@meta +CurrentModule = Kelpie +``` + +# Kelpie + +Documentation for [Kelpie](https://github.com/MillironX/Kelpie.jl). + +```@index +``` + +```@autodocs +Modules = [Kelpie] +``` diff --git a/src/Kelpie.jl b/src/Kelpie.jl new file mode 100644 index 0000000..b898d1e --- /dev/null +++ b/src/Kelpie.jl @@ -0,0 +1,5 @@ +module Kelpie + +# Write your package code here. + +end diff --git a/test/runtests.jl b/test/runtests.jl new file mode 100644 index 0000000..ccc6c8f --- /dev/null +++ b/test/runtests.jl @@ -0,0 +1,6 @@ +using Kelpie +using Test + +@testset "Kelpie.jl" begin + # Write your tests here. +end