diff --git a/.azure-pipelines/windows-release/stage-build.yml b/.azure-pipelines/windows-release/stage-build.yml
index 9391a91e30b5e6..69f3b1e16451ec 100644
--- a/.azure-pipelines/windows-release/stage-build.yml
+++ b/.azure-pipelines/windows-release/stage-build.yml
@@ -3,7 +3,7 @@ jobs:
displayName: Docs build
pool:
name: 'Windows Release'
- #vmName: win2016-vs2017
+ #vmImage: windows-2019
workspace:
clean: all
@@ -45,7 +45,7 @@ jobs:
displayName: Python build
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
@@ -91,7 +91,7 @@ jobs:
condition: and(succeeded(), ne(variables['DoPGO'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
@@ -141,7 +141,7 @@ jobs:
displayName: Publish Tcl/Tk Library
pool:
- vmName: windows-latest
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-layout-embed.yml b/.azure-pipelines/windows-release/stage-layout-embed.yml
index 3306e1cbc49d98..dbccdead143b21 100644
--- a/.azure-pipelines/windows-release/stage-layout-embed.yml
+++ b/.azure-pipelines/windows-release/stage-layout-embed.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoEmbed'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-layout-full.yml b/.azure-pipelines/windows-release/stage-layout-full.yml
index 78bc1b3975e93d..8fc8da3e52fe03 100644
--- a/.azure-pipelines/windows-release/stage-layout-full.yml
+++ b/.azure-pipelines/windows-release/stage-layout-full.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoLayout'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-layout-msix.yml b/.azure-pipelines/windows-release/stage-layout-msix.yml
index 60a5c9ea5435c8..def4f7d3c6bee5 100644
--- a/.azure-pipelines/windows-release/stage-layout-msix.yml
+++ b/.azure-pipelines/windows-release/stage-layout-msix.yml
@@ -3,7 +3,7 @@ jobs:
displayName: Make MSIX layout
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-layout-nuget.yml b/.azure-pipelines/windows-release/stage-layout-nuget.yml
index 7e20f89530349c..41cdff850e83be 100644
--- a/.azure-pipelines/windows-release/stage-layout-nuget.yml
+++ b/.azure-pipelines/windows-release/stage-layout-nuget.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-msi.yml b/.azure-pipelines/windows-release/stage-msi.yml
index 7afc816a0c6e9c..9b965b09c14748 100644
--- a/.azure-pipelines/windows-release/stage-msi.yml
+++ b/.azure-pipelines/windows-release/stage-msi.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), not(variables['SigningCertificate']))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
variables:
ReleaseUri: http://www.python.org/{arch}
diff --git a/.azure-pipelines/windows-release/stage-pack-msix.yml b/.azure-pipelines/windows-release/stage-pack-msix.yml
index f17ba9628e21b0..07e343a0b4e0c7 100644
--- a/.azure-pipelines/windows-release/stage-pack-msix.yml
+++ b/.azure-pipelines/windows-release/stage-pack-msix.yml
@@ -3,7 +3,7 @@ jobs:
displayName: Pack MSIX bundles
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-pack-nuget.yml b/.azure-pipelines/windows-release/stage-pack-nuget.yml
index 34619fc5fdc318..b100364820d95b 100644
--- a/.azure-pipelines/windows-release/stage-pack-nuget.yml
+++ b/.azure-pipelines/windows-release/stage-pack-nuget.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
index b78bd493a0fd1b..d5edf44ef5c2ec 100644
--- a/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
+++ b/.azure-pipelines/windows-release/stage-publish-nugetorg.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
index 8c95f1b950cd75..b4710d8c248e23 100644
--- a/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
+++ b/.azure-pipelines/windows-release/stage-publish-pythonorg.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), and(eq(variables['DoMSI'], 'true'), eq(variables['DoEmbed'], 'true')))
pool:
- #vmName: win2016-vs2017
+ #vmImage: windows-2019
name: 'Windows Release'
workspace:
diff --git a/.azure-pipelines/windows-release/stage-publish-store.yml b/.azure-pipelines/windows-release/stage-publish-store.yml
index b22147b1ab45e7..e0512b95f27da8 100644
--- a/.azure-pipelines/windows-release/stage-publish-store.yml
+++ b/.azure-pipelines/windows-release/stage-publish-store.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoMSIX'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-sign.yml b/.azure-pipelines/windows-release/stage-sign.yml
index a0adc0581229d9..4d757ae8fca032 100644
--- a/.azure-pipelines/windows-release/stage-sign.yml
+++ b/.azure-pipelines/windows-release/stage-sign.yml
@@ -114,7 +114,7 @@ jobs:
condition: and(succeeded(), not(variables['SigningCertificate']))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
steps:
- checkout: none
diff --git a/.azure-pipelines/windows-release/stage-test-embed.yml b/.azure-pipelines/windows-release/stage-test-embed.yml
index b33176266a20da..d99bd74722bacb 100644
--- a/.azure-pipelines/windows-release/stage-test-embed.yml
+++ b/.azure-pipelines/windows-release/stage-test-embed.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoEmbed'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-test-msi.yml b/.azure-pipelines/windows-release/stage-test-msi.yml
index 27b0c96987a7a0..21e38c39590f70 100644
--- a/.azure-pipelines/windows-release/stage-test-msi.yml
+++ b/.azure-pipelines/windows-release/stage-test-msi.yml
@@ -3,7 +3,7 @@ jobs:
displayName: Test MSI
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/.azure-pipelines/windows-release/stage-test-nuget.yml b/.azure-pipelines/windows-release/stage-test-nuget.yml
index 1f8b601d0d023b..94d815e95226ef 100644
--- a/.azure-pipelines/windows-release/stage-test-nuget.yml
+++ b/.azure-pipelines/windows-release/stage-test-nuget.yml
@@ -4,7 +4,7 @@ jobs:
condition: and(succeeded(), eq(variables['DoNuget'], 'true'))
pool:
- vmName: win2016-vs2017
+ vmImage: windows-2019
workspace:
clean: all
diff --git a/Misc/NEWS.d/next/Windows/2020-02-28-22-46-09.bpo-39789.67XRoP.rst b/Misc/NEWS.d/next/Windows/2020-02-28-22-46-09.bpo-39789.67XRoP.rst
new file mode 100644
index 00000000000000..077b0afcba3c10
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2020-02-28-22-46-09.bpo-39789.67XRoP.rst
@@ -0,0 +1 @@
+Update Windows release build machines to Visual Studio 2019 (MSVC 14.2).
diff --git a/PC/layout/support/nuspec.py b/PC/layout/support/nuspec.py
index 9c6a9a91595098..dbcb713ef9d0c0 100644
--- a/PC/layout/support/nuspec.py
+++ b/PC/layout/support/nuspec.py
@@ -14,7 +14,7 @@
NUSPEC_DATA = {
"PYTHON_TAG": VER_DOT,
"PYTHON_VERSION": os.getenv("PYTHON_NUSPEC_VERSION"),
- "FILELIST": r' ',
+ "FILELIST": r' ',
"GIT": sys._git,
}
@@ -31,7 +31,7 @@
VER_DOT, VER_MICRO, "-" if VER_SUFFIX else "", VER_SUFFIX
)
-FILELIST_WITH_PROPS = r"""
+FILELIST_WITH_PROPS = r"""
"""
NUSPEC_TEMPLATE = r"""
@@ -44,13 +44,13 @@
tools\LICENSE.txt
https://www.python.org/
Installs {PYTHON_BITNESS} Python for use in build scenarios.
- images\logox128.png
+ images\python.png
https://www.python.org/static/favicon.ico
python
-
+
{FILELIST}
@@ -73,6 +73,6 @@ def get_nuspec_layout(ns):
data[k] = v
if ns.include_all or ns.include_props:
data["FILELIST"] = FILELIST_WITH_PROPS
- data["LOGO"] = ns.source / "PC" / "icons" / "logox128.png"
nuspec = NUSPEC_TEMPLATE.format_map(data)
yield "python.nuspec", ("python.nuspec", nuspec.encode("utf-8"))
+ yield "python.png", ns.source / "PC" / "icons" / "logox128.png"
diff --git a/Tools/nuget/make_pkg.proj b/Tools/nuget/make_pkg.proj
index b387b8eef5423c..710ef3dcb5c01d 100644
--- a/Tools/nuget/make_pkg.proj
+++ b/Tools/nuget/make_pkg.proj
@@ -33,7 +33,7 @@
"$(IntermediateOutputPath)pkg\pip.exe" -B -m pip install -U $(Packages)
- "$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).nuspec" -BasePath "$(IntermediateOutputPath)pkg"
+ "$(Nuget)" pack "$(IntermediateOutputPath)pkg\python.nuspec" -BasePath "$(IntermediateOutputPath)pkg"
"$(Nuget)" pack "$(MSBuildThisFileDirectory)\$(OutputName).symbols.nuspec" -BasePath "$(BuildPath.TrimEnd(`\`))"
$(NugetArguments) -OutputDirectory "$(OutputPath.Trim(`\`))"
$(NugetArguments) -Version "$(NuspecVersion)"