Fetching contributors…
Cannot retrieve contributors at this time
94 lines (77 sloc) 5.35 KB

Derby change history

Racer provides the model and data synchronization for Derby. It's versions are updated along with Derby versions. See change history for Racer as well:


This release includes a great deal of work making components and templating more full featured and performant

  • Instead of macro template tags with triple curly braces, such as {{{items}}}, attributes passed to components are now accessed with an @ sign, such as {{@items}} or {@items}
  • <derby:view view="example"> syntax is now supported for including components with a variable name. This is equivalent to app:example, but the view attribute can vary based on context
  • Components can be passed an inherit attribute to default to the attributes from the parent
  • View#fn syntax has changed to support more arbitrary inputs and outputs. See the docs for more detail
  • Instead of view.dom, it is now app.view, app.dom, app.history, and app.model in the client
  • Add View#componentsByName
  • Bindings don't update during route execution for faster page renders
  • Initial support for bindings within inline SVG elements
  • Components have a 'destroy' event that gets invoked when they are no longer in the DOM
  • Components automatically cleanup listeners added via dom.addListener and model.on within a component
  • App#fn can be used to add controller methods to the app more easily across different files
  • App auto-reloading no longer uses Up, which didn't work well with polling. Reloading now uses cluster, though it is still somewhat buggy
  • App#enter and App#exit added, which get called upon entering or exiting a particular route pattern. Can be used intead of App#ready, which only gets called on the very first page load
  • Add Component#setup for more easy access to the library within a given components code. Useful for adding view functions pertaining to a particular component
  • App#Collection added for more convenient access to scoped models in controller functions and definition of collection specific methods. Demonstrated in the leaderboard code of the Sink example.
  • e.path(), e.get(), and now available for using template-style path names in controller code. Often more flexible and convenient than using
  • Many bug fixes


Mostly just bug fixes

  • Add Component#emitDelayable()
  • Fix options specification to be more consistent
  • Add staticMount option
  • Lots of bug fixes


The API for creating stores and sessions has changed in support of adding auth. Generating a new starter server via derby new is recommended

  • There is no longer an app.createStore() method, and the derby.createStore() method must be used in combination with the store.modelMiddleware(). There is now a req.getModel() method added by the modelMiddleware.
  • Bugs in bracketed path interpolation in templates have been fixed, and the syntax has been updated to work more like javascript property accessors. The syntax is now <h1>{users[_userId].name}</h1>
  • The component type is now passed as a second argument to init and create events instead of being available as a property of the component. Within the same library, the namespaces is now correctly sent as 'lib:'
  • Add log and path view helper functions for debugging
  • Support binding the same event to multiple space-separated function names in x-bind
  • Set the value of component macro attributes to true when no value is specified for more easy HTML boolean style flags
  • Fix a bug where using multiple apps would cause the page to reload continuously
  • Default project now requires Express beta 4, since beta 6 breaks Gzippo
  • Fix lots of other bugs


  • Emit 'render', 'render:{ns}', 'replace', and 'replace:{ns}' events on an app when the page is rendered client-side
  • Call x-bind functions with this set to the app or component object
  • Support prototype-like definition of component methods for more efficient creation of component instances
  • More careful delaying of component creation method calls instead of using setTimeout
  • Fix bug in lookup of templates from an inherited namespace
  • Fix bug when binding to a view helper function inside of an each and later updating array indicies
  • Fix bugs in component path binding lookup


  • Fix bugs with Browserify 1.13.0 and Express 3.0.0 beta 3
  • Fix bugs in components
  • Can pass JSON object literals to component attributes
  • Fix bug with Safari binding to comment markers


  • Set the 'this' context of the ready callback to the app
  • Add model and params as a property of Page objects passed to routes
  • Use chokidar instead of


  • Create a component librarary by default in the generated app
  • Fix Windows bugs. Windows should now work
  • Improvements to file watch reliability in development
  • Fix bugs parsing template files and comments


  • Make apps and components into event emitters
  • Fix bugs with creating components
  • Emit 'create:child', 'create:descendant', 'create:{name}' events for components
  • Support passing function names to x-bind via macro template tags
  • Fix lots of bugs in components


  • Start to implement components that have associated script files
  • Refactoring


  • Fix bug introduced in 0.3.4


  • Bug fixes with macro tags


  • Convert to JS
  • Refactor into separate npm modules for routing (tracks), HTML utilities (html-util), and DOM fixes (dom-shim)