The Eigenbase Project provides a number of services related to collaborative
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
Collaboration activities and services 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 help prevent conflicts in
development and releases 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 at Sourceforge.
- Documentation: Eigenbase maintains a wiki for collaborative
authoring of documentation.
- Request tracking: Eigenbase provides a centralized tracking service
for
- defect reporting and resolution
- feature and enhancement requests
- additions to knowledge bases and FAQ's
- Mailing lists: Sourceforge mailing lists
are used to coordinate teams and 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.
- 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.
- 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.