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
|
||||
.. _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
|
||||
-------------
|
||||
|
||||
|
@ -11,6 +11,7 @@ Contents:
|
||||
HACKING
|
||||
REVIEWING
|
||||
plugin
|
||||
library
|
||||
|
||||
------------
|
||||
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…
Reference in New Issue
Block a user