From b098951d13aed286c78b76e531f77d7a0fdcd611 Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Fri, 12 Jun 2026 17:01:12 -0400 Subject: [PATCH 1/5] Remove dead Travis and AppVeyor CI configs Co-Authored-By: Chris Rackauckas --- .travis.yml | 29 ---------------------------- appveyor.yml | 53 ---------------------------------------------------- 2 files changed, 82 deletions(-) delete mode 100644 .travis.yml delete mode 100644 appveyor.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 99b72ac..0000000 --- a/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -# Documentation: http://docs.travis-ci.com/user/languages/julia/ -language: julia -os: - - linux - - osx -julia: - - 1.0 - - 1.1 - - 1.2 - - 1.3 - - 1.4 - - 1.5 - - nightly -addons: - apt: - packages: - - gfortran -matrix: - allow_failures: - - julia: nightly -notifications: - email: false -before_install: - - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew cask uninstall --force oclint || true ; brew list gcc || brew install gcc; fi -after_success: - # push coverage results to Coveralls - - julia -e 'import Pkg; cd(Pkg.dir("ODEInterface")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' - # push coverage results to Codecov - #- julia -e 'import Pkg; cd(Pkg.dir("ODEInterface")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index dec6c0f..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,53 +0,0 @@ -environment: - matrix: - - julia_version: 1.0 - - julia_version: 1.1 - - julia_version: 1.2 - - julia_version: 1.3 - - julia_version: 1.4 - - julia_version: 1.5 - - julia_version: nightly - -platform: - - x86 # 32-bit - - x64 # 64-bit - -# Uncomment the following lines to allow failures on nightly julia -# (tests will run but not make your overall status red) -matrix: - allow_failures: - - julia_version: nightly - -branches: - only: - - master - - devel - - /release-.*/ - -notifications: - - provider: Email - on_build_success: false - on_build_failure: false - on_build_status_changed: false - -install: - - echo "%platform%" - - dir C:\mingw-w64\ - - if %platform%==x86 set PATH=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin;%PATH% - - if %platform%==x64 set PATH=C:\mingw-w64\x86_64-7.3.0-posix-seh-rt_v5-rev0\mingw64\bin;%PATH% - - echo "%path%" - - 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%" - -# # Uncomment to support code coverage upload. Should only be enabled for packages -# # which would have coverage gaps without running on Windows -# on_success: -# - echo "%JL_CODECOV_SCRIPT%" -# - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%" \ No newline at end of file From 6781d481e3664f1f1ebacce5dfe2ba9f05662ccc Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Fri, 12 Jun 2026 17:01:12 -0400 Subject: [PATCH 2/5] Add GitHub Actions CI: tests, downgrade, Runic, typos, TagBot, CompatHelper, Dependabot Tests/Downgrade/FormatCheck/SpellCheck reuse the public SciML/.github reusable workflows; TagBot and CompatHelper use the standard upstream templates so they work with the default GITHUB_TOKEN outside the SciML org. Co-Authored-By: Chris Rackauckas --- .github/dependabot.yml | 7 +++++ .github/workflows/CompatHelper.yml | 42 ++++++++++++++++++++++++++++++ .github/workflows/Downgrade.yml | 18 +++++++++++++ .github/workflows/FormatCheck.yml | 15 +++++++++++ .github/workflows/SpellCheck.yml | 8 ++++++ .github/workflows/TagBot.yml | 30 +++++++++++++++++++++ .github/workflows/Tests.yml | 42 ++++++++++++++++++++++++++++++ 7 files changed, 162 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/CompatHelper.yml create mode 100644 .github/workflows/Downgrade.yml create mode 100644 .github/workflows/FormatCheck.yml create mode 100644 .github/workflows/SpellCheck.yml create mode 100644 .github/workflows/TagBot.yml create mode 100644 .github/workflows/Tests.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..700707c --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml new file mode 100644 index 0000000..8bd37d7 --- /dev/null +++ b/.github/workflows/CompatHelper.yml @@ -0,0 +1,42 @@ +name: CompatHelper +on: + schedule: + - cron: 0 0 * * * + workflow_dispatch: +permissions: + contents: write + pull-requests: write +jobs: + CompatHelper: + runs-on: ubuntu-latest + steps: + - name: Check if Julia is already available in the PATH + id: julia_in_path + run: which julia + continue-on-error: true + - name: Install Julia, but only if it's not already in the PATH + uses: julia-actions/setup-julia@v3 + with: + version: '1' + if: steps.julia_in_path.outcome != 'success' + - name: "Add the General registry via Git" + run: | + import Pkg + ENV["JULIA_PKG_SERVER"] = "" + Pkg.Registry.add("General") + shell: julia --color=yes {0} + - name: "Install CompatHelper" + run: | + import Pkg + name = "CompatHelper" + uuid = "aa819f21-2bde-4658-8897-bab36330d9b7" + version = "3" + Pkg.add(; name, uuid, version) + shell: julia --color=yes {0} + - name: "Run CompatHelper" + run: | + import CompatHelper + CompatHelper.main() + shell: julia --color=yes {0} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/Downgrade.yml b/.github/workflows/Downgrade.yml new file mode 100644 index 0000000..4252d98 --- /dev/null +++ b/.github/workflows/Downgrade.yml @@ -0,0 +1,18 @@ +name: Downgrade +on: + pull_request: + branches: + - master + paths-ignore: + - 'doc/**' + push: + branches: + - master + paths-ignore: + - 'doc/**' +jobs: + test: + uses: "SciML/.github/.github/workflows/downgrade.yml@v1" + with: + julia-version: "lts" + secrets: "inherit" diff --git a/.github/workflows/FormatCheck.yml b/.github/workflows/FormatCheck.yml new file mode 100644 index 0000000..8dad791 --- /dev/null +++ b/.github/workflows/FormatCheck.yml @@ -0,0 +1,15 @@ +name: format-check + +on: + push: + branches: + - 'master' + - 'main' + - 'release-' + tags: '*' + pull_request: + +jobs: + runic: + uses: "SciML/.github/.github/workflows/runic.yml@v1" + secrets: "inherit" diff --git a/.github/workflows/SpellCheck.yml b/.github/workflows/SpellCheck.yml new file mode 100644 index 0000000..434bc76 --- /dev/null +++ b/.github/workflows/SpellCheck.yml @@ -0,0 +1,8 @@ +name: Spell Check + +on: [pull_request] + +jobs: + typos-check: + uses: "SciML/.github/.github/workflows/spellcheck.yml@v1" + secrets: "inherit" diff --git a/.github/workflows/TagBot.yml b/.github/workflows/TagBot.yml new file mode 100644 index 0000000..a3de268 --- /dev/null +++ b/.github/workflows/TagBot.yml @@ -0,0 +1,30 @@ +name: TagBot +on: + issue_comment: + types: + - created + workflow_dispatch: + inputs: + lookback: + default: "3" +permissions: + actions: read + checks: read + contents: write + deployments: read + issues: read + discussions: read + packages: read + pages: read + pull-requests: read + repository-projects: read + security-events: read + statuses: read +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 }} diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml new file mode 100644 index 0000000..f03a5f7 --- /dev/null +++ b/.github/workflows/Tests.yml @@ -0,0 +1,42 @@ +name: "Tests" + +on: + push: + branches: + - master + paths-ignore: + - "doc/**" + pull_request: + branches: + - master + paths-ignore: + - "doc/**" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref_name != github.event.repository.default_branch || github.ref != 'refs/tags/v*' }} + +jobs: + test: + name: "Tests" + strategy: + fail-fast: false + matrix: + version: + - "1" + os: + - "ubuntu-latest" + - "windows-latest" + - "macOS-latest" + include: + - version: "min" + os: "ubuntu-latest" + - version: "pre" + os: "ubuntu-latest" + uses: "SciML/.github/.github/workflows/tests.yml@v1" + with: + julia-version: ${{ matrix.version }} + os: ${{ matrix.os }} + coverage-directories: "src" + secrets: inherit From 9c837b18dc363d95676ac3c87c2744fa611e1c4d Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Fri, 12 Jun 2026 17:01:12 -0400 Subject: [PATCH 3/5] Add compat bounds for all dependencies and set julia = "1.10" floor ODEInterface_jll 0.0.2 (the version with the Julia 1.12 loading fix layout) itself requires Julia >= 1.10, so 1.10 LTS is the supported floor. Co-Authored-By: Chris Rackauckas --- Project.toml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 79e30df..632fa24 100644 --- a/Project.toml +++ b/Project.toml @@ -13,7 +13,14 @@ ODEInterface_jll = "c771fb93-2439-5ece-a3b3-58fecce82101" Unicode = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [compat] -julia = "1.0" +Dates = "1.10" +Libdl = "1.10" +LinearAlgebra = "1.10" +Markdown = "1.10" +ODEInterface_jll = "0.0.2" +Test = "1.10" +Unicode = "1.10" +julia = "1.10" [extras] Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From 2bd9959f502117d479952e41f250b4c2919ea930 Mon Sep 17 00:00:00 2001 From: Chris Rackauckas Date: Fri, 12 Jun 2026 17:01:12 -0400 Subject: [PATCH 4/5] Replace Travis/AppVeyor/Coveralls badges with GitHub Actions and Codecov Co-Authored-By: Chris Rackauckas --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5f7d498..5e3c239 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # ODEInterface -[![Travis](https://travis-ci.org/luchr/ODEInterface.jl.svg?branch=master)](https://travis-ci.org/luchr/ODEInterface.jl) -[![Build status](https://ci.appveyor.com/api/projects/status/bu702cga2ovlio5x/branch/master?svg=true)](https://ci.appveyor.com/project/luchr/odeinterface-jl/branch/master) -[![Coverage Status](https://coveralls.io/repos/github/luchr/ODEInterface.jl/badge.svg?branch=master)](https://coveralls.io/github/luchr/ODEInterface.jl?branch=master) +[![Tests](https://github.com/luchr/ODEInterface.jl/actions/workflows/Tests.yml/badge.svg?branch=master)](https://github.com/luchr/ODEInterface.jl/actions/workflows/Tests.yml) +[![codecov](https://codecov.io/gh/luchr/ODEInterface.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/luchr/ODEInterface.jl) This julia module provides an interface to solvers for From fcc0e20dac6f748f6fd947a6d752331835239485 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Sat, 13 Jun 2026 08:35:05 +0000 Subject: [PATCH 5/5] Delete .github/workflows/CompatHelper.yml --- .github/workflows/CompatHelper.yml | 42 ------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 .github/workflows/CompatHelper.yml diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml deleted file mode 100644 index 8bd37d7..0000000 --- a/.github/workflows/CompatHelper.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: CompatHelper -on: - schedule: - - cron: 0 0 * * * - workflow_dispatch: -permissions: - contents: write - pull-requests: write -jobs: - CompatHelper: - runs-on: ubuntu-latest - steps: - - name: Check if Julia is already available in the PATH - id: julia_in_path - run: which julia - continue-on-error: true - - name: Install Julia, but only if it's not already in the PATH - uses: julia-actions/setup-julia@v3 - with: - version: '1' - if: steps.julia_in_path.outcome != 'success' - - name: "Add the General registry via Git" - run: | - import Pkg - ENV["JULIA_PKG_SERVER"] = "" - Pkg.Registry.add("General") - shell: julia --color=yes {0} - - name: "Install CompatHelper" - run: | - import Pkg - name = "CompatHelper" - uuid = "aa819f21-2bde-4658-8897-bab36330d9b7" - version = "3" - Pkg.add(; name, uuid, version) - shell: julia --color=yes {0} - - name: "Run CompatHelper" - run: | - import CompatHelper - CompatHelper.main() - shell: julia --color=yes {0} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}