Announcing Enyo 2.3.0-pre.10

If you’ve been following Enyo, you’ve probably noticed that it has been a while since our last public release. From the outside it may appear that the pace of Enyo development has slowed, but appearances can be deceiving — it has actually been an exceptionally busy, productive year for the Enyo team.

So what have we been up to? For starters, we’ve been doing some exciting UI work to support an upcoming LG product release. We can’t share this work with you just yet, but it will ultimately be open-sourced alongside our other Enyo libraries. We’ve also been pushing forward on the Ares IDE, with our HP team members playing a leading role.

In parallel, we’ve been working hard on Enyo 2.3, the most significant update to Enyo since we released version 2.0 last year. Enyo 2.3 will add some powerful new features to the core framework, centered around integrating and managing application data. Highlights include:

  • Observers, computed properties and bindings
  • Robust data layer support, via enyo.Model, enyo.Collection, enyo.Source and enyo.Store
  • Data-aware repeater and list controls: enyo.DataRepeater, enyo.DataList and enyo.DataGridList
  • The enyo.Application kind, providing a clear entry point for app developers and a place to put data and functionality that require application scope

A handful of adventurous developers have been following our progress on Enyo 2.3 over the last several months, asking questions, giving feedback and making the occasional pull request. In doing so, they’ve been living on the bleeding edge: watching our GitHub repositories directly and following us through some significant twists and turns as we converged on a solution.

Enyo 2.3 isn’t quite done yet, but we’re charging down the home stretch and ready to start sharing our work with a larger audience. Today, we’re excited to announce the availability of Enyo 2.3.0-pre.10.

As that mouthful of a name indicates, Enyo 2.3.0-pre.10 is a pre-release. Because we haven’t done any public pre-releases since Enyo 2.0 was in beta, it’s worth a few words about what that means:

  • In general, pre-releases are subject to API changes. If you start coding against a pre-release, you should be prepared to make some changes as the APIs stabilize. In the specific case of Enyo 2.3.0-pre.10, we don’t anticipate any more major changes, but some minor tweaks are likely before 2.3 goes final.
  • Pre-releases are tested and are intended to be in solid, usable form, so they represent a more stable alternative to pulling directly from the master branches of our GitHub repos. That said, a pre-release is a work in progress and doesn’t get the same QA treatment as our final releases, so you should expect bugs.
  • For each pre-release, we’ll tag our repos and provide instructions for getting the code from GitHub. We’ll also provide release notes and updated docs at release-specific URLs. However, we won’t update the main docs section on the Enyo site, or the downloadable Enyo distribution. Those will continue to point to the last official release (currently Enyo 2.2).

We invite you to take Enyo 2.3.0-pre.10 for a spin and let us know what you think. Here’s the simplest way, using git from the command line:

git clone --recursive https://github.com/enyojs/bootplate-mvc.git
cd bootplate-mvc
git checkout tags/2.3.0-pre.10
git submodule update --init --recursive

After following the steps above, open the debug.html file in your browser, play with the (extremely simple) app, and walk through the source code to see what’s going on.

Here are some handy links:

2.3.0-pre.10 release notes

2.3.0-pre.10 docs

2.3.0-pre.10 API reference

And a few more things you should know:

  • Developer Guide content for the new 2.3 features is still very thin, and we haven’t yet written a new tutorial. We’re working on fleshing the docs out, but in the meantime you’ll find that the new features have fairly comprehensive API docs.
  • You’ll find the term “MVC” sprinkled through the release notes and in the name of the bootplate-mvc repository, but we’ll be weeding this terminology out as we complete the 2.3 docs. Enyo 2.3 has all of the primitives you’d expect from an MVC framework (models, views, and, yes, controllers) and an MVC purist could probably find ways of bending it to his will, but the patterns that we’ll be promoting look less like traditional MVC than we thought they might when we began work on 2.3.
  • In addition to the new features highlighted above, we’ve added support for a new JavaScript internationalization library called iLib. You can use iLib in your Enyo project by including enyo-ilib in your app. iLib is a descendant of the older g11n library, which will be deprecated in favor of iLib going forward.

Thanks for looking, and please drop by the forums to let us know what you think! We’ll follow up with additional pre-releases on a regular basis between now and the official 2.3 release.

P.S. If you’re in San Francisco next week, you can catch developer relations engineer Dave Freeman giving a talk called “Data-driven Applications with Enyo 2.3” at the HTML5 Developer Conference. Dave will be speaking on Wednesday at 11:40 at Moscone Center (room E-131).