Difference between revisions of "Modularization/Build Wizard"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Merge content of first mockup mail.)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Type: [[Uno/Term/Effort|effort]]  Status: Started
 
 
 
==OOo Build Wizard==
 
==OOo Build Wizard==
The OOo Build Helper allows to configure and build OOo in a graphical way, thus simplifying it and lowering the barrier of entry.
+
The OOo Build Wizard
 +
 
 +
===Goal===
 +
Lower the barrier of entry for OOo hacking and modularization.
 +
 
 +
===Approach===
 +
Graphical access to the OOo source code and support of configuring, building and installing OOo (Custom) versions.
 +
 
 +
===User Workflows===
 +
# Find a remote (OOo) repository, check it out, configure it, build it, install it.
 +
# Find a local repository, re-configure it, ...
 +
 
 +
===Requirements===
 +
====Basic Functionality====
 +
* Find&clone a repository
 +
* Update a repository
 +
* Configure a repository
 +
* Build a repository
 +
* Install OOo
 +
* Delete a repository
 +
 
 +
====3rd Party Software====
 +
=====Libraries=====
 +
* Identify required 3rd party code
 +
* manage 3rd party code (install, de-install)
 +
 
 +
=====Build Tools=====
 +
* Identify and manage build tools
 +
 
 +
=====Advanced Functionality=====
 +
* Push a repository
 +
* Provide a repository
 +
* Clone a local repository
 +
* re-build on change
 +
 
 +
====Constraints====
 +
* Single User Interface - The user should be able to fulfill the whole lifecycle of checkout out the source, configuring it, build it, installing it, uninstalling, deleting the source.
 +
* Automatic dependency satisfaction
 +
 
 +
===GUI Mockup===
 +
[[Image:bw_mockup.jpg]]
 +
 
 +
===Architecture===
 +
* RepoAccessor - This clones, pushes etc. source code.
 +
* Configurer - Configures a local clone.
 +
* Builder - Builds it.
 +
* Prerequisite Manager (PreqManager) - Manages Prerequisite Providers:
 +
** Mercurial
 +
** CygWin
 +
** All external configurable things, such as
 +
*** libxml
 +
*** gnome
 +
*** ...
 +
 
 +
====RepoAccessor====
 +
Give access to the Open Office source code repositories. Allow e.g. "clone" a particular version, which may than be build.
 +
 
 +
====Configurer====
 +
Show available build time configuration switches. Allow to set configuration parameters. Ensure that external dependencies are resolved, if applicable.
 +
 
 +
====Builder====
 +
Start the build, show progress.
  
===Milestone I===
+
====Prerequisites Provider====
The immediate goal is to get the "stack" complete. Currently we understand that we need the following (from top to bottom):
+
Ensure that a particular prerequisite is available.
  
# System Analysis - Analyse the system regarding needed tools, libraries and other prerequisites.
+
On request the prerequisite provider for CygWin offers to download and to install CygWin.
# Feature Selection/Configuration - Select a the feature set, respectively choose from a different implementations (e.g. the libxml may be used from the system or may be self built).
+
# Download / Checkout the Source.
+
# Configure and start the build.
+
  
 +
===Tasks===
 +
Define sub-tasks and schedules for
 +
* Configurer - Owned by Cynthia Qu
 +
* Builder
 +
* RepoAccessor
 +
* CygWin prerequisite provider
 +
* GCC prerequisite provider.
 +
* MS C++ prerequisite provider.
  
 
[[Category:Effort]]
 
[[Category:Effort]]
 
[[Category:Modularization]]
 
[[Category:Modularization]]
 
[[Category:State:Started]]
 
[[Category:State:Started]]

Latest revision as of 06:47, 8 June 2010

OOo Build Wizard

The OOo Build Wizard

Goal

Lower the barrier of entry for OOo hacking and modularization.

Approach

Graphical access to the OOo source code and support of configuring, building and installing OOo (Custom) versions.

User Workflows

  1. Find a remote (OOo) repository, check it out, configure it, build it, install it.
  2. Find a local repository, re-configure it, ...

Requirements

Basic Functionality

  • Find&clone a repository
  • Update a repository
  • Configure a repository
  • Build a repository
  • Install OOo
  • Delete a repository

3rd Party Software

Libraries
  • Identify required 3rd party code
  • manage 3rd party code (install, de-install)
Build Tools
  • Identify and manage build tools
Advanced Functionality
  • Push a repository
  • Provide a repository
  • Clone a local repository
  • re-build on change

Constraints

  • Single User Interface - The user should be able to fulfill the whole lifecycle of checkout out the source, configuring it, build it, installing it, uninstalling, deleting the source.
  • Automatic dependency satisfaction

GUI Mockup

Bw mockup.jpg

Architecture

  • RepoAccessor - This clones, pushes etc. source code.
  • Configurer - Configures a local clone.
  • Builder - Builds it.
  • Prerequisite Manager (PreqManager) - Manages Prerequisite Providers:
    • Mercurial
    • CygWin
    • All external configurable things, such as
      • libxml
      • gnome
      • ...

RepoAccessor

Give access to the Open Office source code repositories. Allow e.g. "clone" a particular version, which may than be build.

Configurer

Show available build time configuration switches. Allow to set configuration parameters. Ensure that external dependencies are resolved, if applicable.

Builder

Start the build, show progress.

Prerequisites Provider

Ensure that a particular prerequisite is available.

On request the prerequisite provider for CygWin offers to download and to install CygWin.

Tasks

Define sub-tasks and schedules for

  • Configurer - Owned by Cynthia Qu
  • Builder
  • RepoAccessor
  • CygWin prerequisite provider
  • GCC prerequisite provider.
  • MS C++ prerequisite provider.
Personal tools