[Thali-talk] Yaron's Weekly Update - 10/20/2014

Yaron Goland yarong at microsoft.com
Mon Oct 20 14:41:55 EDT 2014


Last Week:

  *   TL;DR - Wrote a blog article<http://www.goland.org/nodejsonandroid/> on how to build node for Android, wrote another blog article<http://www.goland.org/html6packagedapps/> describing my nefarious plan to have node.js rule the world, digging into node-gyp to get it working on Android and a ton of time around trying to put together a bid to get funding for the node.js plan.
  *   Monday - Got a vanilla node.js app running on Android. Wrote up article<http://www.goland.org/nodejsonandroid/> on how to build node for Android. Tried (and failed) to get node-gyp to pay attention to issues with building for Android. Spent time trying to understand why node-gyp can't build node-leveldb for Android. I discovered the --arch switch for NPM but that doesn't seem to work. I finally forced --arch=arm to sorta work but that destroyed the build because the build behaves differently when Android is involved. The flavor wasn't set  so configs weren't set up right. This led to the --dest-os switch. Then it turns out I shouldn't be building node-leveldb but rather leveldown which is what PouchDB actually uses. I couldn't get this to work so I filed a bug and they are investigating.
  *   Tuesday - I started to tear apart node-gyp to understand what it does. This was following a twisty trail from node.js to python to gyp to make. Finally I at least figured out that if I forced the node code in node-gyp to barf out a "-f android" then it will get the Python scripts to try to build for Android. This eventually failed in Snappy because it didn't have a build target in gyp for Android.
  *   Wednesday - Spent the entire day writing a blog article<http://www.goland.org/html6packagedapps/> explaining my evil plan to take over the world.
  *   Thursday - Lots of mails as a consequence of the article and a meeting about funding. Back to node-gyp I figured out that there is literally no way to force the -f switch from node-gyp (or NPM) right now. So for now I'm forcing it manually from the command line. Put in the build target to make Snappy happy. I kept digging until I ran into an issue with ANDROID_BUILD_TOP environmental variable which is a bit scary since I believe this is used to build all of Android. So I actually think I've fallen into test code not production code. The reason this is so hard is that I don't really understand the whole call chain since it is using different languages and even within a language there isn't tight typing so following calls is hard.
  *   Friday - So I decided to jump into test land for node-gyp to see if that would give me any ideas. So far it just showed me how to build Android. Interesting but not what I really need. So the logic I care about seems to be android.py -> gyp_main.py -> which imports the gyp library and calls gyp/pylib/gyp and then calls gyp.script_main() which calls __init__.py which then calls main() which calls gyp_main(). This last part is where the fun actually starts. Unfortunately I had to do a ton of email today in order to set up the bid for funding the node.js plan discussed in the blog article.

This Week:

  *   My main job this week is collecting the data we need to put in a bid for the node.js plan.
  *   There are some meetings internally I might lose a day or so to.
  *   In between I'll keep working on node-gyp for Android.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist10.pair.net/pipermail/thali-talk/attachments/20141020/4b5ed70f/attachment.html>


More information about the Thali-talk mailing list