CanJS 4.0 and 5.0 Plans Discussion

Hello everyone! I wanted to update the community on what are I think our plans for CanJS 4.0 and 5.0 should be. We’ll talk more about this at next week’s Contributor meeting.

In short, I think we should release 4.0 as soon as possible, followed by a likely 5.0 release in 3 months that will address some lingering internal API improvements.

4.0 will be very similar to 3.0, with the following exceptions:

  • Be can-queues based, allowing users to more easily understand when event handlers are going to be executed and having tools to trace why handlers run (can-queues.logStack()).
  • can-stache is being changed to so {{key}} only looks in the current scope. Also special keys like {{%index}} are being changed to {{scope.index}}. 3.0 supports all of this and warns if you have incompatible templates. Read here for more information on stache’s changes
  • It will not be released with all the ecosystem plugins working. For example can-kefir or can-validate. These will be released shortly after the 4.0 release.

5.0 should be identical to 4.0, and most apps should be able to upgrade without changes. However, we want to make the following changes to CanJS’s internals:

My hope is that these are the last of the 2.3 “quirky” internal APIs we need to clean up. We’ve already cleaned up the big ones with can-reflect and can-observation-recorder. Our goal is to eliminate can-util.

5.0 will also include can-element and can-query