だいたい563日前に更新最終更新日時: 2008-08-25 (月) 21:22:36 563日前
現在の位置
Memorycraft Wiki > SproutCoreのハック
SproutCore?のハック
SproutCore?のハックは簡単で楽しいです。
もしSproutCore?アプリケーションを書いていて、バグの修正や追加された新機能を見たい場合は、自分でフレームワークのコピーを入手したり、修正、改善をして、次のSproutcoreのパブリックリリースに含まれるようコミュニティにパッチを送ることができます。
- NOTE:
- SproutCore?をハックするためには、gitがインストールされている必要があります。インストールの説明についてはGit - Fast Version Control Systemを訪れてください。
ステップ 1: 開発環境の準備
このチュートリアルはSproutCore?ベースのプロジェクトで作業していて、あなたのプロジェクトに関連してSproutCore?に変更を加えたい場合を想定しています。あなたが特にプロジェクトを持っていない場合、SproutCore?サンプルのテストハーネス*1で作業することができます。SproutCore?のサンプルを入手するには以下のコマンドラインを使います。
$ git clone git://github.com/sproutit/sproutcore-samples ... output will clone the samples $ cd sproutcore-samples $ git submodule init $ git submodule update $ cd frameworks/sproutcore $ git checkout master
ステップ 2: フレームワークコードの取得
RubyGems?からSproutCore?のビルドツールを入手すると、システム全域で有効なSproutCore?版のJavaScript?コードが含まれています。しかしながら変更をするためには、編集可能なフレームワークのコピーを入手しあなたのプロジェクトにインストールする必要があるでしょう。
SproutCore?のサンプルプロジェクトを使用している場合は、その作業はすでに完了しています。自分のプロジェクトで作業している場合(そしてSproutCore?サンプルプロジェクトを使用していない場合)は、以下の通りにします。
$ cd MY-PROJECT (the directory with an sc-config.rb file in it) $ mkdir -p frameworks $ cd frameworks $ git clone git://github.com/sproutit/sproutcore.git sproutcore
これでSproutCore?のJavaScript?コードをあなたのフレームワークディレクトリにチェックアウトすることになります。 それでは、sc-serverインスタンスを再起動してください、するとRubyGems?でインストールされたSproutCore?の代わりに編集可能版SproutCore?が自動的にロードされます。
ステップ 3: 変更!
さあ楽しいところです。バグをなおし、機能をついかしましょう。チェックアウトしたフレームワークの修正はあなたのクライアントのページを更新すると、すぐに反映されます。
大きな変更を行う前に、Gitで新しいローカルブランチに切り替えることをお進めします。この方法で変更を保存ができますが、いつでも変更していない状態のSproutCore?に復帰することが出来ます。ブランチに切り替えるには、変更を行う前に以下の通りにします。
$ cd MY-PROJECT/frameworks/sproutcore $ git checkout -b BRANCH-NAME
ブランチには任意の名前をつけることができます。通常はいくつかの変更を加えた後に名前をつけます。たとえばgit checkout -b add-commodore-64-supportはbranch add-commodore-64-supportというブランチに変更を保存します。
後で、クリーンバージョンのSproutCore?に戻したい場合は、以下のようにします。
$ cd MY-PROJECT/frameworks/sproutcore $ git commit -a -m"Commit message to save any pending changes" $ git checkout master
修正バージョンに戻る準備ができたら、ブランチを再度チェックアウトするだけです。
$ cd MY-PROJECT/frameworks/sproutcore $ git checkout BRANCH-NAME
ステップ 4: テストの実行
一度変更をしたら、http://localhost:4020/sproutcore/-testsで全てのテストを行う必要があります。全てのテストを通過することを確認してください。もし新しい機能を追加したりおかしなバグを修正したら、同様にその修正に対するテストを追加することを検討してください。ほとんどの変更は新規、もしくは既存のテストでカバーされていない場合は受け付けることが出来ません。(ドキュメントをテストするにはドキュメントを再構築し、正しく生成されているか確認してください。)
最低でもFireFox?とSafariでテストの実行を行ってください。同様にIE7も間もなく推奨環境に含まれます。さらに詳しい情報は、ユニットテストをご覧ください。
ステップ 5: パッチの投稿
さぁあなたのコードを共有する準備ができました!変更を投稿するにはパッチを作成し、チケットとして投稿するだけです。Gitでは投稿するパッチの作成はとても簡単です。以下の様に入力するだけです。
$ cd MY-PROJECT/frameworks/sproutcore $ git commit -a -m"Write a message explaining your fix" $ git format-patch HEAD^
これでフレームワークに含めるために送信するチケットに添付するパッチファイルを生成することになります。私たちの“Lighthouse ticket system”: http://sproutit.lighthouseapp.com/projects/11697-sproutcore を訪れ、新規チケットを開いてください。あなたの行った修正を記述し、パッチを添付してください。そのときテストを含めるのを忘れずに!
ステップ 6: SproutCore?の最新アップデートの入手
SproutCore?のメインブランチに変更があると、自分のリポジトリで自動的に反映することができます。以下のとおりにします。
$ cd MY-PROJECT/frameworks/sproutcore $ git checkout master $ git pull
これでGitのヘッドからSproutCore?の最新バージョンの初期コピーを入手したことになります。自分のブランチで変更を加えていて、SproutCore?の更新を自分のブランチにマージしたい場合は、以下のようにします。
$ cd MY-PROJECT/frameworks/sproutcore $ git checkout BRANCH-NAME $ git merge master
ステップ 7: SproutCore?のアップデートとあなたの新発見の名声のお祝い
我々はパッチの投稿をできるだけ早急に処理するよう努めています。あなたがパッチを投稿した後で、他の変更があなたのパッチの適用を阻害していた場合、あなたのSproutCore?コードの変更とパッチの再構築をお願いするかもしれません。こういった方法であなたの修正が機能するよう確認しています。
- 関連ページ
- Memorycraft Wiki561日前
- SproutCore ドキュメント翻訳561日前
- ユニットテスト563日前