Simon,
This will be a very difficult upgrade path.
Especially if you aren't familiar with the latest CanJS / Steal
APIs. Each version of JMVC 3.* is not compatible with the
previous version. We followed jQuery's convention of having
breaking changes in what sematic versioning would call minor releases.
We no longer do that in
CanJS, FuncUnit, and Steal.
But JMVC 2.0 -> 3.3 is really 5
"breaking" versions: 2.0, 3.0, 3.1, 3.2, 3.3.
Almost every file will need to change. However, your
code will not necessarily have to change structurally, just syntactically.
I would not recommend an immediate complete rewrite;
however, I would recommend trying $.noConflict, and then trying to
slowly migrate all the code to the latest CanJS / Steal / etc.