clpi-object-model.org 1.37 KB
Newer Older
Eric Timmons's avatar
Eric Timmons committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#+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.