# Contributing to the OpenStack SDK

This section of documentation pertains to those who wish to contribute to the development of this SDK. If you’re looking for documentation on how to use the SDK to build applications, refer to the user section.

## About the Project

The OpenStack SDK is a OpenStack project aimed at providing a complete software development kit for the programs which make up the OpenStack community. It is a Python library with corresponding documentation, examples, and tools released under the Apache 2 license.

- A Brief History

## Contribution Mechanics

- Contributing to openstacksdk
  - Developer Certificate of Origin
  - Project Hosting Details

## Contacting the Developers

### IRC

The developers of this project are available in the #openstack-sdks channel on OFTC IRC. This channel includes conversation on SDKs and tools within the general OpenStack community, including OpenStackClient as well as occasional talk about SDKs created for languages outside of Python.

### Email

The openstack-discuss mailing list fields questions of all types on OpenStack. Using the `[sdk]` filter to begin your email subject will ensure that the message gets to SDK developers.

## 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.

- OpenStack SDK Developer Coding Standards
  - Release Notes
  - Exceptions
  - openstack.cloud API Methods
  - Tests

## Development Environment

The first step towards contributing code and documentation is to setup your development environment. We use a pretty standard setup, but it is fully documented in our setup section.

- Creating a Development Environment
  - Required Tools
  - Getting the Source Code
  - Installing Dependencies
  - Building the Documentation

## Testing

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

- Testing
  - Unit Tests
    - Running tests
  - Functional Tests
    - Configuration
    - Running tests

## Project Layout

The project contains a top-level `openstack` package, which houses several modules that form the foundation upon which each service’s API is built on. Under the `openstack` package are packages for each of those services, such as `openstack.compute`.

- How the SDK is organized
  - Resource
  - Proxy
    - `Proxy`
      - `Proxy.retriable_status_codes`
  - Cloud
  - Connection

## Adding Features

Does this SDK not do what you need it to do? Is it missing a service? Are you a developer on another project who wants to add their service? You’re in the right place. Below are examples of how to add new features to the OpenStack SDK.

- Creating a New Resource
  - Naming Conventions
  - An Example
  - `fake.Fake` Attributes
  - Supported Operations
  - Properties
  - Documentation

this page last updated: 2026-01-16 23:06:19

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