SproutCore 0.9.14 - “Github is Fun” Edition
SproutCore 0.9.14 was just released today with lots of bugs fixes and minor feature enhancements contributed by you and one really big new feature from me.
Introducing Easy Install Frameworks
The SproutCore build tools have always had support for frameworks - basically libraries of JavaScript code that you can install and share between your applications. In fact, both SproutCore and Prototype are included as frameworks. When you do a build, you will see their output included with your own project.
Installing and sharing frameworks has never been easy, however, until now. 0.9.14 includes three new utilities: sc-install, sc-update, and sc-remove. These utilities will download and install, update or remove SproutCore frameworks from your project using Github. It’s really easy. For example, let’s say you wanted to get the latest bleeding-edge version of SproutCore installed in your project. Just do the following:
cd MY_PROJECT_NAME
sc-install sproutcore
That’s it. You should now find the latest version of SproutCore installed in a new frameworks directory. If you want to later update it, just do:
sc-update sproutcore
Getting the latest SproutCore is one thing, but what about sharing frameworks of your own? Well, this is easy to thanks to the power of Github. Just open a github account and upload your framework (the contents of the folder you would put into the frameworks directory) as a new project. The project name should begin with “sproutcore-YOUR_FRAMEWORK_NAME”. For example, if you had created a sproutcore-enabled plotkit, you might name it sproutcore-plotkit.
Once you have this project available via git, you are all done! Just tell anyone to go to their project and do:
sc-install YOUR_GITHUB_USERNAME-YOUR_FRAMEWORK_NAME
For example, if your Github username were “johndoe” and your project was called sproutcore-plotkit, then someone might install:
sc-install johndoe-plotkit
This will install the framework in their directory and they can get right to work using it. sc-update will also work to let everyone receive your updates.
To use these tools, you will need to have Git installed. There are installers available for every platform. Easy install frameworks are just one new feature we have planned to deliver with our friends at Github, so getting this tool on your computer is a good idea for the future as well.
Updated Documentation
Also notable for this release, Onitunes has done some great work updating our JSDoc utility to run the latest version (version 2.0), which also improves the docs quite a bit. Check out the docs on your machine or head on over to the hosted version to check them out.
Thanks
Finally, a special thank you to everyone who has contributed to this release. This version has fixes and small feature enhancements submitted by more people than ever before. Special congratulations to mguymon, YoNoSoyTu, Maurits Lamers, Gareth, Juan, and gskluzacek who had their first fixes applied. Also a thank you to pbergtr, jdickens, chuck, Erich, and Andy who also have more features and fixes.
Full details of this release are below.
Release Details
Build Tools
- The long form of sc-build -e is not –environment. It was misspelled. (Thanks zoowar)
- Fixed README for new apps to use the correct sc-build command. (Thanks Spencer Ho!)
- Added sc-install, sc-update, and sc-remove. These utilities work with github to automatically install and update plugin JavaScript libraries.
- [FIX] Removed warning about NO_BODY_METHOD
- Upgraded to a newer version of JSDoc that can provide a much more accurate description of the inline documentation for SproutCore.
- sc_super() now works automatically and does not require you to pass this.
- sc-server now autodetects Merb.root. This means that you can start sc-server from any directory inside of your project and it will do the right thing.
Framework
- Fixed bug in SC.SourceListView that could incorrectly hide groups. Closes #57. (Thanks mguymon)
- Fixed bug in SC.ObjectController that would sometimes not commit all pending changes because the model object would clear the changes hash. Also a test for this was added. Closes #66. (Thanks YoNoSoyTu!)
- default index.html now has text/javascript added to script tags. Closes #71
- server.js now handles namespaced prefixes. Closes #74
- label_view now defaults to the span tag. Closes #75. (Thanks Erich!)
- Added support for posting data in both URL-encoded and JSON formats via SC.server. This makes for a much cleaner round-trip. To use this, set the postFormat: property to SC.JSON_FORMAT in SC.server. Closes #49. (Thanks Mauris Lamers!)
- The newRecord property is now set to false once a record has been successfully sent back to the server. A new internal property tracks when you are waiting on a record to be created on the server and refuses to submit it a second time. Closes #81 (Thanks Gareth!)
- All internal calls for arguments.callee.base.apply() have now been switched to sc_super(). This means you MUST use version 0.9.13 or later of the build tools to work with the javascript.
- Fixed a memory leak in IE that was caused by a self-reference to document. (Thanks Juan)
- Improved documentation for a variety of classes. (Thanks gskluzacek)
- SC.Server can now handled nested Server prefixes in case you have multi-level namespaces.

Discussion Area - Leave a Comment