|
|
@@ -1,6 +1,8 @@
|
|
|
# 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](https://github.com/docker/docker/blob/master/CONTRIBUTING.md) to get an overview.
|
|
|
+Compose is a part of the Docker project, and follows the same rules and
|
|
|
+principles. Take a read of [Docker's contributing guidelines](https://github.com/docker/docker/blob/master/CONTRIBUTING.md)
|
|
|
+to get an overview.
|
|
|
|
|
|
## TL;DR
|
|
|
|
|
|
@@ -17,28 +19,40 @@ 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](https://github.com/docker/compose) to your username.
|
|
|
-1. Clone your forked repository locally `git clone [email protected]:yourusername/compose.git`.
|
|
|
-1. Enter the local directory `cd compose`.
|
|
|
-1. 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.
|
|
|
+1. Fork [https://github.com/docker/compose](https://github.com/docker/compose)
|
|
|
+ to your username.
|
|
|
+2. Clone your forked repository locally `git clone [email protected]:yourusername/compose.git`.
|
|
|
+3. Enter the local directory `cd compose`.
|
|
|
+4. 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.
|
|
|
|
|
|
## Running the test suite
|
|
|
|
|
|
-Use the test script to run linting checks and then the full test suite:
|
|
|
+Use the test script to run DCO check, 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:
|
|
|
+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:
|
|
|
+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
|
|
|
|
|
|
+Before pushing a commit you can check the DCO by invoking `script/validate-dco`.
|
|
|
+
|
|
|
## Building binaries
|
|
|
|
|
|
Linux:
|
|
|
@@ -49,27 +63,23 @@ OS X:
|
|
|
|
|
|
$ script/build-osx
|
|
|
|
|
|
-Note that this only works on Mountain Lion, not Mavericks, due to a [bug in PyInstaller](http://www.pyinstaller.org/ticket/807).
|
|
|
+Note that this only works on Mountain Lion, not Mavericks, due to a
|
|
|
+[bug in PyInstaller](http://www.pyinstaller.org/ticket/807).
|
|
|
|
|
|
## Release process
|
|
|
|
|
|
1. Open pull request that:
|
|
|
-
|
|
|
- Updates the version in `compose/__init__.py`
|
|
|
- Updates the binary URL in `docs/install.md`
|
|
|
- Updates the script URL in `docs/completion.md`
|
|
|
- Adds release notes to `CHANGES.md`
|
|
|
-
|
|
|
2. Create unpublished GitHub release with release notes
|
|
|
-
|
|
|
-3. Build Linux version on any Docker host with `script/build-linux` and attach to release
|
|
|
-
|
|
|
-4. 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`.
|
|
|
-
|
|
|
+3. Build Linux version on any Docker host with `script/build-linux` and attach
|
|
|
+ to release
|
|
|
+4. 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`.
|
|
|
5. Publish GitHub release, creating tag
|
|
|
-
|
|
|
6. Update website with `script/deploy-docs`
|
|
|
-
|
|
|
7. Upload PyPi package
|
|
|
|
|
|
$ git checkout $VERSION
|