# ModelingToolkit.jl version management

**URL:** <https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771>\
**Category:** New to Julia\
**Tags:** package\
**Created:** [September 6, 2021, 6:53pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771 "2021-09-06T18:53:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akhilesh\_Raj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akhilesh_raj/32/28921_2.png) [@Akhilesh\_Raj](https://discourse.julialang.org/u/Akhilesh_Raj)\
**Post date:** [September 6, 2021, 6:53pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/1 "2021-09-06T18:53:28Z")

</div>

The ModelingToolkit.jl latest releases have some error popping up associated with the ODESystem. I am a novice to Julia coding and I can’t figure out why the error :

> **ArgumentError: The `name` keyword must be provided. Please consider using the `@named` macro**"  
> happens with the latest versions.

This is not the case with the older releases. This function ODESystem is running well with the previous releases eg: v5.25.0 and is serving my purpose. For testing out this error one can run the sample code that pops up in the help ODESystem.

Thank You

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [September 6, 2021, 7:55pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/2 "2021-09-06T19:55:37Z")

</div>

The docs were updated for this. You just need to do `@named sys = ODESystem(eqs)`, i.e. add the macro. This is because naming is now required in order to ensure that namespacing always works.

---

<div class="post-metadata">

**Author:** ![albheim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albheim/32/34660_2.png) [@albheim](https://discourse.julialang.org/u/albheim)\
**Post date:** [September 6, 2021, 7:55pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/3 "2021-09-06T19:55:59Z")

</div>

I’m not an avid ModelingToolkit user but having had a quick look it seems `ODESystems` takes a keyword `name`, that in the newer versions are required (throwing this error if it is not supplied) while in version 5.25.0 it was not required.

So it should probably work if you either supply the keyword name to your system or, as they suggest, use the `@named` macro (which pretty much does the same thing in the background, just uses your variable name as the supplied name if I understood correct).

```julia
using ModelingToolkit
...
eqs = [...]
# First option
mysystem = ODESystem(eqs, name="mysystem")
# Second option
@named mysystem = ODESystem(eqs)

```

Hope that helps!

---

<div class="post-metadata">

**Author:** ![albheim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/albheim/32/34660_2.png) [@albheim](https://discourse.julialang.org/u/albheim)\
**Post date:** [September 6, 2021, 7:58pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/4 "2021-09-06T19:58:41Z")

</div>

Found that running `? ODESystem` I get some sample code that is not runnable with the latest version (minor doc, just thought I would mention since you were here).

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [September 6, 2021, 8:01pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/5 "2021-09-06T20:01:06Z")

</div>

[https://github.com/SciML/ModelingToolkit.jl/pull/1251](https://github.com/SciML/ModelingToolkit.jl/pull/1251)

---

<div class="post-metadata">

**Author:** ![Akhilesh\_Raj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akhilesh_raj/32/28921_2.png) [@Akhilesh\_Raj](https://discourse.julialang.org/u/Akhilesh_Raj)\
**Post date:** [September 6, 2021, 8:05pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/6 "2021-09-06T20:05:53Z")

</div>

Thanks a lot Chris … It worked.

---

<div class="post-metadata">

**Author:** ![Akhilesh\_Raj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/akhilesh_raj/32/28921_2.png) [@Akhilesh\_Raj](https://discourse.julialang.org/u/Akhilesh_Raj)\
**Post date:** [September 6, 2021, 8:06pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/7 "2021-09-06T20:06:45Z")

</div>

@albheim Thanks a lot. That was helpful.

---

<div class="post-metadata">

**Author:** ![natema](https://avatars.discourse-cdn.com/v4/letter/n/ba9def/32.png) [@natema](https://discourse.julialang.org/u/natema)\
**Post date:** [June 17, 2022, 3:05pm UTC](https://discourse.julialang.org/t/modelingtoolkit-jl-version-management/67771/8 "2022-06-17T15:05:12Z")

</div>

I was just curious about what `@named` does and stumbled upon this thread.  
At least for MTK v8.14.0, it seems that the keyword `name` ought to be a symbol, so in your example

```julia
mysystem = ODESystem(eqs, name=:mysystem)

```
