From fd5a12de8e4b19dc2c3d38252c88e1afa85900f7 Mon Sep 17 00:00:00 2001 From: mattip Date: Sat, 23 May 2020 23:50:48 +0300 Subject: [PATCH 01/13] Make py_version_nodot 3_10 not 310 --- Lib/sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index bf04ac541e6b02..ad622e3b6958aa 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -86,7 +86,7 @@ _PY_VERSION = sys.version.split()[0] _PY_VERSION_SHORT = '%d.%d' % sys.version_info[:2] -_PY_VERSION_SHORT_NO_DOT = '%d%d' % sys.version_info[:2] +_PY_VERSION_SHORT_NO_DOT = '%d_%d' % sys.version_info[:2] _PREFIX = os.path.normpath(sys.prefix) _BASE_PREFIX = os.path.normpath(sys.base_prefix) _EXEC_PREFIX = os.path.normpath(sys.exec_prefix) From 76a596c6f657d55513f4d5369090d225a58d9c1d Mon Sep 17 00:00:00 2001 From: mattip Date: Sun, 24 May 2020 01:37:18 +0300 Subject: [PATCH 02/13] fix another place --- Lib/distutils/command/install.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py index aaa300efa96e6e..0ab66d99e48200 100644 --- a/Lib/distutils/command/install.py +++ b/Lib/distutils/command/install.py @@ -292,7 +292,7 @@ def finalize_options(self): 'dist_fullname': self.distribution.get_fullname(), 'py_version': py_version, 'py_version_short': '%d.%d' % sys.version_info[:2], - 'py_version_nodot': '%d%d' % sys.version_info[:2], + 'py_version_nodot': '%d_%d' % sys.version_info[:2], 'sys_prefix': prefix, 'prefix': prefix, 'sys_exec_prefix': exec_prefix, From 5eb6a84e507fd08c82e071612e911469b8e7cb4d Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 25 May 2020 12:38:51 +0300 Subject: [PATCH 03/13] fix more places that do not use py_version_nodot --- Lib/site.py | 2 +- configure | 4 ++-- configure.ac | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Lib/site.py b/Lib/site.py index e981a142088fdf..2adebf1514f612 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -267,7 +267,7 @@ def _get_path(userbase): version = sys.version_info if os.name == 'nt': - return f'{userbase}\\Python{version[0]}{version[1]}\\site-packages' + return f'{userbase}\\Python{version[0]}_{version[1]}\\site-packages' if sys.platform == 'darwin' and sys._framework: return f'{userbase}/lib/python/site-packages' diff --git a/configure b/configure index 1124412dce4753..3b7036cb32f684 100755 --- a/configure +++ b/configure @@ -15295,7 +15295,7 @@ $as_echo_n "checking ABIFLAGS... " >&6; } $as_echo "$ABIFLAGS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 $as_echo_n "checking SOABI... " >&6; } -SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr "." "_"`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 $as_echo "$SOABI" >&6; } @@ -15303,7 +15303,7 @@ $as_echo "$SOABI" >&6; } if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr -d "." "_"``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} cat >>confdefs.h <<_ACEOF #define ALT_SOABI "${ALT_SOABI}" diff --git a/configure.ac b/configure.ac index 84d1f00983f899..9fdc2f69ee82b9 100644 --- a/configure.ac +++ b/configure.ac @@ -4737,14 +4737,14 @@ AC_SUBST(SOABI) AC_MSG_CHECKING(ABIFLAGS) AC_MSG_RESULT($ABIFLAGS) AC_MSG_CHECKING(SOABI) -SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr -d "." "_"`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} AC_MSG_RESULT($SOABI) # Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS AC_SUBST(ALT_SOABI) - ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr -d "." "_"``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} AC_DEFINE_UNQUOTED(ALT_SOABI, "${ALT_SOABI}", [Alternative SOABI used in debug build to load C extensions built in release mode]) fi From 9759ea9a75f22347e69202d0842867eea0634d5d Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Mon, 25 May 2020 09:46:32 +0000 Subject: [PATCH 04/13] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20b?= =?UTF-8?q?lurb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Misc/NEWS.d/next/Build/2020-05-25-09-46-32.bpo-40747.ef15ix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Build/2020-05-25-09-46-32.bpo-40747.ef15ix.rst diff --git a/Misc/NEWS.d/next/Build/2020-05-25-09-46-32.bpo-40747.ef15ix.rst b/Misc/NEWS.d/next/Build/2020-05-25-09-46-32.bpo-40747.ef15ix.rst new file mode 100644 index 00000000000000..3d8e0b058de25c --- /dev/null +++ b/Misc/NEWS.d/next/Build/2020-05-25-09-46-32.bpo-40747.ef15ix.rst @@ -0,0 +1 @@ +The PEP 425 python tag, taken from ``py_version_nodot``, adds a ``_`` so ``cp310`` is now ``cp3_10``. \ No newline at end of file From b9fe6c246d770feba0ec087ac0f819303a2d96e0 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 25 May 2020 12:54:37 +0300 Subject: [PATCH 05/13] test SOABI and py_version_nodot agree on the python version --- Lib/test/test_sysconfig.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index 44e44bf5ea995f..c3bad2cbb47626 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -386,6 +386,12 @@ def test_osx_ext_suffix(self): suffix = sysconfig.get_config_var('EXT_SUFFIX') self.assertTrue(suffix.endswith('-darwin.so'), suffix) + def test_SOABI_consistency(self): + SOABI = sysconfig.get_config_var('SOABI') + pynodot = sysconfig.get_config_var('py_version_nodot') + if SOABI is not None: + self.assertTrue(SOABI.split('-')[1] == pynodot) + class MakefileTests(unittest.TestCase): @unittest.skipIf(sys.platform.startswith('win'), From 7149e08db2e84fde0cf80a20f57ec89eb597ba82 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 25 May 2020 13:28:53 +0300 Subject: [PATCH 06/13] change test --- Lib/test/test_sysconfig.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index c3bad2cbb47626..cd53173ab053ee 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -390,7 +390,7 @@ def test_SOABI_consistency(self): SOABI = sysconfig.get_config_var('SOABI') pynodot = sysconfig.get_config_var('py_version_nodot') if SOABI is not None: - self.assertTrue(SOABI.split('-')[1] == pynodot) + self.assertEqual(SOABI.split('-')[1], pynodot) class MakefileTests(unittest.TestCase): From 4f9b8693b7b81e45297f29ee319f6244299a4bc6 Mon Sep 17 00:00:00 2001 From: mattip Date: Mon, 25 May 2020 14:36:37 +0300 Subject: [PATCH 07/13] change test, SOABI has a 'd' after the python version --- Lib/test/test_sysconfig.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Lib/test/test_sysconfig.py b/Lib/test/test_sysconfig.py index cd53173ab053ee..8e08cdd803c85b 100644 --- a/Lib/test/test_sysconfig.py +++ b/Lib/test/test_sysconfig.py @@ -387,10 +387,11 @@ def test_osx_ext_suffix(self): self.assertTrue(suffix.endswith('-darwin.so'), suffix) def test_SOABI_consistency(self): - SOABI = sysconfig.get_config_var('SOABI') + soabi = sysconfig.get_config_var('SOABI') pynodot = sysconfig.get_config_var('py_version_nodot') - if SOABI is not None: - self.assertEqual(SOABI.split('-')[1], pynodot) + if soabi is not None: + soabi_pyver = soabi.split('-')[1] + self.assertTrue(soabi_pyver.startswith(pynodot)) class MakefileTests(unittest.TestCase): From 48ec1e91283829c9b062f172516fe04dcd4cc5e4 Mon Sep 17 00:00:00 2001 From: mattip Date: Thu, 28 May 2020 08:39:18 +0300 Subject: [PATCH 08/13] remove '-d' from tr --- configure | 4 ++-- configure.ac | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 3b7036cb32f684..fcd30aef73ad83 100755 --- a/configure +++ b/configure @@ -15295,7 +15295,7 @@ $as_echo_n "checking ABIFLAGS... " >&6; } $as_echo "$ABIFLAGS" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 $as_echo_n "checking SOABI... " >&6; } -SOABI='cpython-'`echo $VERSION | tr "." "_"`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr . _`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 $as_echo "$SOABI" >&6; } @@ -15303,7 +15303,7 @@ $as_echo "$SOABI" >&6; } if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS - ALT_SOABI='cpython-'`echo $VERSION | tr -d "." "_"``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr . _``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} cat >>confdefs.h <<_ACEOF #define ALT_SOABI "${ALT_SOABI}" diff --git a/configure.ac b/configure.ac index 9fdc2f69ee82b9..8704a5c448849b 100644 --- a/configure.ac +++ b/configure.ac @@ -4737,16 +4737,17 @@ AC_SUBST(SOABI) AC_MSG_CHECKING(ABIFLAGS) AC_MSG_RESULT($ABIFLAGS) AC_MSG_CHECKING(SOABI) -SOABI='cpython-'`echo $VERSION | tr -d "." "_"`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} +SOABI='cpython-'`echo $VERSION | tr . _`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} AC_MSG_RESULT($SOABI) # Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then # Similar to SOABI but remove "d" flag from ABIFLAGS AC_SUBST(ALT_SOABI) - ALT_SOABI='cpython-'`echo $VERSION | tr -d "." "_"``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} + ALT_SOABI='cpython-'`echo $VERSION | tr . _``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} AC_DEFINE_UNQUOTED(ALT_SOABI, "${ALT_SOABI}", [Alternative SOABI used in debug build to load C extensions built in release mode]) + AC_MSG_RESULT($ALT_SOABI) fi AC_SUBST(EXT_SUFFIX) From 079e5e39785158c4ac2b3d46c9f79baa59118b72 Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 8 Sep 2020 23:48:09 +0300 Subject: [PATCH 09/13] fix merge from master --- Lib/site.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Lib/site.py b/Lib/site.py index 4c095774729c5e..7b28ba93221fda 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -274,8 +274,7 @@ def _get_path(userbase): version = sys.version_info if os.name == 'nt': - ver_nodot = sys.winver.replace('.', '') - return f'{userbase}\\Python{ver_nodot}\\site-packages' + return f'{userbase}\\Python{version[0]}_{version[1]}\\site-packages' if sys.platform == 'darwin' and sys._framework: return f'{userbase}/lib/python/site-packages' From 5e3760bd784d619812d31d0232d046758c0e3606 Mon Sep 17 00:00:00 2001 From: mattip Date: Wed, 9 Sep 2020 00:44:45 +0300 Subject: [PATCH 10/13] dig into windows dll names and install schemes --- Lib/sysconfig.py | 2 +- PC/bdist_wininst/install.c | 4 ++-- PC/pyconfig.h | 4 ++-- PCbuild/pcbuild.proj | 2 +- PCbuild/python.props | 12 ++++++------ 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index 8452f8fc9351e8..dc9b9a5c8269da 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -545,7 +545,7 @@ def get_config_vars(*args): # sys.abiflags may not be defined on all platforms. _CONFIG_VARS['abiflags'] = '' try: - _CONFIG_VARS['py_version_nodot_plat'] = sys.winver.replace('.', '') + _CONFIG_VARS['py_version_nodot_plat'] = sys.winver.replace('.', '_') except AttributeError: _CONFIG_VARS['py_version_nodot_plat'] = '' diff --git a/PC/bdist_wininst/install.c b/PC/bdist_wininst/install.c index 5d77542582a0d4..271b74df0df901 100644 --- a/PC/bdist_wininst/install.c +++ b/PC/bdist_wininst/install.c @@ -1683,10 +1683,10 @@ SelectPythonDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) &py_major, &py_minor); if (result == 2) { #ifdef _DEBUG - wsprintf(pythondll, "python%d%d_d.dll", + wsprintf(pythondll, "python%d_%d_d.dll", py_major, py_minor); #else - wsprintf(pythondll, "python%d%d.dll", + wsprintf(pythondll, "python%d_%d.dll", py_major, py_minor); #endif } diff --git a/PC/pyconfig.h b/PC/pyconfig.h index b29f63c35bccb1..aa1464425b5993 100644 --- a/PC/pyconfig.h +++ b/PC/pyconfig.h @@ -269,11 +269,11 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ file in their Makefile (other compilers are generally taken care of by distutils.) */ # if defined(_DEBUG) -# pragma comment(lib,"python310_d.lib") +# pragma comment(lib,"python3_10_d.lib") # elif defined(Py_LIMITED_API) # pragma comment(lib,"python3.lib") # else -# pragma comment(lib,"python310.lib") +# pragma comment(lib,"python3_10.lib") # endif /* _DEBUG */ # endif /* _MSC_VER */ # endif /* Py_BUILD_CORE */ diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index 4d416c589e4c47..f819c326e1e15b 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -34,7 +34,7 @@ - + - python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt) + + python$(MajorVersionNumber)_$(MinorVersionNumber)$(PyDebugExt) python3$(PyDebugExt) - .cp$(MajorVersionNumber)$(MinorVersionNumber)-win32 - .cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm32 - .cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm64 - .cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64 + .cp$(MajorVersionNumber)_$(MinorVersionNumber)-win32 + .cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_arm32 + .cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_arm64 + .cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_amd64 $(MajorVersionNumber).$(MinorVersionNumber)$(PyArchExt)$(PyTestExt) From 411c15067037d4e444dbe19a89ad671fe38ee671 Mon Sep 17 00:00:00 2001 From: mattip Date: Wed, 9 Sep 2020 01:11:18 +0300 Subject: [PATCH 11/13] fix test --- Lib/test/test_embed.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index 31dc39fd9e8efe..a7922182ba8bb0 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -1172,9 +1172,9 @@ def tmpdir_with_python(self): tmpdir = os.path.realpath(tmpdir) if MS_WINDOWS: - # Copy pythonXY.dll (or pythonXY_d.dll) + # Copy pythonX_Y.dll (or pythonX_Y_d.dll) ver = sys.version_info - dll = f'python{ver.major}{ver.minor}' + dll = f'python{ver.major}_{ver.minor}' dll3 = f'python{ver.major}' if debug_build(sys.executable): dll += '_d' From d201030c1d319145e3ead700fb659401fde4d5f1 Mon Sep 17 00:00:00 2001 From: mattip Date: Wed, 9 Sep 2020 08:25:40 +0300 Subject: [PATCH 12/13] fix merge from master --- Lib/site.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Lib/site.py b/Lib/site.py index 7b28ba93221fda..87353c088113a7 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -274,7 +274,8 @@ def _get_path(userbase): version = sys.version_info if os.name == 'nt': - return f'{userbase}\\Python{version[0]}_{version[1]}\\site-packages' + ver_nodot = sys.winver.replace('.', '_') + return f'{userbase}\\Python{ver_nodot}\\site-packages' if sys.platform == 'darwin' and sys._framework: return f'{userbase}/lib/python/site-packages' From b549f0919b6c5c5bf33a56e864ee8b1a1aa0a450 Mon Sep 17 00:00:00 2001 From: mattip Date: Tue, 13 Oct 2020 09:35:05 +0300 Subject: [PATCH 13/13] changes from review --- Doc/extending/windows.rst | 18 ++++++++++++------ Doc/whatsnew/3.10.rst | 2 ++ PC/layout/support/constants.py | 8 ++++---- Tools/msi/bundle/bootstrap/pythonba.vcxproj | 4 ++-- Tools/msi/bundle/bundle.wxs | 2 +- Tools/msi/core/core_files.wxs | 8 ++++---- Tools/msi/dev/dev_files.wxs | 4 ++-- Tools/msi/doc/doc.wixproj | 4 ++-- Tools/msi/msi.props | 6 +++--- Tools/msi/tcltk/tcltk_reg.wxs | 6 +++--- Tools/msi/uploadrelease.proj | 2 +- 11 files changed, 36 insertions(+), 28 deletions(-) diff --git a/Doc/extending/windows.rst b/Doc/extending/windows.rst index c7b92c6ea24ca8..c04625bedfb514 100644 --- a/Doc/extending/windows.rst +++ b/Doc/extending/windows.rst @@ -23,9 +23,9 @@ C++. This chapter mentions a number of filenames that include an encoded Python version number. These filenames are represented with the version number shown - as ``XY``; in practice, ``'X'`` will be the major version number and ``'Y'`` + as ``X_Y``; in practice, ``'X'`` will be the major version number and ``'Y'`` will be the minor version number of the Python release you're working with. For - example, if you are using Python 2.2.1, ``XY`` will actually be ``22``. + example, if you are using Python 3.10.1, ``X_Y`` will actually be ``3_10``. .. _win-cookbook: @@ -109,17 +109,23 @@ Windows Python is built in Microsoft Visual C++; using other compilers may or may not work (though Borland seems to). The rest of this section is MSVC++ specific. -When creating DLLs in Windows, you must pass :file:`pythonXY.lib` to the linker. +When creating DLLs in Windows, the linker expects to see the import library +:file:`pythonX_Y.lib` in order to find all the C-API functions available in +:file:`pythonX_Y.dll` (or in the case of universal c-extensions, +:file:`pythonX.lib` and :file:`pythonX.dll` respectively. This is handled with +a pragma in :file:`pyconfig.h` so you do not need to add anything special in +your build. + To build two DLLs, spam and ni (which uses C functions found in spam), you could use these commands:: - cl /LD /I/python/include spam.c ../libs/pythonXY.lib - cl /LD /I/python/include ni.c spam.lib ../libs/pythonXY.lib + cl /LD /I/python/include spam.c + cl /LD /I/python/include ni.c spam.lib The first command created three files: :file:`spam.obj`, :file:`spam.dll` and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find the Python code -thanks to :file:`pythonXY.lib`. +thanks to the pragma and linking to the proper import lib. The second command created :file:`ni.dll` (and :file:`.obj` and :file:`.lib`), which knows how to find the necessary functions from spam, and also from the diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index f6f276a8bfa495..e0f4fb69d5a216 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -93,6 +93,8 @@ Other Language Changes :meth:`~object.__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.) +* The ``nodot`` version number has been changed to ``3_10`` for clarity + (:issue:`40747`) New Modules =========== diff --git a/PC/layout/support/constants.py b/PC/layout/support/constants.py index 6cf0fe1d34c4ac..1341d281d7e131 100644 --- a/PC/layout/support/constants.py +++ b/PC/layout/support/constants.py @@ -32,11 +32,11 @@ def _get_suffix(field4): VER_FIELD3 = VER_MICRO << 8 | VER_FIELD4 VER_DOT = "{}.{}".format(VER_MAJOR, VER_MINOR) -PYTHON_DLL_NAME = "python{}{}.dll".format(VER_MAJOR, VER_MINOR) +PYTHON_DLL_NAME = "python{}_{}.dll".format(VER_MAJOR, VER_MINOR) PYTHON_STABLE_DLL_NAME = "python{}.dll".format(VER_MAJOR) -PYTHON_ZIP_NAME = "python{}{}.zip".format(VER_MAJOR, VER_MINOR) -PYTHON_PTH_NAME = "python{}{}._pth".format(VER_MAJOR, VER_MINOR) +PYTHON_ZIP_NAME = "python{}_{}.zip".format(VER_MAJOR, VER_MINOR) +PYTHON_PTH_NAME = "python{}_{}._pth".format(VER_MAJOR, VER_MINOR) -PYTHON_CHM_NAME = "python{}{}{}{}.chm".format( +PYTHON_CHM_NAME = "python{}_{}{}{}.chm".format( VER_MAJOR, VER_MINOR, VER_MICRO, VER_SUFFIX ) diff --git a/Tools/msi/bundle/bootstrap/pythonba.vcxproj b/Tools/msi/bundle/bootstrap/pythonba.vcxproj index ef71fe7da08d32..1744e2e50e8b6d 100644 --- a/Tools/msi/bundle/bootstrap/pythonba.vcxproj +++ b/Tools/msi/bundle/bootstrap/pythonba.vcxproj @@ -35,7 +35,7 @@ DynamicLibrary Unicode $(PySourcePath)PCbuild\obj\ - $(Py_IntDir)\$(MajorVersionNumber)$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(ProjectName)\ + $(Py_IntDir)\$(MajorVersionNumber)_$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(ProjectName)\ $(IntDir.Replace(`\\`, `\`)) $(IntDir) @@ -73,4 +73,4 @@ - \ No newline at end of file + diff --git a/Tools/msi/bundle/bundle.wxs b/Tools/msi/bundle/bundle.wxs index ddd6870f625526..568a44e872e1f7 100644 --- a/Tools/msi/bundle/bundle.wxs +++ b/Tools/msi/bundle/bundle.wxs @@ -24,7 +24,7 @@ - + diff --git a/Tools/msi/core/core_files.wxs b/Tools/msi/core/core_files.wxs index 145e1471247aa1..106802b2fb5342 100644 --- a/Tools/msi/core/core_files.wxs +++ b/Tools/msi/core/core_files.wxs @@ -6,14 +6,14 @@ - + - + @@ -23,8 +23,8 @@ - - + + diff --git a/Tools/msi/dev/dev_files.wxs b/Tools/msi/dev/dev_files.wxs index 21f9c848cc6be5..ed49c416e27f60 100644 --- a/Tools/msi/dev/dev_files.wxs +++ b/Tools/msi/dev/dev_files.wxs @@ -14,7 +14,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/Tools/msi/doc/doc.wixproj b/Tools/msi/doc/doc.wixproj index ea9929acd05ff7..97d8127b88d19a 100644 --- a/Tools/msi/doc/doc.wixproj +++ b/Tools/msi/doc/doc.wixproj @@ -10,7 +10,7 @@ - python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm + python$(MajorVersionNumber)_$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm false true @@ -27,4 +27,4 @@ - \ No newline at end of file + diff --git a/Tools/msi/msi.props b/Tools/msi/msi.props index 3f14501446a15a..12120a6f8bda97 100644 --- a/Tools/msi/msi.props +++ b/Tools/msi/msi.props @@ -48,7 +48,7 @@ - $(Py_IntDir)\$(MajorVersionNumber)$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(OutputName) + $(Py_IntDir)\$(MajorVersionNumber)_$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(OutputName) $(IntermediateOutputPath)_$(OutputSuffix) $(BuildPath) $(OutputPath)\ @@ -57,7 +57,7 @@ $(ExternalsDir)\windows-installer\redist-1\$(Platform) $([System.IO.Path]::GetFullPath($(CRTRedist))) $(tcltkDir)lib - python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm + python$(MajorVersionNumber)_$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm $(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0 @@ -184,4 +184,4 @@ $(DefineConstants);@(_UuidValue,';'); - \ No newline at end of file + diff --git a/Tools/msi/tcltk/tcltk_reg.wxs b/Tools/msi/tcltk/tcltk_reg.wxs index 2778bcc80669b6..85361b47cab007 100644 --- a/Tools/msi/tcltk/tcltk_reg.wxs +++ b/Tools/msi/tcltk/tcltk_reg.wxs @@ -16,7 +16,7 @@ VersionNT > 600 - + @@ -31,14 +31,14 @@ VersionNT = 600 - + VersionNT = 600 - + diff --git a/Tools/msi/uploadrelease.proj b/Tools/msi/uploadrelease.proj index e70ae1de22fa78..17cfe7f803c9a7 100644 --- a/Tools/msi/uploadrelease.proj +++ b/Tools/msi/uploadrelease.proj @@ -27,7 +27,7 @@ $(EXETarget) - + $(EXETarget)