Is Convex.jl still working?

I would like to run an example for a class like the tutorials on Convex.jl, but these no longer work (they fail at the ‘solve’ step). I could use JUMP but I just want to do simple quadratic programming and the syntax of Convex.jl (at least the way it used to work) is nice and simple.

Perhaps there have been further syntax changes? First I tried

solve!(problem ,SCSSolver(verbose=true))

but then read that that had been superceded by

solve!(problem , () -> SCS.Optimizer(verbose=true))

but that doesn’t work, either.

Thanks for any help.

The error message for the latter is

MethodError: no method matching solve!(::Convex.Problem, ::Main.workspace4.var"#5#6")

Closest candidates are:

solve!(::Convex.Problem; warmstart, check_vexity, verbose) at /Users/d***/.julia/packages/Convex/MaqPQ/src/solution.jl:16

solve!(::Convex.Problem, !Matched::MathProgBase.SolverInterface.AbstractMathProgSolver; kwargs...) at /Users/d***/.julia/packages/Convex/MaqPQ/src/solution.jl:8

top-level scope@Local: 7
top-level scope@Local: 1

That looks like an old version of Convex.jl. What version do you have? Try

using Pkg
Pkg.add(name="Convex", version="0.14.5")

to get the latest (or hopefully get an informative error message about what packages are holding it back, if you can’t get the latest).

Convex definitely should still be working and every release is tested with a large test suite of problems by CI.

3 Likes

Thanks - I’ll check that
That was it! Thanks!

PS There are some tutorials on Convex.jl that are still using the old syntax.

1 Like

Oh? Can you link them? (All the examples in the sidebar in the docs are tested, so they should be working, unless something went wrong with the tests…)

Thanks. I teach a Masters’ Finance class, and I was going to ask them to run:
https://jump.dev/Convex.jl/v0.12/examples/portfolio_optimization/portfolio_optimization2/

I got this via search on google, and it looked like the official documentation, but looking now I see that the link address may not be the ‘official’ repo…

I would say that if it were updated, it would be an extremely useful example.

I guess I (another MSc finance teacher…) updated those portfolio examples some time ago and they look like here:
https://jump.dev/Convex.jl/stable/examples/portfolio_optimization/portfolio_optimization2/

2 Likes

Awesome! Thanks!

btw, here are some more finance applications of Convex (from my own teaching repository):

(FinancialTheoryMSc/Ch03b_MV_NoShortSales.ipynb at master · PaulSoderlind/FinancialTheoryMSc · GitHub)

(FinancialTheoryMSc/Ch08_PerfEval.ipynb at master · PaulSoderlind/FinancialTheoryMSc · GitHub)

2 Likes

Cool. Much obliged for that! Those will be really helpful [Got a class of 200 starting in 2 weeks!].
Is there any Teaching Materials repository for Julia? [I have a few things myself.]

Ah, that is the official docs, but just an old version. You can see in the bottom left-corner that it says version v0.12.7; if you click on that, you can choose “stable” which means the latest released version of Convex.

Search engines giving old versions of docs is a common issue; we don’t really want to delete them because someone might be still using v0.12.7 and want to have the right docs for that version. But I filed Add banner to old versions of Convex.jl docs · Issue #460 · jump-dev/Convex.jl · GitHub to use some new Documenter features to add a warning banner in this case (maybe I or another open source contributor will get a chance to implement that, to avoid this issue).

1 Like

That would be a very good idea, as this has happened to me dozens of times!
[sometimes the package has been discontinued - which could also be flagged]

Is there any Teaching Materials repository for Julia?

My own attempts are at (GitHub - PaulSoderlind/JuliaTutorial: Julia Tutorial for Finance and Econometrics Students). Maybe it can be of some use.

1 Like

:slight_smile: