Skip to content

Commit 4356ec7

Browse files
authored
Merge branch 'main' into 605-general-use-ai-to-generate-problem-descriptions-in-optimalcontroljl
2 parents 1fbcd23 + eb5b421 commit 4356ec7

22 files changed

Lines changed: 946 additions & 423 deletions
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# [.github/workflows/coverage.yml]
2-
name: coverage
2+
name: Coverage
33
on:
44
push:
55
branches:

.github/workflows/UpdateReadme.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Update README with ABOUT.md and INSTALL.md
2+
3+
on:
4+
schedule:
5+
- cron: '0 6 * * 1' # every Monday at 06:00 UTC
6+
workflow_dispatch: # manual trigger
7+
8+
jobs:
9+
check-template:
10+
runs-on: ubuntu-latest
11+
outputs:
12+
has_template: ${{ steps.check.outputs.has_template }}
13+
steps:
14+
- name: Checkout repo
15+
uses: actions/checkout@v4
16+
17+
- name: Check for README.template.md
18+
id: check
19+
shell: bash
20+
run: |
21+
if [[ -f "README.template.md" ]]; then
22+
echo "has_template=true" >> "$GITHUB_OUTPUT"
23+
else
24+
echo "has_template=false" >> "$GITHUB_OUTPUT"
25+
echo "README.template.md not found. Skipping README update." >&2
26+
fi
27+
28+
call-shared:
29+
needs: check-template
30+
if: ${{ needs.check-template.outputs.has_template == 'true' }}
31+
uses: control-toolbox/CTActions/.github/workflows/update-readme.yml@main
32+
with:
33+
template_file: README.template.md
34+
output_file: README.md
35+
package_name: OptimalControl # package for INSTALL.md
36+
repo_name: OptimalControl.jl # repository for CONTRIBUTING.md links
37+
citation_badge: "[![DOI](https://zenodo.org/badge/541187171.svg)](https://zenodo.org/doi/10.5281/zenodo.16753152)" # example, can be empty
38+
assignee: "ocots"
39+
secrets: inherit

.zenodo.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"description": "<p>The&nbsp;<a href=\"https://juliahub.com/ui/Packages/General/OptimalControl\" rel=\"nofollow\">OptimalControl.jl</a>&nbsp;package is the root package of the&nbsp;<a href=\"https://github.com/control-toolbox\">control-toolbox ecosystem</a>. The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods.</p>",
2+
"description": "<p>The&nbsp;<a href=\"https://juliahub.com/ui/Packages/General/OptimalControl\" rel=\"nofollow\">OptimalControl.jl</a>&nbsp;package is the root package of the&nbsp;<a href=\"https://github.com/control-toolbox\">control-toolbox ecosystem</a>. The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU.</p>",
33
"title": "OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's",
44
"upload_type": "software",
55
"doi": "10.5281/zenodo.13336652",
@@ -45,4 +45,4 @@
4545
}
4646
],
4747
"license": "MIT"
48-
}
48+
}

CITATION.bib

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@software{Caillau_OptimalControl_jl_a_Julia,
1+
@software{OptimalControl_jl,
22
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia},
33
doi = {10.5281/zenodo.13336563},
44
license = {["MIT"]},

CONTRIBUTING.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
# Contributing
1+
## Contributing
22

33
[issue-url]: https://github.com/control-toolbox/OptimalControl.jl/issues
44
[first-good-issue-url]: https://github.com/control-toolbox/OptimalControl.jl/contribute
55

6-
If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
6+
If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
77
Before opening a pull request, please start an issue or a discussion on the topic.
88

9-
Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).
10-
If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions).
11-
You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).
9+
Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project). If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions). You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).
1210

