Sproutcore: WTF Am I Downloading?
There’s always been a little confusion over what exactly you’re downloading when you get Sproutcore.
Sproutcore Abbot
Abbot is the name for the new-ish build tools that compile Sproutcore 1.0 projects. It includes all of our favourites, like sc-gen, sc-server, and sc-build. When you do
gem install sproutcore
what you’re actually downloading is the Abbot build tools.
Then How Do I Get Sproutcore?
The Sproutcore Javascript framework is included with the Abbot build tools. This is why when sc-init’ing a project, you don’t need to do anything as far as downloading the JS framework to access the Sproutcore code.
How Do I Stay Up To Date With The Framework?
Using the most recent revisions to the JS framework that is on Github is really simple. As I mentioned in the last post, you cd into your project directory and run
mkdir -p frameworks && cd frameworks
git clone git://github.com/sproutit/sproutcore.git
This will get you the most recent master branch in a “frameworks” directory. The Abbot build tools are smart enough to use this copy of the JS framework, rather than the one it downloaded in the gem install process.
It’s worth mentioning now that we’ve made a lot of progress towards Sproutcore 1.1, and the code lives in the Quilmes branch. If you’d like to use that latest awesome sauce, you can create a git tracking branch like so
cd your_project/frameworks/sproutcore
git fetch
git checkout -b quilmes origin/quilmes
Staying Updated with Abbot
Abbot doesn’t move nearly as fast as the JS framework (at least, not anymore) but there are still occasional fixes that get implemented that are nice to have around, instead of waiting for new gem releases. If you’re in your project directory, cd out and checkout abbot by doing:
cd ../
git clone git://github.com/sproutit/sproutcore-abbot.git abbot
This will create a folder “abbot” in the same directory housing your project. Then when you want to run sc-server, say, from inside of your project directory, you just run
../abbot/bin/sc-server
And voila, you’re using the most recent revisions to Abbot.
Hopefully this alleviates some confusion over what exactly Abbot is and how it is different from Sproutcore the JS framework.