Gaia/Build/RefactoringToNodejs: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 78: Line 78:
*** Bug ? - Running webapp-shared.js on node.js
*** Bug ? - Running webapp-shared.js on node.js
*** Bug ? - Running webapp-zip.js on node.js
*** Bug ? - Running webapp-zip.js on node.js
*** Bug ? - Set Gbn / Gbnu visible
*** Bug ? - Set Gbn / Gbun visible


== Milestone 2 (Draft) ==
== Milestone 2 (Draft) ==


The M2 goal is to simplify Makefile into merely a compatibility layer for the existing commands, and move all the logic into external JavaScript-based build tools. By doing so it would improve the maintainability and readability of the build system. We tentatively choose [http://gulpjs.com/ Gulp.js] as target currently as it offers [https://github.com/gulpjs/gulp#incremental-builds incremental builds] and stream workflow.
* '''Deliverable:''' Turn on node build script by default until stabilization and remove all legacy APIs.
* '''Expected schedule:''' 5 - 6 weeks


* '''Deliverable:''' Purge complex logic from Makefile and rely on an external JavaScript-based build tools for most of the complexities.
Turn on node build script by default and remove all legacy APIs.
* '''Expected schedule:''' TBD
* '''Breakdowns:''' TBD
 
== Milestone 3 (Draft) ==
 
'''Milestone: Turn on node build script by default and remove all legacy APIs.'''
 
'''Schedule: 2 sprints'''
 
Until stage 1 and stage 2 are stable, we're going to enable node build script by default and remove all legacy APIs.


=== To do list ===
=== To do list ===
Line 101: Line 92:
* Refactor utils-node.js API and remove utils-xpc.js and utils.js
* Refactor utils-node.js API and remove utils-xpc.js and utils.js
* Refactor all build/*.js to conform to node-style
* Refactor all build/*.js to conform to node-style
== Milestone 3 (Draft) ==
The M3 goal is to simplify Makefile into merely a compatibility layer for the existing commands, and move all the logic into external JavaScript-based build tools. By doing so it would improve the maintainability and readability of the build system. We tentatively choose [http://gulpjs.com/ Gulp.js] as target currently as it offers [https://github.com/gulpjs/gulp#incremental-builds incremental builds] and stream workflow.
* '''Deliverable:''' Purge complex logic from Makefile and rely on an external JavaScript-based build tools for most of the complexities.
* '''Expected schedule:''' TBD
* '''Breakdowns:''' TBD




Line 134: Line 133:
It should continue to work if we keep hosting our gaia-node-modules mirror to solve such situation. Replacing the make-shift gaia-node-modules mirror is not the scope of this work, but we are looking forward to find a way to do that.
It should continue to work if we keep hosting our gaia-node-modules mirror to solve such situation. Replacing the make-shift gaia-node-modules mirror is not the scope of this work, but we are looking forward to find a way to do that.


== In M2, buildbot should pre-install proper command tools (node.js, gulp) if we decide to use gulp, right? ==
== Buildbot should pre-install proper command tools (node.js, gulp) if we decide to use gulp, right? ==


Buildbot has already installed node environment except gulp. For gulp, we can pre-install gulp -g in buildbot, or download gulp while first time build then launch it by relative path.
Buildbot has already installed node environment except gulp. For gulp, we can pre-install gulp -g in buildbot, or download gulp while first time build then launch it by relative path.
Line 140: Line 139:
== Would the new build system slower than we have right now? ==
== Would the new build system slower than we have right now? ==


Although we believe that M1 & M3 won't effect obviously on performance, it probably happen on M2. So we should ensure that we take full advantage of multi-core systems to speed up our workflow in Node.js environment (with gulp).
Although we believe that M1 & M2 won't effect obviously on performance, it probably happen on M3. So we should ensure that we take full advantage of multi-core systems to speed up our workflow in Node.js environment (with gulp).
Confirmed users
429

edits

Navigation menu