Gaia/Build/RefactoringToNodejs: Difference between revisions

no edit summary
No edit summary
Line 1: Line 1:
= Goal =
= Goal =


Build system has run on XULRunner since a long time ago, also requiring Make and shell script to shuffle, optimize or compress files around. However, all features are able to be done in NodeJs so that everyone can benefit from the good part of NodeJs.
Build system has run on XULRunner since a long time ago, also requiring Make and shell script to shuffle, optimize or compress files around. However, all features are able to be done by [http://nodejs.org/ Node.js] so that everyone can benefit from the good part of [http://nodejs.org/ Node.js]. Our plan is rewrite/refactoring existed XULRunner-style JavaScript into [http://nodejs.org/ Node.js].


= Profit from Nodejs =
= Profit from [http://nodejs.org/ Node.js] =


* Web developers are familiar with JavaScript, also NodeJs is the most popular and acceptable for those who are familiar with client side JavaScript. It could attract more contributors to involve and improve Firefox OS.
* Web developers are familiar with JavaScript, also [http://nodejs.org/ Node.js] is the most popular and acceptable for those who are familiar with client side JavaScript. It could attract more contributors to involve and improve Firefox OS.
* NPM is a well-known build-in package manager of node, such tool is commonly used for web developers for years. It will make your life easier that developers can install third-party libraries and prevent us to reinvent the wheel if there is no such library provided by XULRunner.
* NPM is a well-known build-in package manager of node, such tool is commonly used for web developers for years. It will make your life easier that developers can install third-party libraries and prevent us to reinvent the wheel if there is no such library provided by XULRunner.
* It would be great if we build up a pure JS system. To re-implement Makefile and shell script is a hard work, NPM provides a bunch of packages that let us build our pure JS system more quickly, flexible and maintainable.   
* It would be great if we build up a pure JS system. To re-implement Makefile and shell script is a hard work, NPM provides a bunch of packages that let us build our pure JS system more quickly, flexible and maintainable.   
Line 11: Line 11:
= Plan =
= Plan =


NodeJS refactoring plan will split into 3 stages.
[http://nodejs.org/ Node.js] refactoring plan will split into 3 stages.


== Stage 1 ==
== Stage 1 ==


Focus on completing NodeJs core functionality (parallel build, webapp-manifests, preferences, webapp-optimize, webapp-zip... etc). All of them exist certain specific code only use for XPCShell. Unfinished NodeJs build script (build/node-utils.js) is already located in Gaia for a while (See also: {{Bug|955988}}. We should keep working on it and keep both Node and XPCShell version in build system. After completing, we will switch Makefile target to invoke run-node-command to enable Node build script.
Focus on completing [http://nodejs.org/ Node.js] core functionality (parallel build, webapp-manifests, preferences, webapp-optimize, webapp-zip... etc). All of them exist certain specific code only use for XPCShell. Unfinished [http://nodejs.org/ Node.js] build script (build/node-utils.js) is already located in Gaia for a while (See also: {{Bug|955988}}. We should keep working on it and keep both Node and XPCShell version in build system. After completing, we will switch Makefile target to invoke run-node-command to enable Node build script.


== Stage 2 ==
== Stage 2 ==


Survey appropriate NPM packages (Grunt, Gulp...etc) and build up pure JS build system.
Survey appropriate NPM packages and build up pure JS build system.


== Stage 3 ==
== Stage 3 ==
Confirmed users
429

edits