Every repository with this icon (
Every repository with this icon (
Releasing a SproutCore Gem
NOTE: The instructions on this page are useful only to developers who have been given permission to release gems on behalf of the SproutCore project.
Before you can do a release, you will need to get your machine configured.
After verifying that you are a SproutCore Project Admin at rubyforge, install the hoe rubygem:
sudo gem install hoe --include-dependencies
Then do the required rubyforge setup:
rubyforge setup
rubyforge config
rubyforge login # cache a cookie for further operations
Then install the sproutcore rubygem:
sudo gem install merb-core -v 0.9.4
sudo gem install sproutcore
Now clone sproutcore-buildtools and sproutcore-samples:
cd /path/to/work-directory
git clone git@github.com:sproutit/sproutcore-buildtools.git sproutcore-buildtools
git clone git@github.com:sproutit/sproutcore-samples.git sproutcore-samples
Next, obtain the submodules of sproutcore-buildtools and configure them to use the correct origin repository and the master branch:
cd /path/to/work-directory/sproutcore-buildtools
git submodule init
git submodule update
cd frameworks/sproutcore
git remote add origin git@github.com:sproutit/sproutcore.git
git checkout master
cd ../prototype
git remote add origin git@github.com:sproutit/sproutcore-prototype.git
git checkout master
cd ../../clients/sc_docs
git remote add origin git@github.com:sproutit/sproutcore-doctool.git
git checkout master
cd ../sc_test_runner
git remote add origin git@github.com:sproutit/sproutcore-testrunner.git
git checkout master
Finally, remove the (empty) prototype and sproutcore frameworks in sproutcore-samples:
cd /path/to/work-directory/sproutcore-samples
rm -R frameworks/prototype frameworks/sproutcore
Preparing for the Release
- Merge any required changes into the sproutcore-buildtools or sproutcore projects, or any of the other projects (sc_docs, sc_test_runner, prototype, and sproutcore-samples).
- Make sure you update the
HISTORYandHistory.txtfiles in those projects to list any changes for the new release. - Make sure that all your code is committed in git, including any added files.
- Make sure you’ve done a quick test of any affected areas.
- Run all unit tests on all supported browsers to make sure they pass.
Doing the Release
Update the ruby source code to the latest version number:
cd /path/to/work-directory/sproutcore-buildtools
mate lib/sproutcore/version.rb # edit file in TextMate
Then, create the gem and deploy it locally (only):
cd /path/to/work-directory/sproutcore-buildtools
rake manifest:refresh
git commit -a -m 'Update support files for release 0.9.X'
git push
rake local_deploy
You should now have the new gem deployed locally on your machine. Run the samples:
cd /path/to/work-directory/sproutcore-samples
sc-server
Do a quick check of the functionality for all of the demo apps to make sure none of your changes introduced any regressions. Depending on what code was changed, you may also need to try generating new apps, etc.
Once you have completed a quicklook, you can proceed with the actual deployment:
cd /path/to/work-directory/sproutcore-buildtools
rake release VERSION=0.9.X
You will need to enter the RubyForge password several times. Finally, you will need to tag sproutcore:
cd /path/to/work-directory/sproutcore-buildtools
git tag REL-0.9.X
git push --tags
cd frameworks/sproutcore
git tag REL-0.9.X
git push --tags
Announcing the Release
At this point you should have SproutCore deployed. You now need to notify everyone. The best thing is to do the following:
- Prepare a blog entry that highlights the major points and includes the full list of changes for both the framework and the build tools (copied directly from the
HISTORYfiles.) Post to the sproutcore.com blog. - Post an email to the sproutcore mailing list notifying everyone of the release, with a link to the blog entry. Begin the subject line with
[ANN]. - Update the topic on the IRC channel (you must be a channel admin to do so).







