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.
Pull requests will need:
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.
git clone [email protected]:yourusername/compose.git.cd compose.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.Use the test script to run linting checks and then the full test suite:
$ 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
Linux:
$ script/build-linux
OS X:
$ script/build-osx
Note that this only works on Mountain Lion, not Mavericks, due to a bug in PyInstaller.
Open pull request that:
compose/__init__.pydocs/install.mddocs/completion.mdCHANGES.mdCreate unpublished GitHub release with release notes
Build Linux version on any Docker host with script/build-linux and attach to release
Build OS X version on Mountain Lion with script/build-osx and attach to release as docker-compose-Darwin-x86_64 and docker-compose-Linux-x86_64.
Publish GitHub release, creating tag
Update website with script/deploy-docs
Upload PyPi package
$ git checkout $VERSION
$ python setup.py sdist upload