Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bpo-40747: Make py_version_nodot 3_10 not 310 #20333

Closed
wants to merge 14 commits into from
Closed
18 changes: 12 additions & 6 deletions Doc/extending/windows.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions Doc/whatsnew/3.10.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
===========
Expand Down
2 changes: 1 addition & 1 deletion Lib/distutils/command/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion Lib/site.py
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ def _get_path(userbase):
version = sys.version_info

if os.name == 'nt':
ver_nodot = sys.winver.replace('.', '')
ver_nodot = sys.winver.replace('.', '_')
return f'{userbase}\\Python{ver_nodot}\\site-packages'

if sys.platform == 'darwin' and sys._framework:
Expand Down
4 changes: 2 additions & 2 deletions Lib/sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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'] = ''

Expand Down
4 changes: 2 additions & 2 deletions Lib/test/test_embed.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
7 changes: 7 additions & 0 deletions Lib/test/test_sysconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,13 @@ 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:
soabi_pyver = soabi.split('-')[1]
self.assertTrue(soabi_pyver.startswith(pynodot))

class MakefileTests(unittest.TestCase):

@unittest.skipIf(sys.platform.startswith('win'),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The PEP 425 python tag, taken from ``py_version_nodot``, adds a ``_`` so ``cp310`` is now ``cp3_10``.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The PEP 425 python tag, taken from ``py_version_nodot``, adds a ``_`` so ``cp310`` is now ``cp3_10``.
The PEP 425 python tag, taken from ``py_version_nodot``, adds a ``_`` so ``cp310`` is now ``cp3_10``.
Patch by Matti Picus.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of the other blurbs in that directory have a contributor name.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That doesn't mean the other news entries are wrong. 😉 (And this is coming from the person who created this workflow, so I can say with certainty you can put your name in the news entry.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer not to, but won't stop you from commiting the change.

4 changes: 2 additions & 2 deletions PC/bdist_wininst/install.c
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will cause us to have to manually rebuild and commit wininst-...exe in Lib/distutils/command, and just glancing at the code I can see in the PR this appears to have a list of Python installs, so we may need logic here to only insert the underscore for 3.10 and later (or we can get PEP 632 approved and then ignore this file completely)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even if PEP 632 to remove distutils is approved, these changes will need to be reflected in pypa/setuptools' copy of distutils, or did they drop bdist_wininst ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Question for @jaraco, but hopefully they dropped it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thusfar, it only raises a DeprecationWarning (aka not a user-visible warning), so may need some care to disable it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's fine to merge with or without this change, and we'll just track the distutils breakage as a new bug. Don't hold up this PR on it.

py_major, py_minor);
#endif
}
Expand Down
8 changes: 4 additions & 4 deletions PC/layout/support/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
4 changes: 2 additions & 2 deletions PC/pyconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down
2 changes: 1 addition & 1 deletion PCbuild/pcbuild.proj
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
</Projects2>
</ItemDefinitionGroup>
<ItemGroup>
<!-- pythonXY.dll -->
<!-- pythonX_Y.dll -->
<!--
Parallel build is explicitly disabled for this project because it
causes many conflicts between pythoncore and projects that depend
Expand Down
12 changes: 6 additions & 6 deletions PCbuild/python.props
Original file line number Diff line number Diff line change
Expand Up @@ -201,16 +201,16 @@
))</Field3Value>
<Field3Value Condition="$(UseTestMarker) == 'true'">$([msbuild]::Add($(Field3Value), 9000))</Field3Value>

<!-- The name of the resulting pythonXY.dll (without the extension) -->
<PyDllName>python$(MajorVersionNumber)$(MinorVersionNumber)$(PyDebugExt)</PyDllName>
<!-- The name of the resulting pythonX_Y.dll (without the extension) -->
<PyDllName>python$(MajorVersionNumber)_$(MinorVersionNumber)$(PyDebugExt)</PyDllName>
zooba marked this conversation as resolved.
Show resolved Hide resolved
<!-- The name of the resulting pythonX.dll (without the extension) -->
<Py3DllName>python3$(PyDebugExt)</Py3DllName>

<!-- The version and platform tag to include in .pyd filenames -->
<PydTag Condition="$(ArchName) == 'win32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win32</PydTag>
<PydTag Condition="$(ArchName) == 'arm32'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm32</PydTag>
<PydTag Condition="$(ArchName) == 'arm64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_arm64</PydTag>
<PydTag Condition="$(ArchName) == 'amd64'">.cp$(MajorVersionNumber)$(MinorVersionNumber)-win_amd64</PydTag>
<PydTag Condition="$(ArchName) == 'win32'">.cp$(MajorVersionNumber)_$(MinorVersionNumber)-win32</PydTag>
<PydTag Condition="$(ArchName) == 'arm32'">.cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_arm32</PydTag>
<PydTag Condition="$(ArchName) == 'arm64'">.cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_arm64</PydTag>
<PydTag Condition="$(ArchName) == 'amd64'">.cp$(MajorVersionNumber)_$(MinorVersionNumber)-win_amd64</PydTag>

