The Eigenbase Project

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

SourceForge Logo