Development
Eigenbase development is currently spread out over a number of
sub-projects:
- Farrago is an
extensible data management system based on a hybrid Java/C++
architecture.
- Fennel is a C++
data storage and processing library. Fennel can be used either as a
standalone component library or as the C++ portion of the Farrago
framework.
- LucidDB is a
DBMS optimized for business intelligence. It is built on top of both
Farrago and Fennel.
- Saffron is
an extension to the Java language to incorporate SQL-like relational
expressions.
- ResGen is a
type-safe internationalization utility for Java and C++ programs.
- Blackhawk is a
general-purpose test framework which includes parameterization,
dependencies, metadata, and process control.
These projects started out as independent efforts but over time have
grown into a more unified whole. If you'd like to get involved with
any of them, please use the links above to contact the sub-project
owner. See also the
Eigenbase Development Process.
The Eigenbase Project provides a number of services related to
research, design, development, testing, distribution, and feedback.
By so doing, the project leaders can
-
foster consistency, innovation, and quality across all aspects of the
project
-
encourage creativity, sharing, and constructive conversations among
contributors and users
-
coordinate timely releases, patches, and conflict resolutions
The services provided are enumerated below.
- Source-control: Eigenbase maintains a central
source-control repository into which participants submit their
contributions. Access to this repository is controlled based on
relationships among contributors and components. Facilities are
provided for contributor-defined branching; these prevent concurrent
development and release conflicts while ensuring that all
contributions are eventually merged into a common codeline.
- Release management: Eigenbase plans, manages, packages,
and distributes regular releases of its software to public servers.
- Verification: Eigenbase provides tools and services to
allow participants and consumers to verify that contributed code meets
advertised quality levels in areas such as reliability and
performance. The goal is to cover a wide array of verification needs
such as
- Automated continuous integration to verify that all checked-in
code builds and passes tests.
- Unit test frameworks for automated verification of individual components.
- Feature test frameworks for automated verification of specific features.
- System test frameworks for automated verification of system-level
qualities such as reliability and availability.
- Application test frameworks for automated verification with diverse
open-source applications.
- Performance test implementations for various standard benchmarks
and platforms.
- Compliance testing for industry and government standards.
- Request tracking: Eigenbase provides
a centralized tracking service for
- defect reporting and resolution
- feature and enhancement requests
- additions to knowledge bases and FAQ's
- Standards enforcement: Users are best served
by software that complies with well-defined standards formalized by
independent bodies, so Eigenbase fosters and enforces standards
compliance wherever relevant. This may eventually involve
participation by Eigenbase representatives in the organizations that
define standards. However, standards enforcement is not meant to
discourage extensions or efforts to create software "personalities"
matching specific proprietary interfaces or variants; these are
legitimate contributions when clearly flagged as non-standard
capabilities.
- Architecture definition and evolution: For large-scale
projects, high-quality software components and systems can only be
created and maintained successfully in the context of a
correspondingly high-quality architecture. When multiple teams are
developing a shared project concurrently but with different goals, the
only known way to preserve architectural integrity is to provide a
centralized group with the authority to define and evolve the common
interfaces used to cohere all of the parts. This process must
harmonize a number of competing requirements such as extensibility,
maintainability, backwards-compatibility, and product release
schedules. The Eigenbase approach is to allow each participating team
to select representatives to serve in the common architecture group.
Besides representing the interests of individual teams, these
architects are also expected to use their expertise to advance the
high-level project goals.
- Team coordination: Eigenbase provides forums for all
participants to discuss features, problems, innovations, goals, etc.
These forums can also be used to arrange direct meetings for activities
such as knowledge transfer, scheduling, collaboration, and conflict
resolution.
Copyright (C) 2004-2007 The Eigenbase Project. All rights reserved. Contact: info@eigenbase.org
|