<!-- The version number for sys.winver -->
<SysWinVer>$(MajorVersionNumber).$(MinorVersionNumber)$(PyArchExt)$(PyTestExt)</SysWinVer>
Expand Down
4 changes: 2 additions & 2 deletions Tools/msi/bundle/bootstrap/pythonba.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<Py_IntDir Condition="'$(Py_IntDir)' == ''">$(PySourcePath)PCbuild\obj\</Py_IntDir>
<IntDir>$(Py_IntDir)\$(MajorVersionNumber)$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(ProjectName)\</IntDir>
<IntDir>$(Py_IntDir)\$(MajorVersionNumber)_$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(ProjectName)\</IntDir>
<IntDir>$(IntDir.Replace(`\\`, `\`))</IntDir>
<OutDir>$(IntDir)</OutDir>
</PropertyGroup>
Expand Down Expand Up @@ -73,4 +73,4 @@
<None Include="pythonba.def" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
</Project>
2 changes: 1 addition & 1 deletion Tools/msi/bundle/bundle.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<Variable Name="ShortVersion" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)" />
<Variable Name="ShortVersionNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)" />
<Variable Name="WinVer" Value="$(var.MajorVersionNumber).$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
<Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />
<Variable Name="WinVerNoDot" Value="$(var.MajorVersionNumber)_$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)" />

<Variable Name="InstallAllUsers" Value="0" bal:Overridable="yes" />
<?if "$(var.PyTestExt)"="" ?>
Expand Down
8 changes: 4 additions & 4 deletions Tools/msi/core/core_files.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
<File Id="python_stable.dll" Name="python$(var.MajorVersionNumber).dll" KeyPath="yes" />
</Component>
<Component Id="python.dll" Directory="InstallDirectory" Guid="*">
<File Id="python.dll" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber).dll" KeyPath="yes" />
<File Id="python.dll" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber).dll" KeyPath="yes" />
</Component>
</ComponentGroup>
</Fragment>
<Fragment>
<ComponentGroup Id="core_symbols">
<Component Id="python.pdb" Directory="InstallDirectory" Guid="*">
<File Id="python.pdb" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber).pdb" KeyPath="yes" />
<File Id="python.pdb" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber).pdb" KeyPath="yes" />
</Component>
</ComponentGroup>
</Fragment>
Expand All @@ -23,8 +23,8 @@
<File Id="python_stable_d.dll" Name="python$(var.MajorVersionNumber)_d.dll" KeyPath="yes" />
</Component>
<Component Id="python_d.dll" Directory="InstallDirectory" Guid="*">
<File Id="python_d.dll" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)_d.dll" KeyPath="yes" />
<File Id="python_d.pdb" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)_d.pdb" KeyPath="no" />
<File Id="python_d.dll" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber)_d.dll" KeyPath="yes" />
<File Id="python_d.pdb" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber)_d.pdb" KeyPath="no" />
</Component>
</ComponentGroup>
</Fragment>
Expand Down
4 changes: 2 additions & 2 deletions Tools/msi/dev/dev_files.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<File Id="libs_python_stable.lib" Name="python$(var.MajorVersionNumber).lib" KeyPath="yes" />
</Component>
<Component Id="libs_python.lib" Directory="libs" Guid="*">
<File Id="libs_python.lib" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber).lib" KeyPath="yes" />
<File Id="libs_python.lib" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber).lib" KeyPath="yes" />
</Component>
</ComponentGroup>
</Fragment>
Expand All @@ -25,7 +25,7 @@
<File Id="libs_python_stable_d.lib" Name="python$(var.MajorVersionNumber)_d.lib" />
</Component>
<Component Id="libs_python_d.lib" Directory="libs" Guid="*">
<File Id="libs_python_d.lib" Name="python$(var.MajorVersionNumber)$(var.MinorVersionNumber)_d.lib" />
<File Id="libs_python_d.lib" Name="python$(var.MajorVersionNumber)_$(var.MinorVersionNumber)_d.lib" />
</Component>
</ComponentGroup>
</Fragment>
Expand Down
4 changes: 2 additions & 2 deletions Tools/msi/doc/doc.wixproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
</PropertyGroup>
<Import Project="..\msi.props" />
<PropertyGroup>
<DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
<DocFilename>python$(MajorVersionNumber)_$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably separate the minor and micro version of the doc filename too - python3_10_0.chm rather than python3_100.chm. The actual change ought to be somewhere under Doc, IIRC.

<IncludeDocFile>false</IncludeDocFile>
<IncludeDocFile Condition="$(BuildForRelease) or Exists('$(PySourcePath)Doc\build\htmlhelp\$(DocFilename)')">true</IncludeDocFile>
</PropertyGroup>
Expand All @@ -27,4 +27,4 @@
</ItemGroup>

<Import Project="..\msi.targets" />
</Project>
</Project>
6 changes: 3 additions & 3 deletions Tools/msi/msi.props
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
</ItemGroup>

<PropertyGroup>
<IntermediateOutputPath>$(Py_IntDir)\$(MajorVersionNumber)$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(OutputName)</IntermediateOutputPath>
<IntermediateOutputPath>$(Py_IntDir)\$(MajorVersionNumber)_$(MinorVersionNumber)$(ArchName)_$(Configuration)\msi_$(OutputName)</IntermediateOutputPath>
<IntermediateOutputPath Condition="'$(OutputSuffix)' != ''">$(IntermediateOutputPath)_$(OutputSuffix)</IntermediateOutputPath>
<OutputPath Condition="'$(OutputPath)' == ''">$(BuildPath)</OutputPath>
<OutputPath Condition="!HasTrailingSlash($(OutputPath))">$(OutputPath)\</OutputPath>
Expand All @@ -57,7 +57,7 @@
<CRTRedist Condition="'$(CRTRedist)' == ''">$(ExternalsDir)\windows-installer\redist-1\$(Platform)</CRTRedist>
<CRTRedist>$([System.IO.Path]::GetFullPath($(CRTRedist)))</CRTRedist>
<TclTkLibraryDir Condition="$(TclTkLibraryDir) == ''">$(tcltkDir)lib</TclTkLibraryDir>
<DocFilename>python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>
<DocFilename>python$(MajorVersionNumber)_$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm</DocFilename>

<InstallerVersion>$(MajorVersionNumber).$(MinorVersionNumber).$(Field3Value).0</InstallerVersion>
</PropertyGroup>
Expand Down Expand Up @@ -184,4 +184,4 @@
<DefineConstants>$(DefineConstants);@(_UuidValue,';');</DefineConstants>
</PropertyGroup>
</Target>
</Project>
</Project>
6 changes: 3 additions & 3 deletions Tools/msi/tcltk/tcltk_reg.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

<Component Id="assoc_editwithidle" Directory="InstallDirectory">
<Condition>VersionNT > 600</Condition>
<RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle\shell\edit$(var.MajorVersionNumber)_$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryValue Name="MUIVerb" Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey>
Expand All @@ -31,14 +31,14 @@

<Component Id="assoc_editwithidle_vista" Directory="InstallDirectory">
<Condition>VersionNT = 600</Condition>
<RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryKey Root="HKCR" Key="Python.File\Shell\editwithidle$(var.MajorVersionNumber)_$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey>
</Component>
<Component Id="assoc_editwithidle_nocon_vista" Directory="InstallDirectory">
<Condition>VersionNT = 600</Condition>
<RegistryKey Root="HKCR" Key="Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryKey Root="HKCR" Key="Python.NoConFile\Shell\editwithidle$(var.MajorVersionNumber)_$(var.MinorVersionNumber)$(var.PyArchExt)$(var.PyTestExt)">
<RegistryValue Value="!(loc.EditSubMenu)" Type="string" KeyPath="yes" />
<RegistryValue Key="command" Value='"[PYTHONW_EXE]" -m idlelib "%L" %*' Type="string" />
</RegistryKey>
Expand Down
2 changes: 1 addition & 1 deletion Tools/msi/uploadrelease.proj
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
<File Include="$(OutputPath)\*.exe;$(OutputPath)\*.zip">
<CopyTo>$(EXETarget)</CopyTo>
</File>
<File Include="$(PySourcePath)Doc\build\htmlhelp\python$(MajorVersionNumber)$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm" Condition="$(IncludeDoc)">
<File Include="$(PySourcePath)Doc\build\htmlhelp\python$(MajorVersionNumber)_$(MinorVersionNumber)$(MicroVersionNumber)$(ReleaseLevelName).chm" Condition="$(IncludeDoc)">
<CopyTo>$(EXETarget)</CopyTo>
</File>
</ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -15299,15 +15299,15 @@ $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; }

# 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

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}"
Expand Down
Loading