5. Contributing to the OTC Extensions

This section of the documentation is intended for those who want to contribute to the development of the OTC Extensions. If you’re looking for documentation on how to use the SDK to build applications, please see the SDK section.

Setting up an Development Environment

The first step towards contributing code and documentation is to setup your development environment. The project implements a pretty standard setup. It is fully documented in the setup section.

Project Layout

The project contains a top-level otcextensions package, which houses several modules that form the foundation upon which each service’s API is built on. Under the otcextensions package are packages for the sdk, the osclient (OpenStackClient / CLI) and the related tests of each service implementation. Inside of those directories, the custom created services such as Cloud Container Engine (CCE) are hosted.

Coding Standards

We are a bit stricter than usual in the coding standards department. It’s a good idea to read through the coding section.

Testing

The project contains three test packages, one for unit tests, one for functional tests and one for examples tests. The openstack.tests.unit package tests the SDK’s features in isolation. The openstack.tests.functional and openstack.tests.examples packages test the SDK’s features and examples against an OpenStack cloud.

Example SDK Service and Resource Implementation

Do the OTC Extensions not do what you need them to do? Are they missing a service? Are you a developer on another project who wants to add a service? You’re in the right place. Below are examples of how to add new features to the project.

Add Release Notes to your Pull Request

Every Pull Request should add release notes for trackability of changes of OTCExstensions. For this purpose, we use Reno to fullfil this requirement. The following link will explain how to install and use the tool.

Contacting the OTC Extensions Developers

Currently no official communication other than GitHub is available. Feel free to open new issues if you want to contact us directly or have questions related to the existent packages.