.. index::
   pair: software versions; design
   single: versions; design

.. _design-version:


Software versions
=================

.. mps:prefix:: design.mps.version
   pair: software versions; design
   single: versions; design


Introduction
------------

:mps:tag:`intro` This is the design of the support in the MPS for
describing and inspecting versions.


Overview
--------

:mps:tag:`overview` There are three different sorts of version under
consideration:

#. versions of the (MPS) library used (linked with);

#. versions of the interface used (header files in C) when compiling
   the client's program; and

#. versions of the documentation used when the client was writing the
   program.

There are issues of programmatic and human access to these versions.

:mps:tag:`overview.split` The design is split accordingly. See
design.mps.version-library for the design of a system for
determining the version of the library one is using. And other
non-existent documents for the others.