Design Goals

None of the efforts described in Existing Work or Intriguing Ideas qualify as "integrated systems for package management and documentation". They demonstrate, however, that significant parts of such a system are feasible. Let's attempt to establish some design goals for such a system:

  • Collaborative

    The system should facilitate collaboration, making it convenient for users, programmers, and projects to share information. Thus, collaborative support tools (e.g., cite, CVS, Faqomatic, Jabber, wiki) are an important part of the system infrastructure.

  • Cooperative

    The system must coexist gracefully with existing systems and procedures. Developers, for instance, cannot be expected to restructure their packages in order to "fit them into the system". Nor should administrators be required to log every change they make to their systems (though some might, if it were easy).

  • Evolutionary

    The system should evolve out of existing information systems (e.g., the "man" pages, the FreeBSD Ports Collection). Existing information should be "brought into the system" through file characterization and (where appropriate) conversion into a common, indexable format.

  • Independent

    The system should not be tied to any particular operating system, computer architecture, programming language, or package format. Independence from particular human languages and cultures is also a worthwhile goal, where practical.

  • Modular

    Just as applications simply "plug into" the defined interfaces of the operating system, package documentation and metadata should plug into an integrated information system. "man" pages currently do this, by and large, but they are essentially unique in this attribute.

  • Orthogonal

    Each part of the system should concern itself only with matters in its own province. For example, a package's information should specify its installation requirements, not the settings for every possible target environment.

  • Scalable

    The system should be very scalable, able to expand gracefully as new packages, OS environments, information, and needs are added.

  • Standardized

    System interfaces should be standardized, taking advantage of existing standards, where appropriate.

  • Voluntary

    The system should not require participation, let alone assistance, from any individual or organization.

-- Main.RichMorin - 16 Jun 2003
Topic revision: r3 - 08 Jun 2003, WikiGuest
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email