Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
7aa51a1
Fix port serialization with external IP
shin- Mar 31, 2018
2975f06
Merge pull request #5845 from docker/5253-port-serialize
shin- Mar 31, 2018
8356576
Make sure error messages are unicode strings before combining
shin- Apr 7, 2018
6234cc8
Merge pull request #5858 from docker/5855-error-encoding
shin- Apr 9, 2018
20a9ae5
Refactor bash completion for services
albers Apr 11, 2018
ca396ba
Add support for features added in 1.21.0 to bash completion
albers Apr 12, 2018
27447d9
Merge branch 'release'
shin- Apr 12, 2018
d898b0c
Merge branch 'release'
shin- Apr 12, 2018
7078c87
Bump 1.22.0 dev
shin- Apr 12, 2018
3f85c42
Merge pull request #5867 from albers/refactor-completion-services
shin- Apr 12, 2018
12b6857
Merge pull request #5868 from albers/completion-for-1.21.0
shin- Apr 12, 2018
fc923c3
Update .gitignore
shin- Apr 17, 2018
b1c831c
Inital pass on comprehensive automated release script
shin- Apr 18, 2018
ae6dd8a
Implement resuming a release
shin- Apr 18, 2018
6a71040
Temp test
shin- Apr 19, 2018
5994563
Added logging for asset removal
shin- Apr 19, 2018
e9f6abf
Add images build step and finalize placeholder
shin- Apr 19, 2018
a120759
Add finalize step
shin- Apr 19, 2018
c49eca4
Avoid accidental prod push
shin- Apr 19, 2018
e708609
Early check for non-draft release in resume
shin- Apr 19, 2018
8511570
Default base is master
shin- Apr 19, 2018
b06bc3c
Add support for PR cherry picks
shin- Apr 20, 2018
2b5ad06
Cleanup
shin- Apr 20, 2018
6b83a65
Improve monitor function
shin- Apr 20, 2018
a752208
Fix appveyor build
shin- Apr 20, 2018
eba6791
Containerize release tool
shin- Apr 20, 2018
62fc24e
Uncomment deploy steps
shin- Apr 21, 2018
7536c33
Document new release process
shin- Apr 23, 2018
0578a58
Remove obsolete release scripts
shin- Apr 23, 2018
aa66338
Merge pull request #5891 from shin-/automated-releases
shin- Apr 23, 2018
4dece7f
Retrieve objects using legacy (< 1.21) project names
shin- Apr 23, 2018
299ce6a
Incorrect key name for IPAM options check
shin- Apr 24, 2018
fa6d837
Clearly define IPAM config schema for validation
shin- Apr 24, 2018
3cf5870
Merge pull request #5898 from docker/5884-ipam-config-schema
shin- Apr 24, 2018
fa3acbe
Merge pull request #5897 from docker/5882-ipam_options_check
shin- Apr 24, 2018
c1657dc
Improve legacy network and volume detection
shin- Apr 24, 2018
3b2ce82
Use true_name for remove operation
shin- Apr 24, 2018
faa532c
Merge pull request #5896 from docker/5874-legacy-proj-name
shin- Apr 24, 2018
6e09e37
Bump SDK version to latest
shin- Apr 26, 2018
9f42fac
Merge pull request #5906 from docker/bump_sdk
shin- Apr 26, 2018
aecc0de
Prevent duplicate binds in generated container config
shin- Apr 26, 2018
c235517
Merge pull request #5910 from docker/5885-duplicate-binds
shin- Apr 26, 2018
d469113
Improve release automation
shin- Apr 27, 2018
948ce55
Merge branch 'release'
shin- Apr 27, 2018
90c89e3
Finalize fixes
shin- Apr 27, 2018
bb44d06
Merge pull request #5915 from docker/autotests_fixes
shin- Apr 27, 2018
bc03441
Automatically detect pickable PRs for patch releases
shin- Apr 28, 2018
5eb3f4b
Typo fix
shin- Apr 28, 2018
e6aedb1
Partial revert bc034415501
shin- Apr 28, 2018
31a4cee
Merge pull request #5916 from docker/autotests_fixes
shin- Apr 28, 2018
05638ab
Esnure docker-compose binary is executable (fixes #5917)
shin- Apr 28, 2018
5aafa54
iprange -> ip_range
shin- May 2, 2018
ddcd5c9
Merge pull request #5925 from docker/5923-iprange
shin- May 3, 2018
c3bb958
Ignore default platform if API version doesn't support platform param
shin- May 4, 2018
1cf1217
Merge pull request #5938 from docker/5931-ignore-default-platform
shin- May 4, 2018
f368b48
Ignore attachable property on networks in compatibility mode
shin- May 4, 2018
d5ebc73
Don't attempt to create resources with name starting with illegal cha…
shin- May 4, 2018
263e939
Merge pull request #5939 from docker/5928-compatibility-attachable
shin- May 4, 2018
c15c79e
Merge pull request #5940 from docker/5929-underscore-projname
shin- May 4, 2018
7846f6e
Fix bash completion for running services
albers May 17, 2018
cc62764
Merge pull request #5968 from albers/completion-fix-running-services
shin- May 22, 2018
e245fb0
Allow all Compose commands to retrieve and handle legacy-name containers
shin- May 23, 2018
706164a
Merge pull request #5982 from docker/5933-retrieve-legacy-containers
shin- May 24, 2018
025fb7f
Add composefile v3.7
vdemeester May 29, 2018
70574ef
Support for rollback config in compose 3.7
vdemeester May 30, 2018
b9cccf2
Merge pull request #5992 from vdemeester/3.7-rollback-config
shin- May 30, 2018
7a19b75
Allow `x-*` extension on 3rd level objects
vdemeester May 31, 2018
13d8cf4
Merge pull request #5995 from vdemeester/x-objects
shin- Jun 5, 2018
c584ad6
Add `init` support in 3.7 schema
vdemeester Jun 18, 2018
9cb1a07
Merge pull request #6025 from vdemeester/init-in-3.7
shin- Jun 18, 2018
a728ff6
Bump Python SDK -> 3.4.0
shin- Jun 18, 2018
f0674be
Merge pull request #6027 from docker/bump_sdk
shin- Jun 18, 2018
c187d3c
Use original LD_LIBRARY_PATH when shelling out to credential stores
shin- Jun 8, 2018
80322cf
Better support for UTF8+bom Compose files
shin- Jun 12, 2018
7f0734c
Merge pull request #6012 from docker/5930-credstore-ldpath
shin- Jun 19, 2018
429b1c8
Merge pull request #6017 from docker/6015-utf8-bom
shin- Jun 19, 2018
709ba09
Release script fixes
shin- Jun 21, 2018
156ce2b
Merge remote-tracking branch 'origin/release' into bump-1.22.0-rc1
shin- Jun 21, 2018
e8af19d
Fix release script
shin- Jun 21, 2018
1fb5039
Bump 1.22.0-rc1
shin- Jun 21, 2018
e7de1bc
3.7 --> API v1.38
shin- Jun 21, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ compose/GITSHA
*.swo
*.swp
.DS_Store
.cache
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,55 @@
Change log
==========

1.22.0 (2018-06-30)
-------------------

### Features

#### Compose format version 3.7

- Introduced version 3.7 of the `docker-compose.yml` specification.
This version requires Docker Engine 18.06.0 or above.

- Added support for `rollback_config` in the deploy configuration

- Added support for the `init` parameter in service configurations

- Added support for extension fields in service, network, volume, secret,
and config configurations

#### Compose format version 2.4

- Added support for extension fields in service, network,
and volume configurations

### Bugfixes

- Fixed a bug that prevented deployment with some Compose files when
`DOCKER_DEFAULT_PLATFORM` was set

- Compose will no longer try to create containers or volumes with
invalid starting characters

- Fixed several bugs that prevented Compose commands from working properly
with containers created with an older version of Compose

- Fixed an issue with the output of `docker-compose config` with the
`--compatibility-mode` flag enabled when the source file contains
attachable networks

- Fixed a bug that prevented the `gcloud` credential store from working
properly when used with the Compose binary on UNIX

- Fixed a bug that caused connection errors when trying to operate
over a non-HTTPS TCP connection on Windows

- Fixed a bug that caused builds to fail on Windows if the Dockerfile
was located in a subdirectory of the build context

- Fixed an issue that prevented proper parsing of UTF-8 BOM encoded
Compose files on Windows

1.21.2 (2018-05-03)
-------------------

Expand Down
2 changes: 1 addition & 1 deletion compose/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from __future__ import absolute_import
from __future__ import unicode_literals

__version__ = '1.21.2'
__version__ = '1.22.0-rc1'
7 changes: 7 additions & 0 deletions compose/cli/docker_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,13 @@ def docker_client(environment, version=None, tls_config=None, host=None,

kwargs['user_agent'] = generate_user_agent()

# Workaround for
# https://pyinstaller.readthedocs.io/en/v3.3.1/runtime-information.html#ld-library-path-libpath-considerations
if 'LD_LIBRARY_PATH_ORIG' in environment:
kwargs['credstore_env'] = {
'LD_LIBRARY_PATH': environment.get('LD_LIBRARY_PATH_ORIG'),
}

client = APIClient(**kwargs)
client._original_base_url = kwargs.get('base_url')

Expand Down
18 changes: 10 additions & 8 deletions compose/config/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -918,12 +918,17 @@ def convert_restart_policy(name):


def translate_deploy_keys_to_container_config(service_dict):
if 'credential_spec' in service_dict:
del service_dict['credential_spec']
if 'configs' in service_dict:
del service_dict['configs']

if 'deploy' not in service_dict:
return service_dict, []

deploy_dict = service_dict['deploy']
ignored_keys = [
k for k in ['endpoint_mode', 'labels', 'update_config', 'placement']
k for k in ['endpoint_mode', 'labels', 'update_config', 'rollback_config', 'placement']
if k in deploy_dict
]

Expand All @@ -946,10 +951,6 @@ def translate_deploy_keys_to_container_config(service_dict):
)

del service_dict['deploy']
if 'credential_spec' in service_dict:
del service_dict['credential_spec']
if 'configs' in service_dict:
del service_dict['configs']

return service_dict, ignored_keys

Expand Down Expand Up @@ -1135,6 +1136,7 @@ def merge_deploy(base, override):
md.merge_scalar('replicas')
md.merge_mapping('labels', parse_labels)
md.merge_mapping('update_config')
md.merge_mapping('rollback_config')
md.merge_mapping('restart_policy')
if md.needs_merge('resources'):
resources_md = MergeDict(md.base.get('resources') or {}, md.override.get('resources') or {})
Expand Down Expand Up @@ -1434,15 +1436,15 @@ def has_uppercase(name):
return any(char in string.ascii_uppercase for char in name)


def load_yaml(filename, encoding=None):
def load_yaml(filename, encoding=None, binary=True):
try:
with io.open(filename, 'r', encoding=encoding) as fh:
with io.open(filename, 'rb' if binary else 'r', encoding=encoding) as fh:
return yaml.safe_load(fh)
except (IOError, yaml.YAMLError, UnicodeDecodeError) as e:
if encoding is None:
# Sometimes the user's locale sets an encoding that doesn't match
# the YAML files. Im such cases, retry once with the "default"
# UTF-8 encoding
return load_yaml(filename, encoding='utf-8')
return load_yaml(filename, encoding='utf-8-sig', binary=False)
error_name = getattr(e, '__module__', '') + '.' + e.__class__.__name__
raise ConfigurationError(u"{}: {}".format(error_name, e))
3 changes: 3 additions & 0 deletions compose/config/config_schema_v2.4.json
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@
"dependencies": {
"memswap_limit": ["mem_limit"]
},
"patternProperties": {"^x-": {}},
"additionalProperties": false
},

Expand Down Expand Up @@ -409,6 +410,7 @@
"labels": {"$ref": "#/definitions/labels"},
"name": {"type": "string"}
},
"patternProperties": {"^x-": {}},
"additionalProperties": false
},

Expand Down Expand Up @@ -451,6 +453,7 @@
"labels": {"$ref": "#/definitions/labels"},
"name": {"type": "string"}
},
"patternProperties": {"^x-": {}},
"additionalProperties": false
},

Expand Down
Loading