Gaia/Build/RefactoringToNodejs: Difference between revisions

 
(24 intermediate revisions by 2 users not shown)
Line 17: Line 17:


= Plan =
= Plan =
After surveying, we decide to split build system into 2 steps: configure step and build step. For detailed information, please visit change proposal in dev-gaia [https://groups.google.com/forum/#!topic/mozilla.dev.gaia/rnvefXH8cng Update on Gaia build changes: A configure step, and Make v.s. Gulp].
Our goal is to build up a robust build configuration being able to adopt any type of build back-end such as Make, Tup, Gulp...etc.


[http://nodejs.org/ Node.js] refactoring plan will be split into 4 milestones .
[http://nodejs.org/ Node.js] refactoring plan will be split into 4 milestones .


* '''Developer:'''
* '''Developer:'''
** Ricky (MoCoTPE) (irc #gaia: rickychien)
** Ricky Chien (MoCoTPE)
** George (MoCoTPE) (irc #gaia: gduan)
** Scott Wu (MoCoTPE)


* '''Total expected schedule:''' 18 - 22 weeks (5 months)
* '''Total expected schedule:''' 18 - 22 weeks (5 months)


== Milestone 1 ==
== Milestone 0 ==


Complete the prototype of Gulp + Make solution which means we should figure out what the build configuration would look like. Therefore, the structure of configuration step would be clear including how to analyzing build config and processing file dependency. Instead of building a robust build configuration, it should produce a Makefile for make. The choice of make is temporary in this stage, it can be adopted by other build back-end in the future.
To ensure our work works on all environments and operating systems, we would like to create test suites on Gaia-Try/Try/b2g-inbound, namely (Gbn/Gbun) tests. They will be keep hidden and red until M1 is complete, as a proof for achieving M1 (explaining below).


* '''Deliverable:''' A prototype of Gulp + Make solution
* '''Deliverable:''' Enable test suites for node build script
* '''Expected schedule:''' 12 weeks
* '''Expected schedule:''' 2 week
* '''Breakdowns:'''
* '''Breakdowns:'''


== Milestone 2 ==
<bugzilla>
{
  "id": "1131469, 1207073",
  "include_fields": "id, summary, priority, assigned_to, status, resolution"
}
</bugzilla>


== Milestone 1 ==


Tackle each of the build system core functions (parallel build, webapp-manifests, preferences, webapp-optimize, webapp-zip... etc). All of them exist certain specific code only use for XPCShell. We would also like to finish the previous attempt to wrap Node.js APIs into high-level Utils in (build/node-utils.js) (See also: {{Bug|955988}}). During this milestone, we will ensure the build system continue to work on both XPCShell setup and Node.js. Once we complete all the work for the milestone, Gbn and Gbun should be green and set visible.


* '''Deliverable:'''  
* '''Deliverable:''' Complete the implementation of node build scripts that coexist with XPCShell and passes Gbn / Gbun tests
* '''Expected schedule:''' ? weeks
* '''Expected schedule:''' 4 - 6 weeks
* '''Breakdowns:'''
* '''Breakdowns:'''


== Milestone 3 ==
<bugzilla>
 
{
  "id": "955988, 1130934, 955989, 1131468, 1131496, 1131497, 1131499, 1131500, 1131501, 1131502, 1131503, 1131504, 1131505, 1131506, 1131510, 1131511, 1131512, 1131513, 1131514, 1131515, 1131516, 1131517, 1131518, 955994, 1131519, 1131521, 1131522, 1131524, 955996, 955997, 955998, 1131526, 955999, 1131527, 1138773, 1131471, 1240678, 1240740, 1242326, 1242327, 1243351",
  "include_fields": "id, summary, priority, assigned_to, status, resolution"
}
</bugzilla>


<!--
== Milestone 2 ==


* '''Deliverable:'''  
* '''Deliverable:''' Turn on node build script by default until stabilization and remove all legacy APIs.
* '''Expected schedule:''' ? weeks
* '''Expected schedule:''' 4 - 6 weeks
* '''Breakdowns:'''
* '''Breakdowns:'''
** Keep tracking build system status and fix any regression.
** Bug ? - Turn on node build script by default
* Backlog:
** Bug ? - Refactor utils-node.js API and remove utils-xpc.js and utils.js
** Bug ? - Refactor all build/*.js to conform to node-style
-->


= Q & A =
= Q & A =
Confirmed users
429

edits