In progress

Zero Based Tasks

Command Line

The command line needs a bootstrap step to resolve prior to being able to run so it picks up dependencies from the repository. Currently, ivy-cli.xml declares a single dependency on zero.tools.

One idea to support zero based tasks is have ivy-cli.xml declare dependencies on zero.tools and zero.core. This would mean the first time the cli is run, zero.tools and zero.core would be downloaded to the repository. The cli classpath would include zero.tools and zero.core.

Tasks and configuration would be packaged in zero.core and have access to global context, loggers, etc.

The ivy-cli.xml will declare the following dependencies

  1. zero.tools
  2. zero.core

Issues

The is no way to build zero.core without a command line. No command line without zero.core.

options?

  1. Leave the current tasks and scipts (renamed) so build works as it does today. This will give us some time to get the new zero tasks written until we figure out how to move the core essentials down into tools.
  2. ant build zero.tools, ant test tools, ant build zero.core, ant test zero.core, zero build rest of CORE ( problem is we still need a split up zero.core )

Zero.Core.Kernal

  1. Groovy ( from core )
  2. event handler registration ( explicit and implicit) ( from core )
  3. invoke handlers for cli tasks
  4. Ivy for resolve and publish
  5. current zero.tools
  6. scripts that bootstrap resolving cli and invoking tasks

Options

  1. Zero.tools becomes zero.core.kernal. Merge tools and kernal
    1. scripts
    2. cliMain
    3. ivy configuration
    4. repository files ( local.properties and remote.properties)

Note: base component is called zero.tools for now, it may be zero.core.kernel or something else when done.

  1. build kernal ( build, package, publish )
  2. install the zero cli so tasks can be used ( set up .zeroresolved )
  3. test tools ( test, copy to repository )
  4. build core ( build, test, package, publish )

Using ant in the building tools

  1. Only one target, target=zerotask
  2. declare macrodef for each task, call java handler directly

Building everything else, use cli

-- bonanno - 05 Feb 2008

r2 - 06 Feb 2008 - 12:29:06 - bonanno
Syndicate this site RSS ATOM
Copyright 2007 © IBM Corporation | Privacy | Terms of Use | About this site