#+TITLE: CLPI Object Model #+AUTHOR: Eric Timmons #+EMAIL: clpm-devel@common-lisp.net This document provides a brief overview of the object model and terminology used within CLPI. * Project Index A project index contains information on both projects and systems. * Project A project consists of some metadata and a set of releases. Project metadata can include: 1. The project's VCS repository, 2. a list of authors, 3. a list of maintainers, 4. and a homepage. * System A system is merely the name of an ASDF system. Systems are provided by releases of projects in the form of "system releases". Additionally, systems can have the following metadata: 1. The primary project where the system is developed. Systems can move between projects over time, but at any given time, a system must have a single "primary" project where it is actively developed. * Release A release of a project is defined by the following metadata: 1. A version string naming the release. Must be unique within the project. 2. a URL where the release can be located. 3. a list of system releases provided by the release * System release A system release is a grounded system. That is, something that is loadable by ASDF. A system release is defined by: 1. The name of the system, 2. a description, 3. a license, 4. a version string, 5. a list of dependencies.