# Developing with Python-TackerClient

## Project Info

- Free software: under the Apache license

- Tacker Service: https://opendev.org/openstack/tacker

- Tacker Client Library: https://opendev.org/openstack/python-tackerclient

- Tacker Service Bugs: https://bugs.launchpad.net/tacker

- Client Bugs: https://bugs.launchpad.net/python-tackerclient

- Blueprints: https://blueprints.launchpad.net/tacker

## Meetings

For details please refer to the OpenStack IRC meetings page.

## Testing

Install the prerequisites for Tox:

- On Ubuntu or Debian:

      $ apt-get install gcc gettext python-dev libxml2-dev libxslt1-dev \
        zlib1g-dev

  You may need to use pip install for some packages.

- On RHEL or CentOS including Fedora:

      $ yum install gcc python-devel libxml2-devel libxslt-devel

- On openSUSE or SUSE linux Enterprise:

      $ zypper install gcc python-devel libxml2-devel libxslt-devel

Install python-tox:

    $ pip install tox

To run the full suite of tests maintained within TackerClient.

    $ tox

Note

The first time you run `tox`, it will take additional time to build virtualenvs. You can later use the `-r` option with `tox` to rebuild your virtualenv in a similar manner.

To run tests for one or more specific test environments(for example, the most common configuration of Python 2.7, Python 3.5 and PEP-8), list the environments with the `-e` option, separated by spaces:

    $ tox -e py27,py35,pep8

See `tox.ini` for the full list of available test environments.

## Building the Documentation

The documentation is generated with Sphinx using the `tox` command. To create HTML docs, run the commands:

    $ tox -e docs

The resultant HTML will be in the `doc/build/html` directory.

## Release Notes

The release notes for a patch should be included in the patch. See the Project Team Guide for more information on using reno in OpenStack.

If any of the following applies to the patch, a release note is required:

- The deployer needs to take an action when upgrading

- The plugin interface changes

- A new feature is implemented

- A command or option is removed

- Current behavior is changed

- A security bug is fixed

Reno is used to generate release notes. Use the commands:

    $ tox -e venv -- reno new <bug-,bp-,whatever>

Then edit the sample file that was created and push it with your change.

To run the commands and see results:

    $ git commit  # Commit the change because reno scans git log.

    $ tox -e releasenotes

At last, look at the generated release notes files in `releasenotes/build/html` in your browser.

## Testing new code

If a developer wants to test new code (feature, command or option) that they have written, Python-TackerClient may be installed from source by running the following commands in the base directory of the project:

    $ python setup.py install

or

    $ pip install -e .

## Standardize Import Format

The import order shows below:

- {{stdlib imports in human alphabetical order}}

- n

- {{third-party lib imports in human alphabetical order}}

- n

- {{project imports in human alphabetical order}}

- n

- n

- {{begin your code}}

### Example

    import copy
    import fixtures
    import mock
    import os

    from osc_lib.api import auth
    from osc_lib import utils
    import six

    from openstackclient import shell
    from openstackclient.tests import utils

this page last updated: 2022-03-02 20:51:15

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug