SDNP: Single design, no project concept

The software is able to load and edit only one design at a time. The design is always handled as a stand-alone file, the software doesn't care about what other designs are in a project. There is no project level configuration at all, there is no design file listing for the project.

Example: gEDA/pcb

SDPC: Single design, project for configuration

Although the software is capable of editing only one design file at a time, it is aware of project configuration. The project config file name is guessed from the design file name. The project config file may be optional, so the same software works in SDNP mode as well, automatically. Can not load all files of a project by the project file.

Example: pcb-rnd at the moment (3.0.x), using project.lht from the same directory the board file is loaded from.

MDPC: Multiple design, project for configuration

The software can present and edit multiple design files and can automatically load project configuration from the corresponding project files. Can not load all files of a project by the project file. Loading multiple sheets from different projects may confuse the software. Can not load all files of a project by the project file.

Examples: gEDA/gschem (gafrc being the project configuration); sch-rnd (from 0.8.2) with project.lht.

MDP1: Multiple design, project file limited to one software

Compared to MDPC the major difference is that the project file holds not only project configuration but also the list of design files and the software can load a whole project (loading all design files). However the project file format is designed for one specific software and can not be used to represent design file names or configuration of another software.

For example if gafrc was extended to contain sheet file names, and gschem could directly load a gafrc (or a directory having a gafrc) by loading all sheets named in the project's gafrc, that would be an MDP1: gafrc is a scheme script very much limited to use within gschem. Another software, like gEDA/pcb or pcb-rnd or gerbv or a spice simulator wouldn't be able to store its configuration or design (e.g. board and gerber) file names in it.

Thus an MDP1 project file can describe all aspects of a project for one editor; if the project has files used by multiple editors (a common case is schematics and board files), multiple project files are required.

MDPP: Multiple design, portable project file

Compared to MDP1, a portable project file is shared by multiple software: the schematics editor, the board editor, the gerber viewer, simulators all store all their project-specific configuration and file listing in the same file. Generic project managers can be written to inspect the project file and reconfigure. Inter-software interfaces, like pcb-rnd's "import schematics" plugin can automatically pick up file names of other software from the project file, if needed.

The software can load the project (all designs of the project as listed in the project file). Advanced software can load multiple designs of multiple projects and/or multiple project files. This means the software has a concept of projects and design files within projects as a tree of 2 levels (projects and design files).

Example: sch-rnd will have this from 0.9.0 and pcb-rnd will follow it in a later release. They will share the same project.lht.