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 step.
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.  
 
* '''Deliverable:''' A new Makefile target to trigger configure.js modules should be check 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:'''
Line 17: Line 17:


== Milestone 2 ==
== Milestone 2 ==
* '''Deliverable:''' TBD
* '''Expected schedule:''' week
* '''Breakdowns:'''
# Enable build integration test Gbn (Gaia Build New) for new build system in treeherder
# 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.
# Introduce DAG tree in configure.js architecture for supporting parallel build
# Generate a config.status




== Milestone 3 ==


* '''Deliverable:'''
* '''Deliverable:''' TBD
* '''Expected schedule:''' 4 week
* '''Expected schedule:''' week
* '''Breakdowns:'''
* '''Breakdowns:'''
# Introduce DAG tree to support multi-process
#
# Split all modules into small tasks && app/build.js ( split into configuring & building steps ) (Get rid of .PHONY)
# Generate a config.status ( build config? ) ( input DAG )

Revision as of 07:54, 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. New build system should be landed 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 or 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: