Add documentation for the library interface
This commit adds documentation for the library interface, formerly known as tempest-lib, and the release versioning. Partially implements bp tempest-lib-reintegration Change-Id: I623222a17fe3563bbe767fa803e8f771a21687a1
This commit is contained in:
parent
e284f8988f
commit
55511d98f1
39
README.rst
39
README.rst
@ -94,6 +94,45 @@ as it is simpler, and quicker to work with.
|
|||||||
.. _testr: https://testrepository.readthedocs.org/en/latest/MANUAL.html
|
.. _testr: https://testrepository.readthedocs.org/en/latest/MANUAL.html
|
||||||
.. _ostestr: http://docs.openstack.org/developer/os-testr/
|
.. _ostestr: http://docs.openstack.org/developer/os-testr/
|
||||||
|
|
||||||
|
Library
|
||||||
|
-------
|
||||||
|
Tempest exposes a library interface. This interface is a stable interface and
|
||||||
|
should be backwards compatible (including backwards compatibility with the
|
||||||
|
old tempest-lib package, with the exception of the import). If you plan to
|
||||||
|
directly consume tempest in your project you should only import code from the
|
||||||
|
tempest library interface, other pieces of tempest do not have the same
|
||||||
|
stable interface and there are no guarantees on the Python API unless otherwise
|
||||||
|
stated.
|
||||||
|
|
||||||
|
For more details refer to the library documentation here: :ref:`library`
|
||||||
|
|
||||||
|
Release Versioning
|
||||||
|
------------------
|
||||||
|
Tempest's released versions are broken into 2 sets of information. Depending on
|
||||||
|
how you intend to consume tempest you might need
|
||||||
|
|
||||||
|
The version is a set of 3 numbers:
|
||||||
|
|
||||||
|
X.Y.Z
|
||||||
|
|
||||||
|
While this is almost `semver`_ like, the way versioning is handled is slightly
|
||||||
|
different:
|
||||||
|
|
||||||
|
X is used to represent the supported OpenStack releases for tempest tests
|
||||||
|
in-tree, and to signify major feature changes to tempest. It's a monotonically
|
||||||
|
increasing integer where each version either indicates a new supported OpenStack
|
||||||
|
release, the drop of support for an OpenStack release (which will coincide with
|
||||||
|
the upstream stable branch going EOL), or a major feature lands (or is removed)
|
||||||
|
from tempest.
|
||||||
|
|
||||||
|
Y.Z is used to represent library interface changes. This is treated the same
|
||||||
|
way as minor and patch versions from `semver`_ but only for the library
|
||||||
|
interface. When Y is incremented we've added functionality to the library
|
||||||
|
interface and when Z is incremented it's a bug fix release for the library.
|
||||||
|
Also note that both Y and Z are reset to 0 at each increment of X.
|
||||||
|
|
||||||
|
.. _semver: http://semver.org/
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ Contents:
|
|||||||
HACKING
|
HACKING
|
||||||
REVIEWING
|
REVIEWING
|
||||||
plugin
|
plugin
|
||||||
|
library
|
||||||
|
|
||||||
------------
|
------------
|
||||||
Field Guides
|
Field Guides
|
||||||
|
68
doc/source/library.rst
Normal file
68
doc/source/library.rst
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
.. _library:
|
||||||
|
|
||||||
|
Tempest Library Doucmentation
|
||||||
|
=============================
|
||||||
|
|
||||||
|
Tempest provides a stable library interface that provides external tools or
|
||||||
|
test suites an interface for reusing pieces of tempest code. Any public
|
||||||
|
interface that lives in tempest/lib in the tempest repo is treated as a stable
|
||||||
|
public interface and it should be safe to external consume that. Every effort
|
||||||
|
goes into maintaining backwards compatibility with any change. Just as with
|
||||||
|
tempest-lib the library is self contained and doesn't have any dependency on
|
||||||
|
other tempest internals outside of lib. (including no usage of tempest
|
||||||
|
configuration)
|
||||||
|
|
||||||
|
Stability
|
||||||
|
---------
|
||||||
|
Just as tempest-lib before it any code that lives in tempest/lib will be treated
|
||||||
|
as a stable interface, nothing has changed in regards to interface stability.
|
||||||
|
This means that any public interface under the tempest/lib directory is
|
||||||
|
expected to be a stable interface suitable for public consumption. However, for
|
||||||
|
any interfaces outside of tempest/lib in the tempest tree (unless otherwise
|
||||||
|
noted) or any private interfaces the same stability guarantees don't apply.
|
||||||
|
|
||||||
|
Adding Interfaces
|
||||||
|
'''''''''''''''''
|
||||||
|
When adding an interface to tempest/lib we have to make sure there are no
|
||||||
|
dependencies on any pieces of tempest outside of tempest/lib. This means if
|
||||||
|
for example there is a dependency on the configuration file we need remove that.
|
||||||
|
The other aspect when adding an interface is to make sure it's really an
|
||||||
|
interface ready for external consumption and something we want to commit to
|
||||||
|
supporting.
|
||||||
|
|
||||||
|
Making changes
|
||||||
|
''''''''''''''
|
||||||
|
When making changes to tempest/lib you have to be conscious of the effect of
|
||||||
|
any changes on external consumers. If your proposed changeset will change the
|
||||||
|
default behaviour of any interface, or make something which previously worked
|
||||||
|
not after your change, then it is not acceptable. Every effort needs to go into
|
||||||
|
preserving backwards compatibility in changes.
|
||||||
|
|
||||||
|
Reviewing
|
||||||
|
'''''''''
|
||||||
|
When reviewing a proposed change to tempest/lib code we need to be careful to
|
||||||
|
ensure that we don't break backwards compatibility. For patches that change
|
||||||
|
existing interfaces we have to be careful to make sure we don't break any
|
||||||
|
external consumers. Some common red flags are:
|
||||||
|
|
||||||
|
* a change to an existing API requires a change outside the library directory
|
||||||
|
where the interface is being consumed
|
||||||
|
* a unit test has to be significantly changed to make the proposed change pass
|
||||||
|
|
||||||
|
Testing
|
||||||
|
'''''''
|
||||||
|
When adding a new interface to the library we need to at a minimum have unit
|
||||||
|
test coverage. A proposed change to add an interface to tempest/lib that
|
||||||
|
doesn't have unit tests shouldn't be accepted. Ideally these unit tests will
|
||||||
|
provide sufficient coverage to ensure a stable interface moving forward.
|
||||||
|
|
||||||
|
Current Library APIs
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
library/cli
|
||||||
|
library/decorators
|
||||||
|
library/rest_client
|
||||||
|
library/utils
|
18
doc/source/library/cli.rst
Normal file
18
doc/source/library/cli.rst
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
.. _cli:
|
||||||
|
|
||||||
|
CLI Testing Framework Usage
|
||||||
|
===========================
|
||||||
|
|
||||||
|
-------------------
|
||||||
|
The cli.base module
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. automodule:: tempest.lib.cli.base
|
||||||
|
:members:
|
||||||
|
|
||||||
|
----------------------------
|
||||||
|
The cli.output_parser module
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
.. automodule:: tempest.lib.cli.output_parser
|
||||||
|
:members:
|
13
doc/source/library/decorators.rst
Normal file
13
doc/source/library/decorators.rst
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
.. _decorators:
|
||||||
|
|
||||||
|
Decorators Usage Guide
|
||||||
|
======================
|
||||||
|
|
||||||
|
---------------------
|
||||||
|
The decorators module
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
.. automodule:: tempest.lib.decorators
|
||||||
|
:members:
|
||||||
|
|
||||||
|
|
11
doc/source/library/rest_client.rst
Normal file
11
doc/source/library/rest_client.rst
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.. _rest_client:
|
||||||
|
|
||||||
|
Rest Client Usage
|
||||||
|
=================
|
||||||
|
|
||||||
|
----------------------
|
||||||
|
The rest_client module
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
.. automodule:: tempest.lib.common.rest_client
|
||||||
|
:members:
|
11
doc/source/library/utils.rst
Normal file
11
doc/source/library/utils.rst
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.. _utils:
|
||||||
|
|
||||||
|
Utils Usage
|
||||||
|
===========
|
||||||
|
|
||||||
|
---------------
|
||||||
|
The misc module
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. automodule:: tempest.lib.common.utils.misc
|
||||||
|
:members:
|
Loading…
x
Reference in New Issue
Block a user