summaryrefslogtreecommitdiff
path: root/doc/source/format_project.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/format_project.rst')
-rw-r--r--doc/source/format_project.rst41
1 files changed, 24 insertions, 17 deletions
diff --git a/doc/source/format_project.rst b/doc/source/format_project.rst
index 8cf2c0026..65ca6c14d 100644
--- a/doc/source/format_project.rst
+++ b/doc/source/format_project.rst
@@ -42,34 +42,41 @@ of your project.
underscores, and may not start with a leading digit.
-.. _project_format_version:
+.. _project_min_version:
-Format version
-~~~~~~~~~~~~~~
+Minimum version
+~~~~~~~~~~~~~~~
The BuildStream format is guaranteed to be backwards compatible
-with any earlier releases. The project's minimum required format
-version of BuildStream can be specified in ``project.conf`` with
-the ``format-version`` field, e.g.:
+with any earlier minor point releases, which is to say that
+BuildStream 1.4 can read projects written for BuildStream 1.0,
+and that BuildStream 2.2 can read projects written for BuildStream 2.0.
+
+Projects are required to specify the minimum version of BuildStream
+which it requires, this allows project authors to convey a useful
+error message to their users and peers, in the case that a user needs
+to get a newer version of BuildStream in order to work with a given
+project.
+
+The project's minimum required BuildStream version must be specified
+in ``project.conf`` using the ``min-version`` field, e.g.:
.. code:: yaml
- # The minimum base BuildStream format
- format-version: 18
+ # This project uses features which were added in 2.2
+ min-version: 2.2
+
+It is recommended that when using new features, always consult this
+documentation and observe which BuildStream version a feature you are
+using was added in. If a feature in the BuildStream YAML format is
+not documented with a specific *Since* version, you can assume that
+it has been there from the beginning.
-BuildStream will increment its core YAML format version at least once
-in any given minor point release where the format has been extended
-to support a new feature.
.. note::
External :mod:`Element <buildstream.element>` and :mod:`Source <buildstream.source>`
plugins also implement their own YAML configuration fragments and as
- such are revisioned separately from the core format. See :ref:`project_plugins`
- for details on specifying a minimum version of a specific plugin.
-
- Core :mod:`Elements <buildstream.element>` and :mod:`Sources <buildstream.source>`
- which are maintained and distributed as a part of BuildStream are revisioned
- under the same global ``format-version`` described here.
+ such are revisioned separately from the core format.
.. _project_element_path: