compose/CONTRIBUTING.md

2.8 KiB

Contributing to Compose

Compose is a part of the Docker project, and follows the same rules and principles. Take a read of Docker's contributing guidelines to get an overview.

TL;DR

Pull requests will need:

Development environment

If you're looking contribute to Compose but you're new to the project or maybe even to Python, here are the steps that should get you started.

  1. Fork https://github.com/docker/compose to your username.
  2. Clone your forked repository locally git clone git@github.com:yourusername/compose.git.
  3. You must configure a remote for your fork so that you can sync changes you make with the original repository.
  4. Enter the local directory cd compose.
  5. Set up a development environment by running python setup.py develop. This will install the dependencies and set up a symlink from your docker-compose executable to the checkout of the repository. When you now run docker-compose from anywhere on your machine, it will run your development version of Compose.

Submitting a pull request

See Docker's basic contribution workflow for a guide on how to submit a pull request for code or documentation.

Running the test suite

Use the test script to run linting checks and then the full test suite against different Python interpreters:

$ script/test

Tests are run against a Docker daemon inside a container, so that we can test against multiple Docker versions. By default they'll run against only the latest Docker version - set the DOCKER_VERSIONS environment variable to "all" to run against all supported versions:

$ DOCKER_VERSIONS=all script/test

Arguments to script/test are passed through to the nosetests executable, so you can specify a test directory, file, module, class or method:

$ script/test tests/unit
$ script/test tests/unit/cli_test.py
$ script/test tests.integration.service_test
$ script/test tests.integration.service_test:ServiceTest.test_containers

Finding things to work on

We use a ZenHub board to keep track of specific things we are working on and planning to work on. If you're looking for things to work on, stuff in the backlog is a great place to start.

For more information about our project planning, take a look at our GitHub wiki.