Drop support for Visual Studio 2017?

Microsoft is dropping “vs2017-win2016” from their hosted pipelines for Azure Pipelines. An attempt to use it to test elastix produced the following error message:

##[error]This is a scheduled windows-2016 brownout. The windows-2016 environment is deprecated and will be removed on April 1st, 2022. For more details, see Windows-2016 environment removal postponed until April 1st, 2022 · Issue #5238 · actions/virtual-environments · GitHub
,##[error]The remote provider was unable to process the request.

It was suggested to use windows-latest, windows-2022, or windows-2019, instead, but they don’t have Visual Studio 2017 installed anymore.

Would it be OK for ITK to then also drop VS2017 support?

Related to ITK/SupportedCompilers.md at 4e812d60743a3ed7c09647e7f3f0e8498583c2da · InsightSoftwareConsortium/ITK · GitHub
and

1 Like

Microsoft Visual Studio 2017 is still the compiler for Python 3.7-3.10.
https://pythondev.readthedocs.io/windows.html#python-and-visual-studio-version-matrix

However this is not a good way to refer and document the required version because there is the name of the Visual Studio GUI/Application, and the version of the compiler toolset. New version of the MSVC application support and contain the compiler toolset from MSVC 2017.

This can be configured with CMake with something like:

          CTEST_CMAKE_GENERATOR: "Visual Studio 16 2019"
          CTEST_CMAKE_GENERATOR_TOOLSET: v141,host=x64

But they do contain the VS2017 compiler toolset, which can be configured as above.

2 Likes

We’re having that discussion over on Numpy at the moment, and we’re
enabling the 2017 (141) toolchain using the 2019 image:

More discussion on Conda-Forge:

3 Likes

Thanks @blowekamp but does that mean that ITK still needs to be built with the VS2017 toolset, v141? Would that be necessary for SimpleITK?

wiki.python.org - Which Microsoft Visual C++ compiler to use with a specific Python version suggests that any 14.X compiler should be fine for CPython 3.5 - 3.10. Right?

While v141 toolset is desirable and maybe required, we can use v142 and VS2019 for CI builds and tests. I suggest we do that. I assume it is best to go from windows-2016 to windows-2022?

1 Like

We have released SimpleITK 2.2rc1, rc2 build with v141, and plan to release and maintain SimpleITK 2.2 with v141.

Yes, v142+ would likely work, but there may be some undetected bugs or other issues that would need to be addressed if changed.

1 Like