13-
If you want to ask a question, feel free to start a discussion [here](https://github.com/orgs/control-toolbox/discussions). This forum is for general discussion about this repository and the [control-toolbox organization](https://github.com/control-toolbox).
11+
If you want to ask a question, feel free to start a discussion [here](https://github.com/orgs/control-toolbox/discussions). This forum is for general discussion about this repository and the [control-toolbox organization](https://github.com/control-toolbox).
12+
13+
>[!NOTE]
14+
> If you want to add an application or a package to the control-toolbox ecosystem, please follow this [set up tutorial](https://github.com/orgs/control-toolbox/discussions/65).

Project.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "OptimalControl"
22
uuid = "5f98b655-cc9a-415a-b60e-744165666948"
33
authors = ["Olivier Cots <olivier.cots@toulouse-inp.fr>"]
4-
version = "1.1.1"
4+
version = "1.1.2"
55

66
[deps]
77
ADNLPModels = "54578032-b7ea-4c30-94aa-7cbd1cce6c9a"
@@ -17,10 +17,10 @@ ExaModels = "1037b233-b668-4ce9-9b63-f9f681f55dd2"
1717
[compat]
1818
ADNLPModels = "0.8"
1919
CTBase = "0.16"
20-
CTDirect = "0.16"
20+
CTDirect = "0.17"
2121
CTFlows = "0.8"
2222
CTModels = "0.6"
23-
CTParser = "0.6"
23+
CTParser = "0.7"
2424
CommonSolve = "0.2"
2525
DocStringExtensions = "0.9"
2626
ExaModels = "0.9"

README.md

Lines changed: 46 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,50 @@
11
# OptimalControl.jl
22

3-
[ci-img]: https://github.com/control-toolbox/OptimalControl.jl/actions/workflows/CI.yml/badge.svg?branch=main
4-
[ci-url]: https://github.com/control-toolbox/OptimalControl.jl/actions/workflows/CI.yml?query=branch%3Amain
5-
6-
[co-img]: https://codecov.io/gh/control-toolbox/OptimalControl.jl/branch/main/graph/badge.svg?token=YM5YQQUSO3
7-
[co-url]: https://codecov.io/gh/control-toolbox/OptimalControl.jl
8-
9-
[doc-dev-img]: https://img.shields.io/badge/docs-dev-8A2BE2.svg
10-
[doc-dev-url]: https://control-toolbox.org/OptimalControl.jl/dev/
11-
12-
[doc-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg
13-
[doc-stable-url]: https://control-toolbox.org/OptimalControl.jl/stable/
14-
15-
[release-img]: https://img.shields.io/github/v/release/control-toolbox/OptimalControl.jl.svg
16-
[release-url]: https://github.com/control-toolbox/OptimalControl.jl/releases
17-
18-
[pkg-eval-img]: https://img.shields.io/badge/Julia-package-purple
19-
[pkg-eval-url]: https://juliahub.com/ui/Packages/General/OptimalControl
20-
21-
[citation-img]: https://zenodo.org/badge/541187171.svg
22-
[citation-url]: https://zenodo.org/doi/10.5281/zenodo.13336563
23-
24-
[licence-img]: https://img.shields.io/badge/License-MIT-yellow.svg
25-
[licence-url]: https://github.com/control-toolbox/OptimalControl.jl/blob/master/LICENSE
26-
27-
[blue-img]: https://img.shields.io/badge/code%20style-blue-4495d1.svg
28-
[blue-url]: https://github.com/JuliaDiff/BlueStyle
29-
30-
[downloads-month-img]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FOptimalControl&query=total_requests&suffix=%2Fmonth&label=Monthly%20Downloads
31-
[downloads-month-url]: https://juliapkgstats.com/pkg/OptimalControl
32-
33-
[downloads-total-img]: https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FOptimalControl&query=total_requests&&label=Total%20Downloads
34-
[downloads-total-url]: https://juliapkgstats.com/pkg/OptimalControl
35-
36-
The OptimalControl.jl package is the root package of the [control-toolbox ecosystem](https://github.com/control-toolbox).
37-
The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU.
38-
39-
| **Name** | **Badge** |
40-
:-------------------|:------------------|
41-
| Documentation | [![Documentation][doc-stable-img]][doc-stable-url] [![Documentation][doc-dev-img]][doc-dev-url] |
42-
| Code Status | [![Build Status][ci-img]][ci-url] [![Covering Status][co-img]][co-url] [![pkgeval][pkg-eval-img]][pkg-eval-url] [![Code Style: Blue][blue-img]][blue-url] |
43-
| Licence | [![License: MIT][licence-img]][licence-url] |
44-
| Release | [![Release][release-img]][release-url] |
45-
| Citation | [![DOI][citation-img]][citation-url] |
46-
| Downloads | [![Month][downloads-month-img]][downloads-month-url] [![Total][downloads-total-img]][downloads-total-url] |
3+
<!--
4+
For instructions on how to customize this README.template.md and use the centralized workflow,
5+
please see the user guide: https://github.com/orgs/control-toolbox/discussions/67
6+
-->
7+
8+
The OptimalControl.jl package is part of the [control-toolbox ecosystem](https://github.com/control-toolbox).
9+
10+
| **Category** | **Badge** |
11+
|-----------------------|-----------|
12+
| **Documentation** | [![Stable Docs](https://img.shields.io/badge/docs-stable-blue.svg)](https://control-toolbox.org/OptimalControl.jl/stable/) [![Dev Docs](https://img.shields.io/badge/docs-dev-8A2BE2.svg)](https://control-toolbox.org/OptimalControl.jl/dev/) |
13+
| **CI / Build** | [![Build Status](https://github.com/control-toolbox/OptimalControl.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/control-toolbox/OptimalControl.jl/actions/workflows/CI.yml?query=branch%3Amain) |
14+
| **Test Coverage** | [![Coverage](https://codecov.io/gh/control-toolbox/OptimalControl.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/control-toolbox/OptimalControl.jl) |
15+
| **Package Evaluation** | [![PkgEval](https://img.shields.io/badge/Julia-package-purple)](https://juliahub.com/ui/Packages/General/OptimalControl) [![Dependencies](https://juliahub.com/docs/General/OptimalControl/stable/deps.svg)](https://juliahub.com/ui/Packages/General/OptimalControl?t=2) |
16+
| **Release / Version** | [![Release](https://juliahub.com/docs/General/OptimalControl/stable/version.svg)](https://github.com/control-toolbox/OptimalControl.jl/releases) |
17+
| **Citation** | [![DOI](https://zenodo.org/badge/541187171.svg)](https://zenodo.org/doi/10.5281/zenodo.16753152) |
18+
| **License** | [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/control-toolbox/OptimalControl.jl/blob/master/LICENSE) |
19+
| **Code Style / Quality** | [![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/JuliaDiff/BlueStyle) [![Aqua.jl](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl) |
20+
| **Downloads** | [![Monthly](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads/OptimalControl&query=total_requests&suffix=%2Fmonth&label=Monthly%20Downloads)](https://juliapkgstats.com/pkg/OptimalControl) [![Total](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads/OptimalControl&query=total_requests&label=Total%20Downloads)](https://juliapkgstats.com/pkg/OptimalControl) |
21+
22+
## About control-toolbox
23+
24+
The **control-toolbox** ecosystem brings together <a href="https://julialang.org" style="display:inline-flex; align-items:center;">
25+
<img src="https://raw.githubusercontent.com/JuliaLang/julia-logo-graphics/master/images/julia.ico" width="16em" style="margin-right:0.3em;">
26+
Julia
27+
</a> packages for mathematical control and its applications.
28+
29+
- The root package, [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl), provides tools to model and solve optimal control problems defined by ordinary differential equations. It supports both direct and indirect methods, and can run on CPU or GPU.
30+
31+
<p align="right">
32+
<a href="http://control-toolbox.org/OptimalControl.jl">
33+
<img src="https://img.shields.io/badge/Documentation-OptimalControl.jl-blue" alt="Documentation OptimalControl.jl">
34+
</a>
35+
</p>
36+
37+
- Complementing it, [OptimalControlProblems.jl](https://github.com/control-toolbox/OptimalControlProblems.jl) offers a curated collection of benchmark optimal control problems formulated with ODEs in Julia. Each problem is available both in the **OptimalControl** DSL and in **JuMP**, with discretised versions ready to be solved using the solver of your choice. This makes the package particularly useful for benchmarking and comparing different solution strategies.
38+
39+
<p align="right">
40+
<a href="http://control-toolbox.org/OptimalControlProblems.jl">
41+
<img src="https://img.shields.io/badge/Documentation-OptimalControlProblems.jl-blue" alt="Documentation OptimalControlProblems.jl">
42+
</a>
43+
</p>
4744

4845
## Installation
4946

50-
To install OptimalControl.jl please
47+
To install OptimalControl please
5148
<a href="https://docs.julialang.org/en/v1/manual/getting-started/">open Julia's interactive session (known as REPL)</a>
5249
and press <kbd>]</kbd> key in the REPL to use the package mode, then add the package:
5350

@@ -94,9 +91,9 @@ If you use OptimalControl.jl in your work, please cite us:
9491
or in BibTeX format:
9592

9693
```bibtex
97-
@software{Caillau_OptimalControl_jl_a_Julia,
94+
@software{OptimalControl_jl_a_Julia,
9895
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia},
99-
doi = {10.5281/zenodo.13336563},
96+
doi = {10.5281/zenodo.16753152},
10097
license = {["MIT"]},
10198
title = {{OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's}},
10299
url = {https://control-toolbox.org/OptimalControl.jl}
@@ -108,18 +105,12 @@ url = {https://control-toolbox.org/OptimalControl.jl}
108105
[issue-url]: https://github.com/control-toolbox/OptimalControl.jl/issues
109106
[first-good-issue-url]: https://github.com/control-toolbox/OptimalControl.jl/contribute
110107

111-
If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
108+
If you think you found a bug or if you have a feature request / suggestion, feel free to open an [issue][issue-url].
112109
Before opening a pull request, please start an issue or a discussion on the topic.
113110

114-
Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).
115-
If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions).
116-
You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).
111+
Contributions are welcomed, check out [how to contribute to a Github project](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project). If it is your first contribution, you can also check [this first contribution tutorial](https://github.com/firstcontributions/first-contributions). You can find first good issues (if any 🙂) [here][first-good-issue-url]. You may find other packages to contribute to at the [control-toolbox organization](https://github.com/control-toolbox).
117112

118113
If you want to ask a question, feel free to start a discussion [here](https://github.com/orgs/control-toolbox/discussions). This forum is for general discussion about this repository and the [control-toolbox organization](https://github.com/control-toolbox).
119114

120115
>[!NOTE]
121116
> If you want to add an application or a package to the control-toolbox ecosystem, please follow this [set up tutorial](https://github.com/orgs/control-toolbox/discussions/65).
122-
123-
## See also
124-
125-
We acknowledge support of colleagues from [ADNLPModels](https://jso.dev/ADNLPModels.jl/stable) @[Julia Smooth Optimizers](https://jso.dev) and [MadNLP](https://github.com/MadNLP/MadNLP.jl).

README.template.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# OptimalControl.jl
2+
3+
<!--
4+
For instructions on how to customize this README.template.md and use the centralized workflow,
5+
please see the user guide: https://github.com/orgs/control-toolbox/discussions/67
6+
-->
7+
8+
The OptimalControl.jl package is part of the [control-toolbox ecosystem](https://github.com/control-toolbox).
9+
10+
<!-- INCLUDE_BADGES: Documentation, CI, Coverage, PackageEvaluation, Release, Citation, License, CodeStyle, Downloads -->
11+
12+
<!-- INCLUDE_ABOUT -->
13+
14+
<!-- INCLUDE_INSTALL -->
15+
16+
## Basic usage
17+
18+
Let us model and solve a simple optimal control problem, then plot the solution:
19+
20+
```julia
21+
using OptimalControl
22+
using NLPModelsIpopt
23+
using Plots
24+
25+
ocp = @def begin
26+
t [0, 1], time
27+
x R², state
28+
u R, control
29+
x(0) == [-1, 0]
30+
x(1) == [0, 0]
31+
(t) == [x₂(t), u(t)]
32+
0.5( u(t)^2 ) min
33+
end
34+
35+
sol = solve(ocp)
36+
37+
plot(sol)
38+
```
39+
40+
For more details about this problem, please check the basic example presented in the [documentation](https://control-toolbox.org/OptimalControl.jl).
41+
42+
## Citing us
43+
44+
If you use OptimalControl.jl in your work, please cite us:
45+
46+
> Caillau, J.-B., Cots, O., Gergaud, J., Martinon, P., & Sed, S. *OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's* [Computer software]. https://doi.org/10.5281/zenodo.13336563
47+
48+
or in BibTeX format:
49+
50+
```bibtex
51+
@software{OptimalControl_jl_a_Julia,
52+
author = {Caillau, Jean-Baptiste and Cots, Olivier and Gergaud, Joseph and Martinon, Pierre and Sed, Sophia},
53+
doi = {10.5281/zenodo.16753152},
54+
license = {["MIT"]},
55+
title = {{OptimalControl.jl: a Julia package to model and solve optimal control problems with ODE's}},
56+
url = {https://control-toolbox.org/OptimalControl.jl}
57+
}
58+
```
59+
60+
<!-- INCLUDE_CONTRIBUTING -->

docs/Project.toml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,50 @@ CTModels = "34c4fa32-2049-4079-8329-de33c2a22e2d"
77
CTParser = "32681960-a1b1-40db-9bff-a1ca817385d1"
88
CommonSolve = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2"
99
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
10+
DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63"
1011
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
1112
DocumenterInterLinks = "d12716ef-a0f6-4df4-a9f1-a5a34e75c656"
1213
DocumenterMermaid = "a078cd44-4d9c-4618-b545-3ab9d77f9177"
1314
ExaModels = "1037b233-b668-4ce9-9b63-f9f681f55dd2"
15+
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
1416
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
1517
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
1618
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
19+
MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9"
1720
MadNLP = "2621e9c9-9eb4-46b1-8089-e8c72242dfb6"
21+
MadNLPMumps = "3b83494e-c0a4-4895-918b-9157a7a085a1"
1822
NLPModelsIpopt = "f4238b75-b362-5c4c-b852-0801c9a21d71"
1923
NLPModelsKnitro = "bec4dd0d-7755-52d5-9a02-22f0ffc7efcb"
24+
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
2025
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
2126
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
2227
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
2328

2429
[compat]
2530
ADNLPModels = "0.8"
2631
CTBase = "0.16"
27-
CTDirect = "0.16"
32+
CTDirect = "0.17"
2833
CTFlows = "0.8"
2934
CTModels = "0.6"
30-
CTParser = "0.6"
35+
CTParser = "0.7"
3136
CommonSolve = "0.2"
3237
DataFrames = "1"
33-
Documenter = "1.8"
38+
DifferentiationInterface = "0.7"
39+
Documenter = "1"
3440
DocumenterInterLinks = "1"
3541
DocumenterMermaid = "0.2"
3642
ExaModels = "0.9"
37-
JLD2 = "0.5"
38-
JSON3 = "1.14"
43+
ForwardDiff = "0.10, 1"
44+
JLD2 = "0.6"
45+
JSON3 = "1"
3946
LinearAlgebra = "1"
47+
MINPACK = "1"
4048
MadNLP = "0.8"
49+
MadNLPMumps = "0.5"
4150
NLPModelsIpopt = "0.10"
4251
NLPModelsKnitro = "0.9"
52+
NonlinearSolve = "4"
4353
OrdinaryDiffEq = "6"
44-
Plots = "1.40"
54+
Plots = "1"
4555
Suppressor = "0.2"
46-
julia = "1"
56+
julia = "1.10"

0 commit comments

Comments
 (0)