So, I'm trying to explain the benefits of having CanJS broken out into individual repositories.
Currently, upgrading from CanJS 2.3 to 3.0 might look like that.
A big step.
but if you break that step down ... CanJS 3.0 is mostly CanJS 2.3 ... with a lot of bug fixes, a lot of new features ... and some breaking changes (which account for most of the "step size"). Currently, to get all those bug fixes and new features ... you have to take on the breaking changes immediately and all at once.
Going forward, in CanJS 3.0, we'll be able to release packages independently of each other. This means you can keep upgrading to bug fixes and new features (small steps) ... and delay some of the big steps (can-route 4.0.0) until later.