Two weeks ago we released YUI 3.7.0pr1, today we’re releasing the second and final preview release for the current development sprint. YUI 3.7.0pr2 is now available to the developer community for feedback and testing on the Yahoo! CDN (and as a download), and our Staging website has the updated documentation.
To reiterate the importance of testing our preview releases: we rely on your feedback from testing these preview releases in your real world applications, this gives us the final vote of confidence in the stability of the code, beyond what our automated and manual testing provides.
Next week, on September 18, 2012, we will be cutting the next production-ready release of YUI. We are planning for this release to be 3.7.0 GA and be based on what’s currently in our 3.x branch. If there are any critical issues or breaking changes discovered in 3.7.0pr2 that cannot be resolved before Tuesday, our backup plan is to release 3.6.1 from our master branch.
For this release, all modules have been minified using UglifyJS! We have removed all of the old Ant build files from our 3.x branch, and rebuilt all of our modules using the latest version of Shifter, our new build tool, which uses UglifyJS by default.
We’ve rigorously tested the rebuilt modules on 20+ devices using Yeti and have not seen any differences with the minified files using UglifyJS compared to YUI Compressor, besides being ~5% smaller in file size.
If you notice something not working right with the new minified files, please don’t hesitate to file a ticket.
A bunch of lower-level work has went into Graphics and Charts recently, and we are encouraging anyone who’s using the Graphics library, and/or Charts to test 3.7.0pr2 in their applications.
autoSize and preserveAspectRatio attributes.toFront() and toBack() methods for managing a shape’s depth.fill and stroke attributes using the newly created shape-anim submodule. The submodule also allows for animating transforms (formally anim-shape-transform).Gestures (event-flick and event-move) are now supported on IE 10 (Windows 8 tablets and desktops), and they feel pretty snappy too!
We have graduated Michael Matuzak’s gallery-tap module to the YUI core module: event-tap.
The "tap" event normalizes user interactions across touch and mouse or pointer based input devices. This can be used by developers to build input device agnostic components which behave the same in response to either touch or mouse based interaction.
On a touchscreen, "tap" is like "click", only it requires much less finger-down time since it listens to touch events, but reverts to mouse events if touch is not supported.
Thanks to Andres Garza and Christopher Bartz for the original implementation, and Michael for the gallery module!
Ryan Grove’s node-scroll-info plugin is now available. This Y.Node plugin provides convenient events and methods related to scrolling. This could be used, for example, to implement infinite scrolling, or to lazy-load content based on the current scroll position.
Ryan extracted this module from his work on improving the infinite scrolling on SmugMug’s search results page and contributed back to YUI. You can read more about how this module is used in his post: Speeding Up SmugMug’s Search.
Our preview release process has been very helpful to ScrollView’s refactoring, as you’ve helped identify some bugs introduced in 3.7.0pr1.
After reviewing the ScrollView changes in 3.7.0pr1, the following the larger changes introduced in this preview release:
axis attribute. When possible, it’s best to define each of these axis attributes.The work that has gone into improving event performance is just the beginning; you can expect more performance tweaks for events as we move into the next development sprint. The next area we wanted to focus on is to reduce the amount of code we execute for the non-bubbling, non-broadcasting, no-subscribers use case. To stay up to date with the ongoing event performance changes and benchmark numbers, CC yourself on Ticket #2532411.
The two major additions to the App Framework for 3.7.0, server rendered views support and route-specific middleware, appear to be very solid and useful to people. These will be the only major changes to the App Framework for 3.7.0, as the other planned changes will happen in the next development sprint.
For a complete list of changes since 3.6.0, please refer to the change history rollup for this release.
If you find a bug, or want to suggest an enhancement, please don’t hesitate to file a ticket. Thanks, and happy testing!
September 13, 2012 at 2:14 am
Thanks Eric, these blog posts are very handy.
Why the move to UglifyJS – is it just the smaller file size?
Does this mean we’re unlikely to see any further work on YUI Compressor?
September 13, 2012 at 3:41 am
I have yet to receive even the slightest acknowledgement for this very simple issue, which is sooooo easy to fix, but basically disabled Y.log in some (not all that rare) scenarios:
http://yuilibrary.com/projects/yui3/ticket/2532679
All other tickets I ever filed, YUI2 and now YUI3, never remained at status “new” for long.
September 13, 2012 at 7:16 am
@Jackson,
We are planing the EOL for YUI Compressor. Once the plan and timeline are in place, we’ll be sure to post it here on the blog (among other channels).
We wanted to get an UglifyJS build in a preview release so it could get as much exposure as possible. This helps us determine if there are any issues or tweaks we need to make to our UglifyJS settings for Shifter (our new build tool).
Moving to the de-facto compressor and the one which is most active allows us to be a part of the community surrounding that project, instead of trying to maintain yet-another-ancillary YUI project.
Also, we’ve been striving for a pure JavaScript tool chain, UglifyJS gets us closer to that. By not having to spin up JVMs our build process is _much_ faster.
September 13, 2012 at 7:19 am
@Michael,
This bug must have not bubbled up on the person’s priority list to whom it is assigned.
If the fix is very easy to implement, and you know how to fix it, then I’d suggest that you simply implement the fix and issue a Pull Request.
The prioritization in which bugs and features are addressed has to be assigned within the larger context of the project and community. This prioritization might not reflect your personal one, this is why Pull Requests are so helpful to getting things like the fix for Ticket #2532679 into the library.
September 14, 2012 at 12:42 am
@Eric:
The fix is so obvious that I don’t have to write it down – just look at the code. If you test if a variable is undefined, and just ONE line above you SET it to a default value if it IS undefined… oh well, what patch should I write?
Also, I don’t care how long it takes to fix something. We are all programmers here, working in business environments.
What I WOULD like though, probably more so since I always got it the last couple of years (consistently) – THANK YOU by the way – was an almost immediate feedback that someone looked at the ticket at all. Like in ER: you don’t treat the patient immediately, but you have an MD look at them as they come in, and put a sticker on them indicating the urgency.
September 14, 2012 at 12:46 am
Oh, and I LOVE the move away from the Java stack tools, no more ant, no more java based compressor… lots of automated tests now – perfect! Best Javascript library still.
September 14, 2012 at 11:22 am
[...] we released YUI 3.7.0pr2 and encouraged everyone to test it thoroughly, and you did! YUI 3.7.0pr4 is now available and [...]