On Tue, Nov 1, 2011 at 1:57 AM, Tomasz Finc <tfinc@wikimedia.org> wrote:
Nice work Brion. If someone on this list wants to pickup the iOS
porting then certainly pick it up as were likely not going to be able
to get to it for another month or so.

Whee!
 
We can certainly help were needed but are in the process of moving
from one vendor to the work to another :(

Nooo!

I'm thinking that we have a good chance to cleanup the various
platforms when we move this from github -> gerrit

How shall we organize this sanely once we get it moved?

There's probably two ways to handle this. No, three!

The first is the single-repo all-in-one option: this will be easiest to set up I think!

Could re-lay out the directories something like:

   www/... <- all the HTML/JS/CSS/images stuff
   www/android/ <- Android-specific web assets (PhoneGap JS)
   www/ios/ <- iOS-specific web assets
   android/ <- build modified to import www/ into assets/www
   android/src/...
   android/libs/...
   android/res/...
   ios/
   ios/Wikipedia-iOS/...
   ios/Wikipedia-iOS.xcodeproj

It might be a good idea to separate out the platform-specific web assets for each platform, so we're not shipping Android-specific phonegap.js on iOS and vice-versa etc. But that might also make it a little harder to work with the source.

Split variant might look like:

  www/ <- all platform-independent assets
  android/ <- build modified to pull in www/ as assets/www and android/js as assets/www/android
  android/js <- android-specific web assets
  android/src/
  android/libs/ ...
  ios/
  ios/js/ <- android-specific web assets
  ios/Wikipedia-iOS/
  ios/Wikipedia-iOS.xcodeproj <- build modified to combine the www and js dirs

The build systems would have to be retooled to combine the base www assets and the platform-specific ones, which shouldn't be impossible in theory, but is a little extra pain.


Third crazy possibility is to do the above, but also split them in separate repos for the web core and the various platform-specific builds. You would then either have to check them both out, or use something like submodules to check out the generic web assets into the main project.

I suspect it's not worth the effort of separate repos for the number of platforms we're going to see; it's not like MediaWiki extensions where every one of them is a standalone unit.

-- brion