---
features:
  - The Tempest plugin interface contains a new optional method, which allows
    plugins to declare and automatically register any service client defined
    in the plugin.
  - tempest.lib exposes a new stable interface, the clients module and
    ServiceClients class, which provides a convinient way for plugin tests to
    access service clients defined in Tempest as well as service clients
    defined in all loaded plugins.
    The new ServiceClients class only exposes for now the service clients
    which are in tempest.lib, i.e. compute, network and image. The remaing
    service clients (identity, volume and object-storage) will be added in
    future updates.
deprecations:
  - The new clients module provides a stable alternative to tempest classes
    manager.Manager and clients.Manager. manager.Manager only exists now
    to smoothen the transition of plugins to the new interface, but it will
    be removed shortly without further notice.
