From 6481002916b86d64cca218c0ff3dc74f34f3f176 Mon Sep 17 00:00:00 2001 From: Oleksandr Balenko Date: Mon, 10 Oct 2016 14:56:50 +0300 Subject: [PATCH] Added new chapter Plugin Versioning System Change-Id: Idd3837dc6e3860fd574f43d1baa981b0416f439a --- .../deliverables/scr_plugin_versioning.png | Bin 0 -> 17467 bytes .../fuel-plugin-sdk-guide/create-plugin.rst | 3 +- .../create-plugin/describe-plugin.rst | 8 ++- .../plugin-versioning-system.rst | 62 ++++++++++++++++++ .../reference/files/metadata.rst | 8 ++- 5 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 _images/deliverables/scr_plugin_versioning.png create mode 100644 plugindocs/fuel-plugin-sdk-guide/create-plugin/plugin-versioning-system.rst diff --git a/_images/deliverables/scr_plugin_versioning.png b/_images/deliverables/scr_plugin_versioning.png new file mode 100644 index 0000000000000000000000000000000000000000..5eabe9cf12a3db03208279044fe12eff59bca70f GIT binary patch literal 17467 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 literal 0 HcmV?d00001 diff --git a/plugindocs/fuel-plugin-sdk-guide/create-plugin.rst b/plugindocs/fuel-plugin-sdk-guide/create-plugin.rst index 59ce63afc..1ea0f5b7f 100644 --- a/plugindocs/fuel-plugin-sdk-guide/create-plugin.rst +++ b/plugindocs/fuel-plugin-sdk-guide/create-plugin.rst @@ -23,4 +23,5 @@ This section includes the following topics: create-plugin/plugin-node-roles.rst create-plugin/modify-ui.rst create-plugin/plugin-repos.rst - create-plugin/add-driverlog.rst \ No newline at end of file + create-plugin/add-driverlog.rst + create-plugin/plugin-versioning-system.rst diff --git a/plugindocs/fuel-plugin-sdk-guide/create-plugin/describe-plugin.rst b/plugindocs/fuel-plugin-sdk-guide/create-plugin/describe-plugin.rst index 6b2261fbc..aced6a4fc 100644 --- a/plugindocs/fuel-plugin-sdk-guide/create-plugin/describe-plugin.rst +++ b/plugindocs/fuel-plugin-sdk-guide/create-plugin/describe-plugin.rst @@ -38,8 +38,7 @@ The Fuel Plugin Builder generates three files: The allowed name characters are lowercase letters, dash ``-``, and underscore ``_``. * ``title`` -- Human-readable plugin name displayed on the Fuel web UI. - * ``version`` -- Plugin version. For guidelines, see - `Semantic Versioning 2.0.0 `_. + * ``version`` -- Plugin version. For guidelines, see :ref:`plugin_versioning_system`. * ``licenses`` -- List the licenses under which your plugin can be distributed. * ``authors`` -- Name of the plugin author. A company or an individual. @@ -97,6 +96,11 @@ The Fuel Plugin Builder generates three files: format version introduces new features and, possibly, deprecates some of the old ones. The Fuel master node must support the specific ``package_version``, otherwise, you cannot install the plugin. + * ``build_version`` -- A version of the build that allows to iterate the + package version without updating the plugin version. You can specify + a value in any format, such as timestamp and so on. If the value is empty, + fpb adds "1" at the end of the plugin's output file name. For example, + ``plugin-x.x-x.x.x-1.rpm``. See the `metadata.yaml example `_. diff --git a/plugindocs/fuel-plugin-sdk-guide/create-plugin/plugin-versioning-system.rst b/plugindocs/fuel-plugin-sdk-guide/create-plugin/plugin-versioning-system.rst new file mode 100644 index 000000000..aa7780b81 --- /dev/null +++ b/plugindocs/fuel-plugin-sdk-guide/create-plugin/plugin-versioning-system.rst @@ -0,0 +1,62 @@ + +.. _plugin_versioning_system: + +Plugin versioning system +------------------------ + +When the developer adds new functionality to a plugin, minor updates +or security fixes should be delivered. +The plugin developer creates a new version of the plugin: this can be +a major version or a minor one: + +* Major -- Changes in API, functionality, major OpenStack release introduced. +* Minor -- Security fixes only. + +The plugin versioning is the following: + ++-----+-----------------------+---------------------+-----------------+---------+---------+ +| | **Plugin file format**|**fuel-plugin value**|**metadata.yaml**|**major**|**minor**| ++-----+-----------------------+---------------------+-----------------+---------+---------+ +| RPM | fuel-plugin-1.0-1.0.0 | 1.0 | 1.0.1 |1.0.0 | 1.0.1 | ++-----+-----------------------+---------------------+-----------------+---------+---------+ + +**Plugin versioning example** + +If a plugin has version ``1.0.1`` in the ``metadat.yaml`` file, the file name +of the plugin must be ``plugin-1.0-1.0.1-N.rpm``. + +If you use the default setting of the Fuel plugin builder, N equals 1. You can +also specify a value from the ``build_version`` variable defined in the +:ref:`metadata.yaml` file that allows to iterate the package version without +updating the plugin version. + +Update procedure +~~~~~~~~~~~~~~~~ + ++-----+----------+-------------------------------------------------------------------------------------+ +| |**Update**|**Limitations** | ++-----+----------+-------------------------------------------------------------------------------------+ +| fp | No | 1.0 | ++-----+----------+-------------------------------------------------------------------------------------+ +| RPM | Yes | Can be updated to minor version only with *fuel plugins --update *| +| | | command. To get a major one, user has to download it from `Fuel Plugins Catalog | +| | | `_ and | +| | | create a new environment from scratch. | ++-----+----------+-------------------------------------------------------------------------------------+ + +Versioning scheme +~~~~~~~~~~~~~~~~~ + +* Versioning does not support the ``.fp`` plugins. The user must download and + install the ``.fp`` plugin from scratch. +* For RPM plugins, the versioning is as follows: + +.. image:: /_images/deliverables/scr_plugin_versioning.png + :width: 70% + :align: center + +.. note:: + Change the versioning scheme for customized packages to + have a clear indicator which package is installed - the official + Mirantis OpenStack or customized ones. Otherwise, check the + Python files to understand which package is actually installed. diff --git a/plugindocs/fuel-plugin-sdk-guide/reference/files/metadata.rst b/plugindocs/fuel-plugin-sdk-guide/reference/files/metadata.rst index 31ff9a78d..88c965dc4 100644 --- a/plugindocs/fuel-plugin-sdk-guide/reference/files/metadata.rst +++ b/plugindocs/fuel-plugin-sdk-guide/reference/files/metadata.rst @@ -47,8 +47,10 @@ Example: deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu - # Version of plugin package + # Version of the plugin package package_version: '4.0.0' + # Version of the plugin build + build_version: '1476097405' Fields: @@ -58,7 +60,7 @@ Fields: underscore ``_``. * ``title`` -- Human-readable plugin name displayed on the Fuel web UI. * ``version`` -- Plugin version. For guidelines, see - `Semantic Versioning 2.0.0 `_. + :ref:`plugin_versioning_system`. * ``fuel_version`` -- The Fuel version that your plugin is compatible with. Currently, the builder verifies ``fuel_version`` only against ``package_version``. The ``package_version`` field must be supported @@ -106,3 +108,5 @@ Fields: +---------------+-------+-------+-------+-------+-------+ | Fuel | 6.0 | 6.1 | 7.0 | 8.0 | 9.0 | +---------------+-------+-------+-------+-------+-------+ + * ``build_version`` -- A version of the build that allows to iterate package + version without updating the plugin version. \ No newline at end of file