Gaia/Build/NewBuildSystem: Difference between revisions

From MozillaWiki
< Gaia‎ | Build
Jump to navigation Jump to search
Line 5: Line 5:
== Milestone 1 ==
== Milestone 1 ==


Initial landing stage. Since our new build system plan is around splitting a build process into two steps including configuring and building. This stage will focus on building up a configuration modules - configure.js and using GUN make as our build back-end to produce final target. New build system should be landed and coexist with current build system.  
Initial landing stage. Since our new build system plan is around splitting a build process into two steps including configuring and building. This stage will focus on building up a configuration modules - configure.js and using GUN make as our build back-end to produce final target. It means configure.js module will run on XPCShell and require existed build modules at this stage in order to keep build system working properly. Finally, the new build system is going to be landed in code-base and coexist with current build system.
 
* '''Deliverable:''' A new Makefile target to trigger configure.js modules should be landed in Gaia code base. The configure.js can generate a Makefile and produce a proper PROFILE_DIR.
* '''Deliverable:''' A new Makefile target to trigger configure.js modules should be landed in Gaia code base. The configure.js can generate a Makefile and produce a proper PROFILE_DIR.
* '''Expected schedule:''' 4 week
* '''Expected schedule:''' 4 week
* '''Breakdowns:'''
* '''Breakdowns:'''
# Create a configure.js modules to generate a proper profile
# Create a configure.js modules to generate a proper profile
# The configure.js should know whether it will re-run itself or all.mk or not in an incremental build
# The configure.js should know whether it will re-run itself / all.mk or not in an incremental build
# The configure.js will generate DAG for Makefile
# The configure.js will generate DAG for Makefile
# The configure.js should read build config to re-generate DAG
# The configure.js should read build config to re-generate DAG

Revision as of 08:03, 13 April 2015

Overview

Plan

Milestone 1

Initial landing stage. Since our new build system plan is around splitting a build process into two steps including configuring and building. This stage will focus on building up a configuration modules - configure.js and using GUN make as our build back-end to produce final target. It means configure.js module will run on XPCShell and require existed build modules at this stage in order to keep build system working properly. Finally, the new build system is going to be landed in code-base and coexist with current build system.

  • Deliverable: A new Makefile target to trigger configure.js modules should be landed in Gaia code base. The configure.js can generate a Makefile and produce a proper PROFILE_DIR.
  • Expected schedule: 4 week
  • Breakdowns:
  1. Create a configure.js modules to generate a proper profile
  2. The configure.js should know whether it will re-run itself / all.mk or not in an incremental build
  3. The configure.js will generate DAG for Makefile
  4. The configure.js should read build config to re-generate DAG
  5. Split webapp-shared into small tasks in order to get rid of .PHONY target and split copy app configuring step & building step

Milestone 2

  • Deliverable: TBD
  • Expected schedule: week
  • Breakdowns:
  1. Enable build integration test Gbn (Gaia Build New) for new build system in treeherder
  2. In order to abandon .PHONY targets, we should split all modules and app/build.js into small tasks. It means split into configuring & building steps.
  3. Introduce DAG tree in configure.js architecture for supporting parallel build
  4. Generate a config.status


Milestone 3

  • Deliverable: TBD
  • Expected schedule: week
  • Breakdowns: