Here is a draft of what we are looking for for the comprehensive requirements document we need to develop. To help portage-ng development, please expand on this document and post your additions/improvements to this list. This doc will probably end up being 10-15 pages long... portage-ng This is the specification for portage-ng, a package manager/"ports" system. portage-ng is intended to be able to perform the following tasks on an individual host system: downloading sources or pre-compiled packages from the Internet, configuration, compilation and installation of sources according to user requirements, general package management. In addition, portage-ng should be able to be easily extended to perform tasks that would be expected of it in an enterprise, cluster, or other kind of environment, which may include management of groups of systems over the network. architecture requirements: 1) facilitate parallel, community development 2) allow for easy extensibility and new feature additions over time 3) provide a coherent model for (meta)data representation and storage 4) will run on a wide variety of systems 5) will run efficiently even on modest hardware 6) in as much as possible, encourage and/or enforce the development of high-quality, versatile and maintainable code 7) encourage/enforce separation of package metadata from specific build steps and algorithms 8) allow for delivery of feature set that meets or exceeds expectations of existing user community design goals: 1) reflect the sensibilities of "ports" system designs 2) provide an easy-to-understand developer API 3) provide an open, transparent architecture that reflects UNIX design philosophy 4) In every way possible, program should be malleable to allow conformation to user needs and expectations, both interface as well as the specific actions performed by the program.