Hello community, here is the log from the commit of package python-sphinx-feature-classification for openSUSE:Factory checked in at 2019-04-28 20:14:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-sphinx-feature-classification (Old) and /work/SRC/openSUSE:Factory/.python-sphinx-feature-classification.new.5536 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-sphinx-feature-classification" Sun Apr 28 20:14:22 2019 rev:3 rq:698575 version:0.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-sphinx-feature-classification/python-sphinx-feature-classification.changes 2018-12-24 11:46:15.325193704 +0100 +++ /work/SRC/openSUSE:Factory/.python-sphinx-feature-classification.new.5536/python-sphinx-feature-classification.changes 2019-04-28 20:14:22.910383860 +0200 @@ -1,0 +2,19 @@ +Fri Apr 26 13:34:05 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com> + +- update to version 0.3.2 + 0.3.2 + * Change openstack-dev to openstack-discuss + * Optimizing the safety of the http link site in HACKING.rst + 0.3.1 + * Handle ConfigParser.readfp deprecation + * add python 3.6 unit test job + 0.3.0 + * Parse 'driver-notes-XXX' values + * doc: Rework everything + 0.2.0 + * Update for Python 3 compatibility + * Driver usage example is not correct + * set default python to python3 + * Add badges, description and fix links in README + +------------------------------------------------------------------- Old: ---- sphinx-feature-classification-0.1.0.tar.gz New: ---- sphinx-feature-classification-0.3.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-sphinx-feature-classification.spec ++++++ --- /var/tmp/diff_new_pack.m0KwMJ/_old 2019-04-28 20:14:23.350383587 +0200 +++ /var/tmp/diff_new_pack.m0KwMJ/_new 2019-04-28 20:14:23.350383587 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-sphinx-feature-classification # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,14 +18,18 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-sphinx-feature-classification -Version: 0.1.0 +Version: 0.3.2 Release: 0 Summary: Sphinx extension to generate a matrix of pluggable drivers License: Apache-2.0 Group: Development/Languages/Python URL: http://www.openstack.org/ Source: https://files.pythonhosted.org/packages/source/s/sphinx-feature-classification/sphinx-feature-classification-%{version}.tar.gz +BuildRequires: %{python_module ddt >= 1.0.1} +BuildRequires: %{python_module docutils} +BuildRequires: %{python_module oslotest} BuildRequires: %{python_module pbr >= 2.0} +BuildRequires: %{python_module pytest} BuildRequires: fdupes BuildRequires: python-rpm-macros Requires: python-docutils >= 0.11 @@ -47,6 +51,9 @@ %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%check +%pytest sphinx_feature_classification/tests + %files %{python_files} %license LICENSE %doc AUTHORS ChangeLog README.rst ++++++ sphinx-feature-classification-0.1.0.tar.gz -> sphinx-feature-classification-0.3.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/.zuul.yaml new/sphinx-feature-classification-0.3.2/.zuul.yaml --- old/sphinx-feature-classification-0.1.0/.zuul.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/.zuul.yaml 2019-02-26 01:05:12.000000000 +0100 @@ -0,0 +1,7 @@ +- project: + templates: + - check-requirements + - publish-openstack-docs-pti + - openstack-python-jobs + - openstack-python36-jobs + - openstack-python37-jobs diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/AUTHORS new/sphinx-feature-classification-0.3.2/AUTHORS --- old/sphinx-feature-classification-0.1.0/AUTHORS 2018-03-19 17:57:37.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/AUTHORS 2019-02-26 01:07:16.000000000 +0100 @@ -1 +1,12 @@ +98k <18552437190@163.com> +Ben Nemec <bnemec@redhat.com> +Corey Bryant <corey.bryant@canonical.com> +Doug Hellmann <doug@doughellmann.com> +Jay S. Bryant <jungleboyj@electronicjungle.net> Mike Perez <thingee@gmail.com> +Sean McGinnis <sean.mcginnis@gmail.com> +Stephen Finucane <stephenfin@redhat.com> +Thierry Carrez <thierry@openstack.org> +huang.zhiping <huang.zhiping@99cloud.net> +qingszhao <zhao.daqing@99cloud.net> +zhouxinyong <zhouxinyong@inspur.com> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/ChangeLog new/sphinx-feature-classification-0.3.2/ChangeLog --- old/sphinx-feature-classification-0.1.0/ChangeLog 2018-03-19 17:57:37.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/ChangeLog 2019-02-26 01:07:16.000000000 +0100 @@ -1,6 +1,41 @@ CHANGES ======= +0.3.2 +----- + +* Change python3.5 job to python3.7 job on Stein+ +* Sort drivers listed under feature details +* Update home-page +* Change openstack-dev to openstack-discuss +* Optimizing the safety of the http link site in HACKING.rst + +0.3.1 +----- + +* Handle ConfigParser.readfp deprecation +* add python 3.6 unit test job +* switch documentation job to new PTI +* import zuul job settings from project-config + +0.3.0 +----- + +* Parse 'driver-notes-XXX' values +* doc: Rework everything + +0.2.0 +----- + +* Update for Python 3 compatibility +* change default python 3 env in tox to 3.5 +* fix tox python3 overrides +* Trivial: update pypi url to new url +* Driver usage example is not correct +* set default python to python3 +* Fix constraints error in pep8 job +* Add badges, description and fix links in README + 0.1.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/HACKING.rst new/sphinx-feature-classification-0.3.2/HACKING.rst --- old/sphinx-feature-classification-0.1.0/HACKING.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/HACKING.rst 2019-02-26 01:05:12.000000000 +0100 @@ -1,4 +1,4 @@ sphinx-feature-classification Style Commandments ================================================ -Read the OpenStack Style Commandments http://docs.openstack.org/developer/hacking/ +Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/PKG-INFO new/sphinx-feature-classification-0.3.2/PKG-INFO --- old/sphinx-feature-classification-0.1.0/PKG-INFO 2018-03-19 17:57:38.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/PKG-INFO 2019-02-26 01:07:16.000000000 +0100 @@ -1,26 +1,34 @@ Metadata-Version: 1.1 Name: sphinx-feature-classification -Version: 0.1.0 +Version: 0.3.2 Summary: Generate a matrix of pluggable drivers and their support to an API in Sphinx. -Home-page: http://www.openstack.org/ +Home-page: https://docs.openstack.org/sphinx-feature-classification/latest/ Author: OpenStack -Author-email: openstack-dev@lists.openstack.org +Author-email: openstack-discuss@lists.openstack.org License: UNKNOWN -Description: =============================== +Description: ======================== + Team and repository tags + ======================== + + .. image:: https://governance.openstack.org/tc/badges/sphinx-feature-classification.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + .. Change things from this point on + + ============================= sphinx-feature-classification - =============================== + ============================= - Generate in sphinx a matrix of pluggable drivers and their support to an API. + This is a Sphinx directive that allows creating matrices of drivers a project + contains and which features they support. The directive takes an INI file with + specific syntax explained in the usage documentation to generate the matrices, + in which projects have the authority to say what is supported within their own + repository. * Free software: Apache license - * Documentation: http://docs.openstack.org/developer/sphinx-feature-classification + * Documentation: https://docs.openstack.org/sphinx-feature-classification/latest/ * Source: http://git.openstack.org/cgit/openstack/sphinx-feature-classification - * Bugs: http://bugs.launchpad.net/sphinx-feature-classification - - Features - -------- - - * TODO + * Bugs: https://storyboard.openstack.org/#!/project/921 Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/README.rst new/sphinx-feature-classification-0.3.2/README.rst --- old/sphinx-feature-classification-0.1.0/README.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/README.rst 2019-02-26 01:05:12.000000000 +0100 @@ -1,15 +1,23 @@ -=============================== +======================== +Team and repository tags +======================== + +.. image:: https://governance.openstack.org/tc/badges/sphinx-feature-classification.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + +.. Change things from this point on + +============================= sphinx-feature-classification -=============================== +============================= -Generate in sphinx a matrix of pluggable drivers and their support to an API. +This is a Sphinx directive that allows creating matrices of drivers a project +contains and which features they support. The directive takes an INI file with +specific syntax explained in the usage documentation to generate the matrices, +in which projects have the authority to say what is supported within their own +repository. * Free software: Apache license -* Documentation: http://docs.openstack.org/developer/sphinx-feature-classification +* Documentation: https://docs.openstack.org/sphinx-feature-classification/latest/ * Source: http://git.openstack.org/cgit/openstack/sphinx-feature-classification -* Bugs: http://bugs.launchpad.net/sphinx-feature-classification - -Features --------- - -* TODO +* Bugs: https://storyboard.openstack.org/#!/project/921 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/contributing.rst new/sphinx-feature-classification-0.3.2/doc/source/contributing.rst --- old/sphinx-feature-classification-0.1.0/doc/source/contributing.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/contributing.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -============ -Contributing -============ -.. include:: ../../CONTRIBUTING.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/contributor/index.rst new/sphinx-feature-classification-0.3.2/doc/source/contributor/index.rst --- old/sphinx-feature-classification-0.1.0/doc/source/contributor/index.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/contributor/index.rst 2019-02-26 01:05:12.000000000 +0100 @@ -0,0 +1,5 @@ +============ +Contributing +============ + +.. include:: ../../../CONTRIBUTING.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/index.rst new/sphinx-feature-classification-0.3.2/doc/source/index.rst --- old/sphinx-feature-classification-0.1.0/doc/source/index.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/index.rst 2019-02-26 01:05:12.000000000 +0100 @@ -1,25 +1,13 @@ -.. sphinx-feature-classification documentation master file, created by - sphinx-quickstart on Tue Jul 9 22:26:36 2013. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to sphinx-feature-classification's documentation! -========================================================= - -Contents: +============================= +sphinx-feature-classification +============================= + +.. include:: ../../README.rst + :start-line: 9 + :end-line: -4 .. toctree:: - :maxdepth: 2 - - readme - installation - usage - contributing - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` + contributor/index + install/index + user/index diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/install/index.rst new/sphinx-feature-classification-0.3.2/doc/source/install/index.rst --- old/sphinx-feature-classification-0.1.0/doc/source/install/index.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/install/index.rst 2019-02-26 01:05:12.000000000 +0100 @@ -0,0 +1,7 @@ +============ +Installation +============ + +At the command line:: + + $ pip install sphinx-feature-classification diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/installation.rst new/sphinx-feature-classification-0.3.2/doc/source/installation.rst --- old/sphinx-feature-classification-0.1.0/doc/source/installation.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/installation.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -============ -Installation -============ - -At the command line:: - - $ pip install sphinx-feature-classification - -Or, if you have virtualenvwrapper installed:: - - $ mkvirtualenv sphinx-feature-classification - $ pip install sphinx-feature-classification diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/readme.rst new/sphinx-feature-classification-0.3.2/doc/source/readme.rst --- old/sphinx-feature-classification-0.1.0/doc/source/readme.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/readme.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -.. include:: ../../README.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/usage.rst new/sphinx-feature-classification-0.3.2/doc/source/usage.rst --- old/sphinx-feature-classification-0.1.0/doc/source/usage.rst 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/usage.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,92 +0,0 @@ -======== -Usage -======== - -Sphinx Configuration -==================== - -To use the extension, add ``'sphinx_feature_classification.support_matrix'`` to -the ``extensions`` list in the ``conf.py`` file in your Sphinx project. - -Documenting Your Drivers -======================== - -1. This extension uses an ini file to render your driver matrix in Sphinx. You - can begin by creating the file support-matrix.ini file in your sphinx's - source directory. - -2. In the INI file, create driver sections that are prefixed with driver-. The - section has various options that can be specified. - -+------------+-----------+---------------------------------------+ -| Field Name | Mandatory | Description | -+============+===========+=======================================+ -| title | **Yes** | Friendly name of the driver. | -+------------+-----------+---------------------------------------+ -| link | No | A link to documentation of the driver.| -+------------+-----------+---------------------------------------+ - -.. code-block:: INI - - [driver.slow-driver] - title=Slow Driver - link=https://docs.openstack.org/foo/latest/some-slow-driver-doc - - [driver.fast-driver] - title=Fast Driver - link=https://docs.openstack.org/foo/latest/some-fast-driver-doc - - -3. Next we'll create a couple of feature sections to show which drivers support - them. Notice that a driver is only required to implement detach-volume if - they completed implementing attach-volume. - -.. code-block:: INI - - [operation.attach-volume] - title=Attach block volume to instance - status=optional - notes=The attach volume operation provides a means to hotplug - additional block storage to a running instance. - cli=my-project attach-volume <instance> <volume> - driver-slow-driver=complete - driver-fast-driver=complete - - [operation.detach-volume] - title=Detach block volume from instance - status=condition(operation.attach-volume==complete) - notes=The detach volume operation provides a means to remove additional block - storage from a running instance. - cli=my-project detach-volume <instance> <volume> - driver-slow-driver=complete - driver-fast-driver=complete - -The 'status' field takes possible values - -+---------------+------------------------------------------------------+ -| Status | Description | -+===============+======================================================+ -| mandatory | Unconditionally required to be implemented. | -+---------------+------------------------------------------------------+ -| optional | Optional to support, nice to have. | -+---------------+------------------------------------------------------+ -| choice(group) | At least one of the options within the named group | -| | must be implemented. | -+---------------+------------------------------------------------------+ -| condition | Required, if the referenced condition is met. | -+---------------+------------------------------------------------------+ - -The value against each 'driver-XXXX' entry refers to the level -of the implementation of the feature in that driver - -+---------------+------------------------------------------------------+ -| Status | Description | -+===============+======================================================+ -| complete | Fully implemented, expected to work at all times. | -+---------------+------------------------------------------------------+ -| partial | Implemented, but with caveats about when it will | -| | work eg some configurations or hardware or guest OS | -| | may not support it. | -+---------------+------------------------------------------------------+ -| missing | Not implemented at all. | -+---------------+------------------------------------------------------+ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/doc/source/user/index.rst new/sphinx-feature-classification-0.3.2/doc/source/user/index.rst --- old/sphinx-feature-classification-0.1.0/doc/source/user/index.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/doc/source/user/index.rst 2019-02-26 01:05:12.000000000 +0100 @@ -0,0 +1,221 @@ +===== +Usage +===== + +Sphinx Configuration +-------------------- + +To use the extension, add ``'sphinx_feature_classification.support_matrix'`` to +the ``extensions`` list in the ``conf.py`` file in your Sphinx project. + +.. code-block:: python + :caption: conf.py + + extensions = [ + 'sphinx_feature_classification.support_matrix', + # ... other extensions + ] + +Once added, include the ``support_matrix`` directive in your chosen document. +The directive takes a single argument: a relative path to the INI file in which +the driver matrix is defined. + +.. code-block:: rst + :caption: support-matrix.rst + + .. support_matrix:: support-matrix.ini + +See below for more details on the format of this file. + + +Drivers vs. Features vs. Implementations +---------------------------------------- + +Drivers + Drivers are *backends* that are used to implement a set of features. What a + driver actually is depends entirely on the project being documented. For a + project like OpenStack Compute (nova), this could be a virtualization driver + (*libvirt*, *Hyper-V*, *PowerVM*, etc.). For a project like OpenStack + Storage, this could be a block storage driver (*LVM*, *NFS*, *RBD*, etc.). It + is entirely project-specific. + +Features + Features are more clear cut. Features are something that your project should + support (or *must* support). For a project like OpenStack Compute (nova), + this could be the ability to restart an instance. For a project like + OpenStack Storage (cinder), this could be the ability to create a snapshot of + a volume. + +Implementation + Implementations refer to the state of a feature within a given driver. As not + all features are required, not all drivers may implement them. + + +Documenting Your Drivers +------------------------ + +This extension uses an INI file to render your driver matrix in Sphinx. For +example, you may wish to call this file ``support-matrix.ini``. This file +should be placed somewhere within your Sphinx source directory. Within the INI +file, there are multiple sections. + +Driver Sections +~~~~~~~~~~~~~~~ + +Driver sections are prefixed with ``driver.``. You can specify as many of them +as you need for your project. The section has various options that can be +specified. + +``title`` + :Mandatory: **Yes** + + Friendly name of the driver. + +``link`` + :Mandatory: No + + A link to documentation of the driver. + +For example: + +.. code-block:: INI + :caption: support-matrix.ini + + [driver.slow-driver] + title=Slow Driver + link=https://docs.openstack.org/foo/latest/some-slow-driver-doc + + [driver.fast-driver] + title=Fast Driver + link=https://docs.openstack.org/foo/latest/some-fast-driver-doc + +Feature Sections +~~~~~~~~~~~~~~~~ + +Feature sections are prefixed with ``operation.``. As with driver sections, you +can specify as many of them as you need for your project. These sections are +also used to describe the feature and indicate the implementation status of the +feature among the various drivers, as seen below. These sections have the +following options: + +``title`` + :Mandatory: **Yes** + + Friendly name of the feature. + +``status`` + :Mandatory: **Yes** + + The importance of the feature or whether it's required. One of: + + ``mandatory`` + Unconditionally required to be implemented. + + ``optional`` + Optional to support; nice to have. + + ``choice(group)`` + At least one of the options within the named group must be implemented. + + ``condition`` + Required, if the referenced condition is met. + +``notes`` + :Mandatory: No + + Additional information about the feature. + +``cli`` + :Mandatory: No + + A sample CLI command that can be used to utilize the feature. + +In addition, there are some driver specific options that should be repeated +for every driver defined earlier in the file. + +``driver.XXX`` + :Mandatory: **Yes** (for each driver) + + The level of implementation of this feature in driver ``XXX``. One of: + + ``complete`` + Fully implemented, expected to work at all times. + + ``partial`` + Implemented, but with caveats about when it will work. For example, some + configurations, hardware or guest OS' may not support it. + + ``missing`` + Not implemented at all. + +``driver-notes.XXX`` + :Mandatory: No + + Additional information about the implementation of this feature in driver + ``XXX``. While this is optional, it is highly recommended for implementations + in the ``partial`` state. + +For example: + +.. code-block:: INI + :caption: support-matrix.ini + + [operation.attach-volume] + title=Attach block volume to instance + status=optional + notes=The attach volume operation provides a means to hotplug additional + block storage to a running instance. + cli=my-project attach-volume <instance> <volume> + driver.slow-driver=complete + driver.fast-driver=complete + + [operation.detach-volume] + title=Detach block volume from instance + status=condition(operation.attach-volume==complete) + notes=The detach volume operation provides a means to remove additional + block storage from a running instance. + cli=my-project detach-volume <instance> <volume> + driver.slow-driver=complete + driver-notes.slow-driver=Works without issue if instance is off. When + hotplugging, requires version foo of the driver. + driver.fast-driver=complete + +Notice that a driver is only required to implement detach-volume if they +completed implementing ``attach-volume``. + + +Example +------- + +This is simply the combined example from above. + +.. code-block:: INI + :caption: support-matrix.ini + + [driver.slow-driver] + title=Slow Driver + link=https://docs.openstack.org/foo/latest/some-slow-driver-doc + + [driver.fast-driver] + title=Fast Driver + link=https://docs.openstack.org/foo/latest/some-fast-driver-doc + + [operation.attach-volume] + title=Attach block volume to instance + status=optional + notes=The attach volume operation provides a means to hotplug additional + block storage to a running instance. + cli=my-project attach-volume <instance> <volume> + driver.slow-driver=complete + driver.fast-driver=complete + + [operation.detach-volume] + title=Detach block volume from instance + status=condition(operation.attach-volume==complete) + notes=The detach volume operation provides a means to remove additional + block storage from a running instance. + cli=my-project detach-volume <instance> <volume> + driver.slow-driver=complete + driver-notes.slow-driver=Works without issue if instance is off. When + hotplugging, requires version foo of the driver. + driver.fast-driver=complete diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/releasenotes/notes/support-driver-notes-b73d5b185f05db7f.yaml new/sphinx-feature-classification-0.3.2/releasenotes/notes/support-driver-notes-b73d5b185f05db7f.yaml --- old/sphinx-feature-classification-0.1.0/releasenotes/notes/support-driver-notes-b73d5b185f05db7f.yaml 1970-01-01 01:00:00.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/releasenotes/notes/support-driver-notes-b73d5b185f05db7f.yaml 2019-02-26 01:05:12.000000000 +0100 @@ -0,0 +1,14 @@ +--- +features: + - | + You can now specify ``driver-notes.XXX`` values. These are useful to + provide additional context for features with a status of ``partial``. For + example:: + + [operation.Cool_Feature] + title=Cool Feature + status=optional + notes=A pretty darn cool feature. + driver.foo=complete + driver.bar=partial + driver-notes.bar=Requires hardware support. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/setup.cfg new/sphinx-feature-classification-0.3.2/setup.cfg --- old/sphinx-feature-classification-0.1.0/setup.cfg 2018-03-19 17:57:38.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/setup.cfg 2019-02-26 01:07:16.000000000 +0100 @@ -4,8 +4,8 @@ description-file = README.rst author = OpenStack -author-email = openstack-dev@lists.openstack.org -home-page = http://www.openstack.org/ +author-email = openstack-discuss@lists.openstack.org +home-page = https://docs.openstack.org/sphinx-feature-classification/latest/ classifier = Environment :: OpenStack Intended Audience :: Information Technology diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/support_matrix.py new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/support_matrix.py --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/support_matrix.py 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/support_matrix.py 2019-02-26 01:05:12.000000000 +0100 @@ -23,6 +23,7 @@ from docutils import nodes from docutils.parsers import rst +import six from six.moves import configparser KEY_PATTERN = re.compile("[^a-zA-Z0-9_]") @@ -104,7 +105,13 @@ "one of (%s)" % (option, status, section, ", ".join( Implementation.STATUS_ALL))) - impl = Implementation(status) + option_notes = ''.join([DRIVER_NOTES_PREFIX, + option[len(DRIVER_PREFIX):]]) + notes = None + if cfg.has_option(section, option_notes): + notes = cfg.get(section, option_notes) + + impl = Implementation(status=status, notes=notes) feature.implementations[option] = impl return feature @@ -160,8 +167,9 @@ STATUS_ALL = [STATUS_COMPLETE, STATUS_MISSING, STATUS_PARTIAL, STATUS_UNKNOWN] - def __init__(self, status=STATUS_MISSING): + def __init__(self, status=STATUS_MISSING, notes=None): self.status = status + self.notes = notes STATUS_SYMBOLS = { @@ -205,8 +213,14 @@ env = self.state.document.settings.env fname = self.arguments[0] rel_fpath, fpath = env.relfn2path(fname) + + # Handle deprecation of readfp in py3 for read_file that was not + # available in py2. + if six.PY2: + cfg.read_file = cfg.readfp + with open(fpath) as fp: - cfg.readfp(fp) + cfg.read_file(fp) # This ensures that the docs are rebuilt whenever the # .ini file changes @@ -264,8 +278,8 @@ summary_head.append(header) # then one column for each backend driver - impls = matrix.drivers.keys() - impls.sort() + impls = sorted(matrix.drivers, + key=lambda x: matrix.drivers[x].title) for key in impls: driver = matrix.drivers[key] implcol = nodes.entry() @@ -296,8 +310,6 @@ classes=["sp_feature_" + feature.status])) # and then one column for each backend driver - impls = matrix.drivers.keys() - impls.sort() for key in impls: impl = feature.implementations[key] impl_col = nodes.entry() @@ -362,7 +374,9 @@ para_divers.append(nodes.strong(text="Driver Support:")) # A sub-list giving details of each backend driver impls = nodes.bullet_list() - for key in feature.implementations: + keys = sorted(feature.implementations, + key=lambda x: matrix.drivers[x].title) + for key in keys: driver = matrix.drivers[key] impl = feature.implementations[key] subitem = nodes.list_item() @@ -377,6 +391,9 @@ ids=[key_id]), ] + if impl.notes is not None: + subitem.append(self._create_notes_paragraph(impl.notes)) + impls.append(subitem) para_divers.append(impls) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/tests/fakes/support-matrix.ini new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/tests/fakes/support-matrix.ini --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/tests/fakes/support-matrix.ini 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/tests/fakes/support-matrix.ini 2019-02-26 01:05:12.000000000 +0100 @@ -12,3 +12,4 @@ notes=A pretty darn cool feature. driver.foo=complete driver.bar=partial +driver-notes.bar=Requires hardware support. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/tests/test_sphinx_feature_classification.py new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/tests/test_sphinx_feature_classification.py --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification/tests/test_sphinx_feature_classification.py 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification/tests/test_sphinx_feature_classification.py 2019-02-26 01:05:12.000000000 +0100 @@ -20,12 +20,13 @@ """ import os -from sphinx_feature_classification import support_matrix -from sphinx_feature_classification.tests import base - import ddt +import six from six.moves import configparser +from sphinx_feature_classification import support_matrix +from sphinx_feature_classification.tests import base + @ddt.ddt class MatrixTestCase(base.TestCase): @@ -37,8 +38,11 @@ directory = os.path.dirname(os.path.abspath(__file__)) config_file = os.path.join(directory, 'fakes', 'support-matrix.ini') + if six.PY2: + cfg.read_file = cfg.readfp + with open(config_file) as fp: - cfg.readfp(fp) + cfg.read_file(fp) self.matrix = support_matrix.Matrix(cfg) @@ -58,3 +62,13 @@ fake_driver = self.matrix.drivers[key] self.assertEqual(title, fake_driver.title) self.assertEqual(link, fake_driver.link) + + @ddt.unpack + @ddt.data({'key': 'driver.foo', 'status': 'complete', + 'notes': None}, + {'key': 'driver.bar', 'status': 'partial', + 'notes': 'Requires hardware support.'}) + def test_implementations_set(self, key, status, notes): + fake_implementation = self.matrix.features[0].implementations[key] + self.assertEqual(status, fake_implementation.status) + self.assertEqual(notes, fake_implementation.notes) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/PKG-INFO new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/PKG-INFO --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/PKG-INFO 2018-03-19 17:57:37.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/PKG-INFO 2019-02-26 01:07:16.000000000 +0100 @@ -1,26 +1,34 @@ Metadata-Version: 1.1 Name: sphinx-feature-classification -Version: 0.1.0 +Version: 0.3.2 Summary: Generate a matrix of pluggable drivers and their support to an API in Sphinx. -Home-page: http://www.openstack.org/ +Home-page: https://docs.openstack.org/sphinx-feature-classification/latest/ Author: OpenStack -Author-email: openstack-dev@lists.openstack.org +Author-email: openstack-discuss@lists.openstack.org License: UNKNOWN -Description: =============================== +Description: ======================== + Team and repository tags + ======================== + + .. image:: https://governance.openstack.org/tc/badges/sphinx-feature-classification.svg + :target: https://governance.openstack.org/tc/reference/tags/index.html + + .. Change things from this point on + + ============================= sphinx-feature-classification - =============================== + ============================= - Generate in sphinx a matrix of pluggable drivers and their support to an API. + This is a Sphinx directive that allows creating matrices of drivers a project + contains and which features they support. The directive takes an INI file with + specific syntax explained in the usage documentation to generate the matrices, + in which projects have the authority to say what is supported within their own + repository. * Free software: Apache license - * Documentation: http://docs.openstack.org/developer/sphinx-feature-classification + * Documentation: https://docs.openstack.org/sphinx-feature-classification/latest/ * Source: http://git.openstack.org/cgit/openstack/sphinx-feature-classification - * Bugs: http://bugs.launchpad.net/sphinx-feature-classification - - Features - -------- - - * TODO + * Bugs: https://storyboard.openstack.org/#!/project/921 Platform: UNKNOWN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/SOURCES.txt new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/SOURCES.txt --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/SOURCES.txt 2018-03-19 17:57:38.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/SOURCES.txt 2019-02-26 01:07:16.000000000 +0100 @@ -1,6 +1,7 @@ .coveragerc .mailmap .testr.conf +.zuul.yaml AUTHORS CONTRIBUTING.rst ChangeLog @@ -14,12 +15,12 @@ test-requirements.txt tox.ini doc/source/conf.py -doc/source/contributing.rst doc/source/index.rst -doc/source/installation.rst -doc/source/readme.rst -doc/source/usage.rst +doc/source/contributor/index.rst +doc/source/install/index.rst +doc/source/user/index.rst releasenotes/notes/.placeholder +releasenotes/notes/support-driver-notes-b73d5b185f05db7f.yaml releasenotes/source/conf.py releasenotes/source/index.rst releasenotes/source/unreleased.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/pbr.json new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/pbr.json --- old/sphinx-feature-classification-0.1.0/sphinx_feature_classification.egg-info/pbr.json 2018-03-19 17:57:37.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/sphinx_feature_classification.egg-info/pbr.json 2019-02-26 01:07:16.000000000 +0100 @@ -1 +1 @@ -{"git_version": "6176884", "is_release": true} \ No newline at end of file +{"git_version": "2dacdfb", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sphinx-feature-classification-0.1.0/tox.ini new/sphinx-feature-classification-0.3.2/tox.ini --- old/sphinx-feature-classification-0.1.0/tox.ini 2018-03-19 17:54:56.000000000 +0100 +++ new/sphinx-feature-classification-0.3.2/tox.ini 2019-02-26 01:05:12.000000000 +0100 @@ -1,34 +1,42 @@ [tox] minversion = 2.0 -envlist = py34,py27,pypy,pep8 +envlist = py35,py36,py27,pypy,pep8 skipsdist = True [testenv] usedevelop = True -install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages} +install_command = pip install {opts} {packages} setenv = VIRTUAL_ENV={envdir} PYTHONWARNINGS=default::DeprecationWarning -deps = -r{toxinidir}/test-requirements.txt +deps = + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -r{toxinidir}/test-requirements.txt commands = python setup.py test --slowest --testr-args='{posargs}' [testenv:pep8] +basepython = python3 commands = flake8 {posargs} [testenv:venv] +basepython = python3 commands = {posargs} [testenv:cover] +basepython = python3 commands = python setup.py test --coverage --testr-args='{posargs}' [testenv:docs] +basepython = python3 commands = python setup.py build_sphinx [testenv:releasenotes] +basepython = python3 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:debug] +basepython = python3 commands = oslo_debug_helper {posargs} [flake8]