From 515d97da9aca0c9d6b275c9049ba9ea00fe6572b Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 4 Jul 2018 21:21:26 -0500 Subject: [PATCH 01/21] Create interop37.cs --- src/runtime/interop37.cs | 149 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 src/runtime/interop37.cs diff --git a/src/runtime/interop37.cs b/src/runtime/interop37.cs new file mode 100644 index 000000000..c46bcc2f5 --- /dev/null +++ b/src/runtime/interop37.cs @@ -0,0 +1,149 @@ +// Auto-generated by geninterop.py. +// DO NOT MODIFIY BY HAND. + + +#if PYTHON36 +using System; +using System.Collections; +using System.Collections.Specialized; +using System.Runtime.InteropServices; +using System.Reflection; +using System.Text; + +namespace Python.Runtime +{ + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] + internal class TypeOffset + { + static TypeOffset() + { + Type type = typeof(TypeOffset); + FieldInfo[] fi = type.GetFields(); + int size = IntPtr.Size; + for (int i = 0; i < fi.Length; i++) + { + fi[i].SetValue(null, i * size); + } + } + + public static int magic() + { + return ob_size; + } + + // Auto-generated from PyHeapTypeObject in Python.h + public static int ob_refcnt = 0; + public static int ob_type = 0; + public static int ob_size = 0; + public static int tp_name = 0; + public static int tp_basicsize = 0; + public static int tp_itemsize = 0; + public static int tp_dealloc = 0; + public static int tp_print = 0; + public static int tp_getattr = 0; + public static int tp_setattr = 0; + public static int tp_as_async = 0; + public static int tp_repr = 0; + public static int tp_as_number = 0; + public static int tp_as_sequence = 0; + public static int tp_as_mapping = 0; + public static int tp_hash = 0; + public static int tp_call = 0; + public static int tp_str = 0; + public static int tp_getattro = 0; + public static int tp_setattro = 0; + public static int tp_as_buffer = 0; + public static int tp_flags = 0; + public static int tp_doc = 0; + public static int tp_traverse = 0; + public static int tp_clear = 0; + public static int tp_richcompare = 0; + public static int tp_weaklistoffset = 0; + public static int tp_iter = 0; + public static int tp_iternext = 0; + public static int tp_methods = 0; + public static int tp_members = 0; + public static int tp_getset = 0; + public static int tp_base = 0; + public static int tp_dict = 0; + public static int tp_descr_get = 0; + public static int tp_descr_set = 0; + public static int tp_dictoffset = 0; + public static int tp_init = 0; + public static int tp_alloc = 0; + public static int tp_new = 0; + public static int tp_free = 0; + public static int tp_is_gc = 0; + public static int tp_bases = 0; + public static int tp_mro = 0; + public static int tp_cache = 0; + public static int tp_subclasses = 0; + public static int tp_weaklist = 0; + public static int tp_del = 0; + public static int tp_version_tag = 0; + public static int tp_finalize = 0; + public static int am_await = 0; + public static int am_aiter = 0; + public static int am_anext = 0; + public static int nb_add = 0; + public static int nb_subtract = 0; + public static int nb_multiply = 0; + public static int nb_remainder = 0; + public static int nb_divmod = 0; + public static int nb_power = 0; + public static int nb_negative = 0; + public static int nb_positive = 0; + public static int nb_absolute = 0; + public static int nb_bool = 0; + public static int nb_invert = 0; + public static int nb_lshift = 0; + public static int nb_rshift = 0; + public static int nb_and = 0; + public static int nb_xor = 0; + public static int nb_or = 0; + public static int nb_int = 0; + public static int nb_reserved = 0; + public static int nb_float = 0; + public static int nb_inplace_add = 0; + public static int nb_inplace_subtract = 0; + public static int nb_inplace_multiply = 0; + public static int nb_inplace_remainder = 0; + public static int nb_inplace_power = 0; + public static int nb_inplace_lshift = 0; + public static int nb_inplace_rshift = 0; + public static int nb_inplace_and = 0; + public static int nb_inplace_xor = 0; + public static int nb_inplace_or = 0; + public static int nb_floor_divide = 0; + public static int nb_true_divide = 0; + public static int nb_inplace_floor_divide = 0; + public static int nb_inplace_true_divide = 0; + public static int nb_index = 0; + public static int nb_matrix_multiply = 0; + public static int nb_inplace_matrix_multiply = 0; + public static int mp_length = 0; + public static int mp_subscript = 0; + public static int mp_ass_subscript = 0; + public static int sq_length = 0; + public static int sq_concat = 0; + public static int sq_repeat = 0; + public static int sq_item = 0; + public static int was_sq_slice = 0; + public static int sq_ass_item = 0; + public static int was_sq_ass_slice = 0; + public static int sq_contains = 0; + public static int sq_inplace_concat = 0; + public static int sq_inplace_repeat = 0; + public static int bf_getbuffer = 0; + public static int bf_releasebuffer = 0; + public static int name = 0; + public static int ht_slots = 0; + public static int qualname = 0; + public static int ht_cached_keys = 0; + + /* here are optional user slots, followed by the members. */ + public static int members = 0; + } +} + +#endif From 37f6c8fcfa6d7d38211bdb01ba9c2a6a91b591c1 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 4 Jul 2018 21:29:52 -0500 Subject: [PATCH 02/21] Update interop37.cs --- src/runtime/interop37.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/interop37.cs b/src/runtime/interop37.cs index c46bcc2f5..d5fc76ad3 100644 --- a/src/runtime/interop37.cs +++ b/src/runtime/interop37.cs @@ -2,7 +2,7 @@ // DO NOT MODIFIY BY HAND. -#if PYTHON36 +#if PYTHON37 using System; using System.Collections; using System.Collections.Specialized; From 77e4d2d9729e3298ef3ca323f3514afd9cfb778f Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 4 Jul 2018 22:38:29 -0500 Subject: [PATCH 03/21] try faking minimal crypt.h --- tools/geninterop/fake_libc_include/crypt.h | 1 + 1 file changed, 1 insertion(+) create mode 100644 tools/geninterop/fake_libc_include/crypt.h diff --git a/tools/geninterop/fake_libc_include/crypt.h b/tools/geninterop/fake_libc_include/crypt.h new file mode 100644 index 000000000..3b16d481f --- /dev/null +++ b/tools/geninterop/fake_libc_include/crypt.h @@ -0,0 +1 @@ +#include "features.h" \ No newline at end of file From e8895bc1f66f04050153a2535b3caf3521cc2c57 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Fri, 3 Aug 2018 16:52:23 -0500 Subject: [PATCH 04/21] Update appveyor.yml --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 6bebef490..41cb46f47 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,10 +23,13 @@ environment: BUILD_OPTS: --xplat - PYTHON_VERSION: 3.6 BUILD_OPTS: --xplat + - PYTHON_VERSION: 3.7 + BUILD_OPTS: --xplat - PYTHON_VERSION: 2.7 - PYTHON_VERSION: 3.4 - PYTHON_VERSION: 3.5 - PYTHON_VERSION: 3.6 + - PYTHON_VERSION: 3.7 init: # Update Environment Variables based on matrix/platform From 8b0145c4cbdb24781ea076e285d68488b5cfc4db Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Mon, 6 Aug 2018 07:27:26 -0500 Subject: [PATCH 05/21] Update test_exceptions.py --- src/tests/test_exceptions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/test_exceptions.py b/src/tests/test_exceptions.py index c697290ee..396d5a497 100644 --- a/src/tests/test_exceptions.py +++ b/src/tests/test_exceptions.py @@ -289,7 +289,7 @@ def test_python_compat_of_managed_exceptions(): assert e.args == (msg,) assert isinstance(e.args, tuple) if PY3: - assert repr(e) == "OverflowException('Simple message',)" + assert repr(e)[:-2] == "OverflowException('Simple message'" elif PY2: assert repr(e) == "OverflowException(u'Simple message',)" From 049c7dab6ab96847bde208de2259bb4e209ecab3 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Mon, 6 Aug 2018 12:48:39 -0500 Subject: [PATCH 06/21] Update test_exceptions.py --- src/tests/test_exceptions.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tests/test_exceptions.py b/src/tests/test_exceptions.py index 396d5a497..08b00d77d 100644 --- a/src/tests/test_exceptions.py +++ b/src/tests/test_exceptions.py @@ -289,7 +289,8 @@ def test_python_compat_of_managed_exceptions(): assert e.args == (msg,) assert isinstance(e.args, tuple) if PY3: - assert repr(e)[:-2] == "OverflowException('Simple message'" + strexp = "OverflowException('Simple message" + assert repr(e)[:len(strexp)] == strexp elif PY2: assert repr(e) == "OverflowException(u'Simple message',)" From 279c91d71066e1091eb0107e1b4fcda367ed7d7f Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Tue, 7 Aug 2018 13:05:08 -0500 Subject: [PATCH 07/21] official python 3.7 on travis CI, but xenial with sudo --- .travis.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 900e207a7..0943ef1c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,6 +22,7 @@ matrix: - dotnet-hostfxr-2.0.0 - dotnet-runtime-2.0.0 - dotnet-sdk-2.0.0 + - python: 3.4 env: *xplat-env addons: *xplat-addons @@ -33,9 +34,12 @@ matrix: - python: 3.6 env: *xplat-env addons: *xplat-addons - - python: "3.7-dev" + + - python: 3.7 env: *xplat-env addons: *xplat-addons + dist: xenial + sudo: true # --------------------- Classic builds ------------------------ - python: 2.7 @@ -52,15 +56,10 @@ matrix: - python: 3.6 env: *classic-env - - python: "3.7-dev" - env: *classic-env - - allow_failures: - - python: "3.7-dev" - env: *xplat-env - - - python: "3.7-dev" + - python: 3.7 env: *classic-env + dist: xenial + sudo: true env: global: From 86579be7fcaea86644614deb0b2b099a84684685 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Tue, 7 Aug 2018 14:12:42 -0500 Subject: [PATCH 08/21] xenial support for mono and .netcore --- .travis.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0943ef1c9..71542ddb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,6 +40,19 @@ matrix: addons: *xplat-addons dist: xenial sudo: true + addons: &xplat-addons-xenial + apt: + sources: + - sourceline: deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main + key_url: https://packages.microsoft.com/keys/microsoft.asc + - sourceline: deb https://download.mono-project.com/repo/ubuntu stable-xenial main + key_url: http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA6A19B38D3D831EF + packages: + - mono-devel + - ca-certificates-mono + - dotnet-hostfxr-2.0.0 + - dotnet-runtime-2.0.0 + - dotnet-sdk-2.0.0 # --------------------- Classic builds ------------------------ - python: 2.7 @@ -60,6 +73,14 @@ matrix: env: *classic-env dist: xenial sudo: true + addons: + apt: + sources: + - sourceline: deb http://download.mono-project.com/repo/ubuntu xenial main + key_url: http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xA6A19B38D3D831EF + packages: + - mono-devel + - ca-certificates-mono env: global: From e60d93e1ffbf88fcdc66b5e855dcf189c3020abc Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Mon, 13 Aug 2018 22:10:20 -0500 Subject: [PATCH 09/21] Update .travis.yml --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 71542ddb5..d059bdcde 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,6 @@ matrix: - python: 3.7 env: *xplat-env - addons: *xplat-addons dist: xenial sudo: true addons: &xplat-addons-xenial From 5ef579a4b03f3e8fa2acd8c8d15d2111a508a171 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 15 Aug 2018 12:54:15 -0500 Subject: [PATCH 10/21] passing pthread support to clang based on: https://stackoverflow.com/questions/2391194/what-is-gs-pthread-equiv-in-clang --- tools/geninterop/geninterop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/geninterop/geninterop.py b/tools/geninterop/geninterop.py index bf5fdb96b..cb23a9403 100644 --- a/tools/geninterop/geninterop.py +++ b/tools/geninterop/geninterop.py @@ -185,7 +185,7 @@ def preprocess_python_headers(): defines.extend(("-D", "PYTHON_WITH_WIDE_UNICODE")) python_h = os.path.join(include_py, "Python.h") - cmd = ["clang", "-I"] + include_dirs + defines + ["-E", python_h] + cmd = ["clang", "-pthread", "-I"] + include_dirs + defines + ["-E", python_h] # normalize as the parser doesn't like windows line endings. lines = [] From 97c8245a08b4118fd37d4874c1d3d2cda2441677 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 15 Aug 2018 13:04:46 -0500 Subject: [PATCH 11/21] force through posix threading support still need to look at windows case --- tools/geninterop/geninterop.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/geninterop/geninterop.py b/tools/geninterop/geninterop.py index cb23a9403..56ebc372a 100644 --- a/tools/geninterop/geninterop.py +++ b/tools/geninterop/geninterop.py @@ -173,7 +173,8 @@ def preprocess_python_headers(): "-D", "__attribute__(x)=", "-D", "__inline__=inline", "-D", "__asm__=;#pragma asm", - "-D", "__int64=long long" + "-D", "__int64=long long", + "-D", "_POSIX_THREADS", ] if hasattr(sys, "abiflags"): From ed14f3bdeaa472797feb8422e42fb64a5b4fd0e9 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 15 Aug 2018 13:05:18 -0500 Subject: [PATCH 12/21] Update geninterop.py --- tools/geninterop/geninterop.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/geninterop/geninterop.py b/tools/geninterop/geninterop.py index 56ebc372a..f8ef8e561 100644 --- a/tools/geninterop/geninterop.py +++ b/tools/geninterop/geninterop.py @@ -174,7 +174,7 @@ def preprocess_python_headers(): "-D", "__inline__=inline", "-D", "__asm__=;#pragma asm", "-D", "__int64=long long", - "-D", "_POSIX_THREADS", + "-D", "_POSIX_THREADS" ] if hasattr(sys, "abiflags"): From 5d39b50accf9ac2e6147c4b8b7acb0f5fdfad49c Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 15 Aug 2018 14:04:57 -0500 Subject: [PATCH 13/21] temporary diagnostic build to check for nuget/msbuild errors in mono --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4ec2a2113..b3ff179d1 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ # Allow config/verbosity to be set from cli # http://stackoverflow.com/a/4792601/5208670 CONFIG = "Release" # Release or Debug -VERBOSITY = "minimal" # quiet, minimal, normal, detailed, diagnostic +VERBOSITY = "diagnostic" # quiet, minimal, normal, detailed, diagnostic is_64bits = sys.maxsize > 2**32 DEVTOOLS = "MsDev" if sys.platform == "win32" else "Mono" From 98f4f843c0b8f8abd752a40f81cf7df7236be44e Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 22 Aug 2018 09:51:57 -0500 Subject: [PATCH 14/21] trying out "detailed" verbosity to find out the issues with mono/msbuild/nuget --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index b3ff179d1..43349b1a9 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ # Allow config/verbosity to be set from cli # http://stackoverflow.com/a/4792601/5208670 CONFIG = "Release" # Release or Debug -VERBOSITY = "diagnostic" # quiet, minimal, normal, detailed, diagnostic +VERBOSITY = "detailed" # quiet, minimal, normal, detailed, diagnostic is_64bits = sys.maxsize > 2**32 DEVTOOLS = "MsDev" if sys.platform == "win32" else "Mono" From b3168cf65fe9df4fd8921dc6197fc1fcb614e8e6 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Wed, 22 Aug 2018 16:25:04 -0500 Subject: [PATCH 15/21] try one more verbosity level - "normal" --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 43349b1a9..7d6ef327a 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,7 @@ # Allow config/verbosity to be set from cli # http://stackoverflow.com/a/4792601/5208670 CONFIG = "Release" # Release or Debug -VERBOSITY = "detailed" # quiet, minimal, normal, detailed, diagnostic +VERBOSITY = "normal" # quiet, minimal, normal, detailed, diagnostic is_64bits = sys.maxsize > 2**32 DEVTOOLS = "MsDev" if sys.platform == "win32" else "Mono" From 49467ddd92a2ee6eae2ddb4bd1189e412d94f078 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Tue, 11 Sep 2018 12:08:44 -0500 Subject: [PATCH 16/21] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 7d6ef327a..21947c5fd 100644 --- a/setup.py +++ b/setup.py @@ -325,7 +325,7 @@ def _install_packages(self): if DEVTOOLS == "Mono": nuget = "mono {0}".format(nuget) - cmd = "{0} update -self".format(nuget) + cmd = "{0} update -self -Version 4.6".format(nuget) self.debug_print("Updating NuGet: {0}".format(cmd)) subprocess.check_call(cmd, shell=use_shell) From c1a47a545f99e37f8ba2a0f2cc8e90a7fabe8056 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Thu, 18 Oct 2018 15:18:29 -0500 Subject: [PATCH 17/21] revert back nuget update --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index d015c0b99..c5bcb4797 100644 --- a/setup.py +++ b/setup.py @@ -325,7 +325,7 @@ def _install_packages(self): if DEVTOOLS == "Mono": nuget = "mono {0}".format(nuget) - cmd = "{0} update -self -Version 4.6".format(nuget) + cmd = "{0} update -self".format(nuget) self.debug_print("Updating NuGet: {0}".format(cmd)) subprocess.check_call(cmd, shell=use_shell) From cea848e8149fd7d879821f2b0aa9f3f7fc1a4a8f Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Thu, 18 Oct 2018 17:12:37 -0500 Subject: [PATCH 18/21] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c5bcb4797..0c28a80f5 100644 --- a/setup.py +++ b/setup.py @@ -516,10 +516,10 @@ def run(self): 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX :: Linux', 'Operating System :: MacOS :: MacOS X', From badb6ea27e38ad6d8d0318213842c831c8b36787 Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Thu, 18 Oct 2018 17:14:16 -0500 Subject: [PATCH 19/21] Update Python.Runtime.15.csproj --- src/runtime/Python.Runtime.15.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/Python.Runtime.15.csproj b/src/runtime/Python.Runtime.15.csproj index cfde0a127..46a58ca33 100644 --- a/src/runtime/Python.Runtime.15.csproj +++ b/src/runtime/Python.Runtime.15.csproj @@ -35,7 +35,7 @@ $(PYTHONNET_PY2_VERSION) PYTHON27 $(PYTHONNET_PY3_VERSION) - PYTHON36 + PYTHON37 $(PYTHONNET_WIN_DEFINE_CONSTANTS) UCS2 $(PYTHONNET_MONO_DEFINE_CONSTANTS) From 64c39f0d8ef23f34d48613321e255c607c3e165b Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Thu, 18 Oct 2018 17:15:20 -0500 Subject: [PATCH 20/21] Update Python.Runtime.csproj --- src/runtime/Python.Runtime.csproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/runtime/Python.Runtime.csproj b/src/runtime/Python.Runtime.csproj index 1fea78082..d839272dc 100644 --- a/src/runtime/Python.Runtime.csproj +++ b/src/runtime/Python.Runtime.csproj @@ -34,7 +34,7 @@ pdbonly - PYTHON3;PYTHON36;UCS4 + PYTHON3;PYTHON37;UCS4 true pdbonly @@ -46,7 +46,7 @@ true - PYTHON3;PYTHON36;UCS4;TRACE;DEBUG + PYTHON3;PYTHON37;UCS4;TRACE;DEBUG false full @@ -56,7 +56,7 @@ pdbonly - PYTHON3;PYTHON36;UCS2 + PYTHON3;PYTHON37;UCS2 true pdbonly @@ -68,7 +68,7 @@ true - PYTHON3;PYTHON36;UCS2;TRACE;DEBUG + PYTHON3;PYTHON37;UCS2;TRACE;DEBUG false full @@ -166,4 +166,4 @@ - \ No newline at end of file + From 222874c87e90ae593ae506daf0757ae85a843a1c Mon Sep 17 00:00:00 2001 From: Denis Akhiyarov Date: Thu, 18 Oct 2018 17:18:21 -0500 Subject: [PATCH 21/21] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aac38988b..4d5e52c92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ This document follows the conventions laid out in [Keep a CHANGELOG][]. - Implemented GetDynamicMemberNames() for PyObject to allow dynamic object members to be visible in the debugger ([#443][i443])([#690][p690]) - Incorporated reference-style links to issues and pull requests in the CHANGELOG ([#608][i608]) - Added detailed comments about aproaches and dangers to handle multi-app-domains ([#625][p625]) +- Python 3.7 support, builds and testing added. Defaults changed from Python 3.6 to 3.7 ([#698][p698]) ### Changed