title: How to organize development of Rails App and multiple Engines
body: <p>It's hard to formulate the question actually so I just explain the situation.</p>
  
  <p>I'm working on a application that consists of multiple sub applications. The main app just provides an navigation bar and some basic functionality like configuration of users and permissions while the sub applications provide the actual functionalities.</p>
  
  <p>Now this is a Rails 2 application and the sub applications get embedded in frames, it's not really nice design and pretty complex to setup.
  Fortunately we have Engines now and that would be the saner solution for this application.</p>
  
  <p>Until now everything lives in subversion and can be updated at once, shared code uses externals. We would like to move to git while we're at restructuring and refactoring.
  I've been searching the web the past few days about bundler, git submodules and git subtrees but I haven't found a good description how to properly manage a large project which consists of multiple Engines/Gems when you are developing on all of them the same time.</p>
  
  <p>In particular I would like to be able to:</p>
  
  <ul>
  <li>use Bundler to manage dependencies</li>
  <li>do not install our own Gems and Engines into the global gem path but relative to the main app, as an git repository</li>
  <li>have our own Gems and Engines setup as git repository (maybe with Bundler's local path override)</li>
  <li>an easy way to fetch all dependencies (bundle install) which pulls the latest version of our own Gems and Engines, if that's not possible then one command to git pull all own Gems and Engines (maybe an rake task?)</li>
  <li>make it easy for new developers to setup the entire development enviroment fast (git clone the app, bundle install dependencies including all own Gems and Engines, locally)</li>
  <li>deploy with Capistrano, easily</li>
  </ul>
  
  <p>What I already thought about:</p>
  
  <ul>
  <li>including everything into one repository, seems to defeat the purpose of separate Gems/Engines for me, also I think it wouldn't allow us to manage the dependencies of the main app on our Engines via Bundler</li>
  <li>using submodules, I read too many posts about why it's bad, and with our number of developers it's only a matter of time until somebody commits a submodule pointer to a commit that only exists in his local repo</li>
  <li>git subtree utility, seems quite complex to me</li>
  </ul>
  
  <p>So has anybody of you a similar setup and how do you manage it to make updating and committing changes as easy as possible? Where do you put your Engine/Gem code on which the application depends?</p>
  
  <p><strong>TL;DR</strong> How do manage a large rails project which consists of multiple Engines and Gems?</p>