conda-forge / onnxruntime-feedstock

A conda-smithy repository for onnxruntime.
BSD 3-Clause "New" or "Revised" License
1 stars 19 forks source link

Add Windows support #56

Closed traversaro closed 1 year ago

traversaro commented 1 year ago

Based on https://github.com/conda-forge/onnxruntime-feedstock/pull/10 .

Main important things to know:

Checklist

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

traversaro commented 1 year ago

I don't have much experience packaging for Windows but maybe we can try to get things to build without the tests first?

Good point, I kind of left this in an incomplete state, as I think before going for Windows probably it could make sense to go for de-venderoing, that should simplify also the Windows build: https://github.com/conda-forge/onnxruntime-feedstock/issues/57 .

traversaro commented 1 year ago

I don't have much experience packaging for Windows but maybe we can try to get things to build without the tests first?

Good point, I kind of left this in an incomplete state, as I think before going for Windows probably it could make sense to go for de-venderoing, that should simplify also the Windows build: #57 .

Ahs sorry, I did not see your comment there.

cbourjau commented 1 year ago

@traversaro are there any updates or do you have open questions? I think supporting Windows would be very nice!

traversaro commented 1 year ago

@traversaro are there any updates or do you have open questions? I think supporting Windows would be very nice!

Sorry for the radio silence, see https://github.com/conda-forge/onnxruntime-feedstock/issues/57#issuecomment-1584673660 for more context. I plan to work on this in the near future.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

traversaro commented 1 year ago

Cool, Windows fails with:

2023-06-09T16:46:05.6721585Z %SRC_DIR%\onnxruntime\test\contrib_ops\longformer_attention_op_test.cc : fatal error C1085: Cannot write compiler generated file: '%SRC_DIR%\build-ci\Release\CMakeFiles\onnxruntime_test_all.dir\D_\bld\onnxruntime_1686326253701\work\onnxruntime\test\contrib_ops\longformer_attention_op_test.cc.obj': No space left on device

While I could disable tests to save some space, let me check if there is some other way.

traversaro commented 1 year ago

Cool, Windows fails with:

2023-06-09T16:46:05.6721585Z %SRC_DIR%\onnxruntime\test\contrib_ops\longformer_attention_op_test.cc : fatal error C1085: Cannot write compiler generated file: '%SRC_DIR%\build-ci\Release\CMakeFiles\onnxruntime_test_all.dir\D_\bld\onnxruntime_1686326253701\work\onnxruntime\test\contrib_ops\longformer_attention_op_test.cc.obj': No space left on device

While I could disable tests to save some space, let me check if there is some other way.

I tried with https://github.com/conda-forge/onnxruntime-feedstock/pull/56/commits/b4a85b31f3732be3a7e566f7772411684931914c .

traversaro commented 1 year ago

@conda-forge-admin, please rerender

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.

Here's what I've got...

For recipe:

traversaro commented 1 year ago

While debugging locally, I found quite a tricky problem. By default the onnxruntime build a onnxruntime.dll file. If I try to compile the test against it, I get the error:

(onnxtest) C:\src\onnxruntime-feedstock\recipe>.\test.exe
The given version [15] is not supported, only version 1 to 7 is supported in this build.

Why this happens? Basically because apparently Windows ships a onnxruntime.dll file in C:\Windows\system32\onnxruntime.dll, and according to .dll search order in Windows ( https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order ) anything that is found in C:\Windows\system32 has a higher priority w.r.t. to anything found in the PATH . See https://github.com/microsoft/onnxruntime/issues/11230 for more details.

To avoid this issue, probably we should rename onnxruntime.dll to onnxruntime_conda.dll, as done in the past for other packages such as qt-main. The main problem of this approach is that at the moment onnxruntime does not ship any .pc pkg-config file or onnxruntime-config.cmake CMake config files, so basically this name difference needs to be accounted for in downstream build systems.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you but ran into some issues. Please check the output logs of the latest rerendering GitHub actions workflow run for errors. You can also ping conda-forge/core for further assistance or try re-rendering locally.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/onnxruntime-feedstock/actions/runs/5234695625.

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you but ran into some issues. Please check the output logs of the latest rerendering GitHub actions workflow run for errors. You can also ping conda-forge/core for further assistance or try re-rendering locally.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/onnxruntime-feedstock/actions/runs/5234710097.

traversaro commented 1 year ago

We are almost there:

2023-06-11T10:39:23.5680489Z [1133/1142] Linking CXX executable onnxruntime_test_all.exe
2023-06-11T10:39:23.5680829Z FAILED: onnxruntime_test_all.exe 
2023-06-11T10:39:23.5694971Z cmd.exe /C "cmd.exe /C "cd /D %SRC_DIR%\build-ci\Release && %BUILD_PREFIX%\Library\bin\cmake.exe -E copy_directory C:/bld/onnxruntime-novec_1686477126258/work/onnxruntime/test/testdata C:/bld/onnxruntime-novec_1686477126258/work/build-ci/Release/testdata && cd /D %SRC_DIR%\build-ci\Release && %BUILD_PREFIX%\Library\bin\cmake.exe -E copy_directory C:/bld/onnxruntime-novec_1686477126258/work/samples C:/bld/onnxruntime-novec_1686477126258/work/build-ci/Release/samples && cd %SRC_DIR%\build-ci\Release" && %BUILD_PREFIX%\Library\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\onnxruntime_test_all.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\link.exe /nologo @CMakeFiles\onnxruntime_test_all.rsp  /out:onnxruntime_test_all.exe /implib:onnxruntime_test_all.lib /pdb:onnxruntime_test_all.pdb /version:0.0 /machine:x64 /DYNAMICBASE /guard:cf /INCREMENTAL:NO /OPT:REF,ICF,LBR /INCREMENTAL:NO /LTCG /subsystem:console  /CETCOMPAT /INCREMENTAL:NO /LTCG  && cd ."
2023-06-11T10:39:23.7336562Z LINK: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\link.exe /nologo @CMakeFiles\onnxruntime_test_all.rsp /out:onnxruntime_test_all.exe /implib:onnxruntime_test_all.lib /pdb:onnxruntime_test_all.pdb /version:0.0 /machine:x64 /DYNAMICBASE /guard:cf /INCREMENTAL:NO /OPT:REF,ICF,LBR /INCREMENTAL:NO /LTCG /subsystem:console /CETCOMPAT /INCREMENTAL:NO /LTCG /MANIFEST /MANIFESTFILE:onnxruntime_test_all.exe.manifest" failed (exit code 1257) with the following output:
2023-06-11T10:39:23.7338635Z LINK : warning LNK4044: unrecognized option '/lpthreads'; ignored
2023-06-11T10:39:23.7339557Z 
2023-06-11T10:39:23.7339557Z 
2023-06-11T10:39:23.7340056Z fatal error C1002: compiler is out of heap space in pass 2
2023-06-11T10:39:23.7340408Z 
2023-06-11T10:39:23.7341366Z LINK : fatal error LNK1257: code generation failed
2023-06-11T10:39:23.7341752Z 

The compiler is out of heap space, so probably we need to reduce the number of concurrent threads.

traversaro commented 1 year ago

To avoid this issue, probably we should rename onnxruntime.dll to onnxruntime_conda.dll, as done in the past for other packages such as qt-main. The main problem of this approach is that at the moment onnxruntime does not ship any .pc pkg-config file or onnxruntime-config.cmake CMake config files, so basically this name difference needs to be accounted for in downstream build systems.

I implement this solution with patch https://github.com/conda-forge/onnxruntime-feedstock/pull/56/commits/4a0891471b79e05bd754f0b3f60bf41cb7abdb03 . Linking with onnxruntime on Windows requires using (or searching for in the CMake case, see for example https://github.com/ami-iit/bipedal-locomotion-framework/pull/686) the name onnxruntime_conda. This problem will be mitigated once onnxruntime provides .pc pkg-config files or CMake's onnxruntime-config.cmake file, see for example https://github.com/microsoft/onnxruntime/pull/8919, as in that case downstream projects would simply link onnxruntime::onnxruntime.

traversaro commented 1 year ago

Once/if the CI is happy/green, the PR is ready for review.

traversaro commented 1 year ago

Even with parallel 1, the win win_64_python3.10.____cpythonsuffix build takes the same time and still fails with compiler is out of heap space in pass 2, so I suspect the parallel option is not correctly transmitted. I just tried locally and that seems the case.

traversaro commented 1 year ago

Even with parallel 1, the win win_64_python3.10.____cpythonsuffix build takes the same time and still fails with compiler is out of heap space in pass 2, so I suspect the parallel option is not correctly transmitted. I just tried locally and that seems the case.

Fixed in https://github.com/microsoft/onnxruntime/pull/16319 and backported to the PR.

traversaro commented 1 year ago

For some reason now Python is out of memory:

2023-06-12T08:40:50.5210171Z %SRC_DIR%\build-ci\Release\_deps\onnx-src\onnx/version_converter/adapters/pad_10_11.h(37): note: see reference to function template instantiation '_Ty &std::vector<_Ty,std::allocator<_Ty>>::emplace_back<const double&>(const double &)' being compiled
2023-06-12T08:40:50.5210565Z         with
2023-06-12T08:40:50.5210716Z         [
2023-06-12T08:40:50.5210919Z             _Ty=float
2023-06-12T08:40:50.5211080Z         ]
2023-06-12T08:40:50.5215487Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\xmemory(681): warning C4244: 'initializing': conversion from '_Ty' to '_Objty', possible loss of data
2023-06-12T08:40:50.5215997Z         with
2023-06-12T08:40:50.5216221Z         [
2023-06-12T08:40:50.5216372Z             _Ty=int
2023-06-12T08:40:50.5216572Z         ]
2023-06-12T08:40:50.5216720Z         and
2023-06-12T08:40:50.5216913Z         [
2023-06-12T08:40:50.5217068Z             _Objty=float
2023-06-12T08:40:50.5217269Z         ]
2023-06-12T08:40:50.5220031Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(708): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,int>(_Alloc &,_Objty *const ,int &&)' being compiled
2023-06-12T08:40:50.5220836Z         with
2023-06-12T08:40:50.5221155Z         [
2023-06-12T08:40:50.5221359Z             _Alloc=std::allocator<float>,
2023-06-12T08:40:50.5221605Z             _Ty=float,
2023-06-12T08:40:50.5221777Z             _Objty=float
2023-06-12T08:40:50.5221976Z         ]
2023-06-12T08:40:50.5222615Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(713): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,int>(_Alloc &,_Objty *const ,int &&)' being compiled
2023-06-12T08:40:50.5223033Z         with
2023-06-12T08:40:50.5223229Z         [
2023-06-12T08:40:50.5223404Z             _Alloc=std::allocator<float>,
2023-06-12T08:40:50.5223632Z             _Ty=float,
2023-06-12T08:40:50.5223799Z             _Objty=float
2023-06-12T08:40:50.5223993Z         ]
2023-06-12T08:40:50.5224608Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(726): note: see reference to function template instantiation '_Ty &std::vector<_Ty,std::allocator<_Ty>>::_Emplace_back_with_unused_capacity<int>(int &&)' being compiled
2023-06-12T08:40:50.5225136Z         with
2023-06-12T08:40:50.5225462Z         [
2023-06-12T08:40:50.5225724Z             _Ty=float
2023-06-12T08:40:50.5226036Z         ]
2023-06-12T08:57:50.0873331Z Traceback (most recent call last):
2023-06-12T08:57:50.1616569Z   File "C:\Miniforge\Scripts\conda-mambabuild-script.py", line 9, in <module>
2023-06-12T08:57:50.3017602Z     sys.exit(main())
2023-06-12T08:57:50.3033370Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 256, in main
2023-06-12T08:57:50.3073871Z     call_conda_build(action, config)
2023-06-12T08:57:50.3095701Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 228, in call_conda_build
2023-06-12T08:57:50.3096543Z     result = api.build(
2023-06-12T08:57:50.3097572Z   File "C:\Miniforge\lib\site-packages\conda_build\api.py", line 180, in build
2023-06-12T08:57:50.3892648Z     return build_tree(
2023-06-12T08:57:50.3894179Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 3078, in build_tree
2023-06-12T08:57:50.4000203Z     packages_from_this = build(metadata, stats,
2023-06-12T08:57:50.4001386Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 2166, in build
2023-06-12T08:57:50.4002069Z     windows.build(m, build_file, stats=build_stats, provision_only=provision_only)
2023-06-12T08:57:50.4028138Z   File "C:\Miniforge\lib\site-packages\conda_build\windows.py", line 305, in build
2023-06-12T08:57:50.4060939Z     check_call_env(cmd, cwd=m.config.work_dir, stats=stats, rewrite_stdout_env=rewrite_env)
2023-06-12T08:57:50.4070291Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 451, in check_call_env
2023-06-12T08:57:50.4086630Z     return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs)
2023-06-12T08:57:50.4087756Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 422, in _func_defaulting_env_to_os_environ
2023-06-12T08:57:50.4088435Z     proc = PopenWrapper(_args, **kwargs)
2023-06-12T08:57:50.4089736Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 292, in __init__
2023-06-12T08:57:50.4090312Z     self.out, self.err = self._execute(*args, **kwargs)
2023-06-12T08:57:50.4183665Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 366, in _execute
2023-06-12T08:57:50.4184440Z     self.disk = max(directory_size(disk_usage_dir), self.disk)
2023-06-12T08:57:50.4185111Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 192, in directory_size
2023-06-12T08:57:50.4186100Z     out = subprocess.check_output(command.format(path), shell=True)
2023-06-12T08:57:50.4186668Z   File "C:\Miniforge\lib\subprocess.py", line 421, in check_output
2023-06-12T08:57:50.4889182Z     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
2023-06-12T08:57:50.4892359Z   File "C:\Miniforge\lib\subprocess.py", line 505, in run
2023-06-12T08:57:50.4899226Z     stdout, stderr = process.communicate(input, timeout=timeout)
2023-06-12T08:57:50.4900992Z   File "C:\Miniforge\lib\subprocess.py", line 1141, in communicate
2023-06-12T08:57:50.4901555Z     stdout = self.stdout.read()
2023-06-12T08:57:50.4909198Z MemoryError
2023-06-12T08:57:51.3377284Z Traceback (most recent call last):
2023-06-12T08:57:51.3379986Z   File "tools/ci_build/build.py", line 2602, in <module>
2023-06-12T08:57:51.3649589Z     sys.exit(main())
2023-06-12T08:57:51.3650481Z   File "tools/ci_build/build.py", line 2498, in main
2023-06-12T08:57:51.3657328Z     build_targets(args, cmake_path, build_dir, configs, num_parallel_jobs, args.target)
2023-06-12T08:57:51.3657959Z   File "tools/ci_build/build.py", line 1437, in build_targets
2023-06-12T08:57:51.3661693Z     run_subprocess(cmd_args, env=env)
2023-06-12T08:57:51.3662168Z   File "tools/ci_build/build.py", line 781, in run_subprocess
2023-06-12T08:57:51.3664711Z     return run(*args, cwd=cwd, capture_stdout=capture_stdout, shell=shell, env=my_env)
2023-06-12T08:57:51.3665238Z   File "C:\bld\onnxruntime_1686554935392\work\tools\python\util\run.py", line 49, in run
2023-06-12T08:57:51.3667728Z     completed_process = subprocess.run(
2023-06-12T08:57:51.3668423Z   File "C:\bld\onnxruntime_1686554935392\_h_env\lib\subprocess.py", line 516, in run
2023-06-12T08:57:51.3723552Z     raise CalledProcessError(retcode, process.args,
2023-06-12T08:57:51.3736969Z subprocess.CalledProcessError: Command '['C:\\bld\\onnxruntime_1686554935392\\_build_env\\Library\\bin\\cmake.EXE', '--build', 'build-ci\\Release', '--config', 'Release', '--',

I do not have a lot of hope on that, but we could try to avoid using python for the build phase and directly use ninja.

traversaro commented 1 year ago

For some reason now Python is out of memory:

2023-06-12T08:40:50.5210171Z %SRC_DIR%\build-ci\Release\_deps\onnx-src\onnx/version_converter/adapters/pad_10_11.h(37): note: see reference to function template instantiation '_Ty &std::vector<_Ty,std::allocator<_Ty>>::emplace_back<const double&>(const double &)' being compiled
2023-06-12T08:40:50.5210565Z         with
2023-06-12T08:40:50.5210716Z         [
2023-06-12T08:40:50.5210919Z             _Ty=float
2023-06-12T08:40:50.5211080Z         ]
2023-06-12T08:40:50.5215487Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\xmemory(681): warning C4244: 'initializing': conversion from '_Ty' to '_Objty', possible loss of data
2023-06-12T08:40:50.5215997Z         with
2023-06-12T08:40:50.5216221Z         [
2023-06-12T08:40:50.5216372Z             _Ty=int
2023-06-12T08:40:50.5216572Z         ]
2023-06-12T08:40:50.5216720Z         and
2023-06-12T08:40:50.5216913Z         [
2023-06-12T08:40:50.5217068Z             _Objty=float
2023-06-12T08:40:50.5217269Z         ]
2023-06-12T08:40:50.5220031Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(708): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,int>(_Alloc &,_Objty *const ,int &&)' being compiled
2023-06-12T08:40:50.5220836Z         with
2023-06-12T08:40:50.5221155Z         [
2023-06-12T08:40:50.5221359Z             _Alloc=std::allocator<float>,
2023-06-12T08:40:50.5221605Z             _Ty=float,
2023-06-12T08:40:50.5221777Z             _Objty=float
2023-06-12T08:40:50.5221976Z         ]
2023-06-12T08:40:50.5222615Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(713): note: see reference to function template instantiation 'void std::_Default_allocator_traits<_Alloc>::construct<_Ty,int>(_Alloc &,_Objty *const ,int &&)' being compiled
2023-06-12T08:40:50.5223033Z         with
2023-06-12T08:40:50.5223229Z         [
2023-06-12T08:40:50.5223404Z             _Alloc=std::allocator<float>,
2023-06-12T08:40:50.5223632Z             _Ty=float,
2023-06-12T08:40:50.5223799Z             _Objty=float
2023-06-12T08:40:50.5223993Z         ]
2023-06-12T08:40:50.5224608Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\vector(726): note: see reference to function template instantiation '_Ty &std::vector<_Ty,std::allocator<_Ty>>::_Emplace_back_with_unused_capacity<int>(int &&)' being compiled
2023-06-12T08:40:50.5225136Z         with
2023-06-12T08:40:50.5225462Z         [
2023-06-12T08:40:50.5225724Z             _Ty=float
2023-06-12T08:40:50.5226036Z         ]
2023-06-12T08:57:50.0873331Z Traceback (most recent call last):
2023-06-12T08:57:50.1616569Z   File "C:\Miniforge\Scripts\conda-mambabuild-script.py", line 9, in <module>
2023-06-12T08:57:50.3017602Z     sys.exit(main())
2023-06-12T08:57:50.3033370Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 256, in main
2023-06-12T08:57:50.3073871Z     call_conda_build(action, config)
2023-06-12T08:57:50.3095701Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 228, in call_conda_build
2023-06-12T08:57:50.3096543Z     result = api.build(
2023-06-12T08:57:50.3097572Z   File "C:\Miniforge\lib\site-packages\conda_build\api.py", line 180, in build
2023-06-12T08:57:50.3892648Z     return build_tree(
2023-06-12T08:57:50.3894179Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 3078, in build_tree
2023-06-12T08:57:50.4000203Z     packages_from_this = build(metadata, stats,
2023-06-12T08:57:50.4001386Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 2166, in build
2023-06-12T08:57:50.4002069Z     windows.build(m, build_file, stats=build_stats, provision_only=provision_only)
2023-06-12T08:57:50.4028138Z   File "C:\Miniforge\lib\site-packages\conda_build\windows.py", line 305, in build
2023-06-12T08:57:50.4060939Z     check_call_env(cmd, cwd=m.config.work_dir, stats=stats, rewrite_stdout_env=rewrite_env)
2023-06-12T08:57:50.4070291Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 451, in check_call_env
2023-06-12T08:57:50.4086630Z     return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs)
2023-06-12T08:57:50.4087756Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 422, in _func_defaulting_env_to_os_environ
2023-06-12T08:57:50.4088435Z     proc = PopenWrapper(_args, **kwargs)
2023-06-12T08:57:50.4089736Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 292, in __init__
2023-06-12T08:57:50.4090312Z     self.out, self.err = self._execute(*args, **kwargs)
2023-06-12T08:57:50.4183665Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 366, in _execute
2023-06-12T08:57:50.4184440Z     self.disk = max(directory_size(disk_usage_dir), self.disk)
2023-06-12T08:57:50.4185111Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 192, in directory_size
2023-06-12T08:57:50.4186100Z     out = subprocess.check_output(command.format(path), shell=True)
2023-06-12T08:57:50.4186668Z   File "C:\Miniforge\lib\subprocess.py", line 421, in check_output
2023-06-12T08:57:50.4889182Z     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
2023-06-12T08:57:50.4892359Z   File "C:\Miniforge\lib\subprocess.py", line 505, in run
2023-06-12T08:57:50.4899226Z     stdout, stderr = process.communicate(input, timeout=timeout)
2023-06-12T08:57:50.4900992Z   File "C:\Miniforge\lib\subprocess.py", line 1141, in communicate
2023-06-12T08:57:50.4901555Z     stdout = self.stdout.read()
2023-06-12T08:57:50.4909198Z MemoryError
2023-06-12T08:57:51.3377284Z Traceback (most recent call last):
2023-06-12T08:57:51.3379986Z   File "tools/ci_build/build.py", line 2602, in <module>
2023-06-12T08:57:51.3649589Z     sys.exit(main())
2023-06-12T08:57:51.3650481Z   File "tools/ci_build/build.py", line 2498, in main
2023-06-12T08:57:51.3657328Z     build_targets(args, cmake_path, build_dir, configs, num_parallel_jobs, args.target)
2023-06-12T08:57:51.3657959Z   File "tools/ci_build/build.py", line 1437, in build_targets
2023-06-12T08:57:51.3661693Z     run_subprocess(cmd_args, env=env)
2023-06-12T08:57:51.3662168Z   File "tools/ci_build/build.py", line 781, in run_subprocess
2023-06-12T08:57:51.3664711Z     return run(*args, cwd=cwd, capture_stdout=capture_stdout, shell=shell, env=my_env)
2023-06-12T08:57:51.3665238Z   File "C:\bld\onnxruntime_1686554935392\work\tools\python\util\run.py", line 49, in run
2023-06-12T08:57:51.3667728Z     completed_process = subprocess.run(
2023-06-12T08:57:51.3668423Z   File "C:\bld\onnxruntime_1686554935392\_h_env\lib\subprocess.py", line 516, in run
2023-06-12T08:57:51.3723552Z     raise CalledProcessError(retcode, process.args,
2023-06-12T08:57:51.3736969Z subprocess.CalledProcessError: Command '['C:\\bld\\onnxruntime_1686554935392\\_build_env\\Library\\bin\\cmake.EXE', '--build', 'build-ci\\Release', '--config', 'Release', '--',

I do not have a lot of hope on that, but we could try to avoid using python for the build phase and directly use ninja.

For now I tried to remove enable_lto, if that indeed use less memory we can re-enable in the future if the azure machine have more memory or if future VS versions use less memory for lto. In the future probably it could also make sense to double check if it make sense to keep lto enable on Linux (see https://github.com/conda-forge/clangdev-feedstock/issues/155#issuecomment-921935951 and https://groups.google.com/g/linux.debian.devel/c/HBlK1Tjbw8M).

cbourjau commented 1 year ago

Thank you so much for your efforts in this PR!

I would imagine that the problem for running out of memory is not Python itself; it only happens to spawn the cmake process. Disabling LTO seems like a worthwhile try. Let's see if it helps! @xhochy Have you seen similar memory issues for Windows builds elsewhere?

Concerning the parallel build bug: I don't think that we necessarily have to use ninja.

traversaro commented 1 year ago

Almost there:

2023-06-13T05:47:42.4851644Z ValueError: License file given in about/license_file (D:\a\1\s\recipe\build-ci/Release/_deps/google_nsync-src/LICENSE) does not exist in source root dir or in recipe root dir (with meta.yaml)
traversaro commented 1 year ago

I submitted upstream another Ninja/Windows fix: https://github.com/microsoft/onnxruntime/pull/16337 .

jamesmyatt commented 1 year ago

Closes #31

traversaro commented 1 year ago

Remaining errors/scary warnings:

2023-06-13T10:02:42.3410873Z WARNING (onnxruntime,Lib/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.pyd): $RPATH/libprotobuf-lite.dll not found in packages, sysroot(s) nor the missing_dso_whitelist.
2023-06-13T10:02:42.3413751Z .. is this binary repackaging?
<..>
2023-06-13T10:02:43.4708255Z ValueError: License file given in about/license_file (D:\a\1\s\recipe\build-ci/Release/_deps/protobuf-src/LICENSE) does not exist in source root dir or in recipe root dir (with meta.yaml)

it seems that for some reason the non-vendored protobuf is used.

traversaro commented 1 year ago

Remaining errors/scary warnings:

2023-06-13T10:02:42.3410873Z WARNING (onnxruntime,Lib/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.pyd): $RPATH/libprotobuf-lite.dll not found in packages, sysroot(s) nor the missing_dso_whitelist.
2023-06-13T10:02:42.3413751Z .. is this binary repackaging?
<..>
2023-06-13T10:02:43.4708255Z ValueError: License file given in about/license_file (D:\a\1\s\recipe\build-ci/Release/_deps/protobuf-src/LICENSE) does not exist in source root dir or in recipe root dir (with meta.yaml)

it seems that for some reason the non-vendored protobuf is used.

Basically the specific signature used in https://github.com/microsoft/onnxruntime/blob/v1.15.0/cmake/external/onnxruntime_external_deps.cmake meant that the system Protobuf was used if Protobuf 3.21 was installed in the system. To avoid that (given https://github.com/conda-forge/onnxruntime-feedstock/issues/57#issuecomment-1518033552) at least for now, I passed the FETCHCONTENT_TRY_FIND_PACKAGE_MODE=NEVER CMake option to ensure that system options are never used, see https://github.com/conda-forge/onnxruntime-feedstock/pull/56/commits/ca83f09ef1f022c72c045336cf9a68c38472ba63 .

traversaro commented 1 year ago

I guess for some reason before passing FETCHCONTENT_TRY_FIND_PACKAGE_MODE=NEVER the conda-forge gtest was used. Now the vendored version is used, and the compilation fails with:

2023-06-13T16:20:55.9575946Z [460/1355] Building CXX object _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\__\__\googletest-src\googletest\src\gtest-all.cc.obj
2023-06-13T16:20:55.9628735Z FAILED: _deps/googletest-build/googlemock/CMakeFiles/gmock.dir/__/__/googletest-src/googletest/src/gtest-all.cc.obj 
2023-06-13T16:20:55.9635506Z C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\cl.exe  /nologo /TP -DEIGEN_HAS_CONSTEXPR -DEIGEN_HAS_CXX11_ATOMIC -DEIGEN_HAS_CXX11_MATH -DEIGEN_HAS_VARIADIC_TEMPLATES -DEIGEN_MPL2_ONLY -DEIGEN_STRONG_INLINE=inline -DNTDDI_VERSION=0x0A000000 -DORT_ENABLE_STREAM -DWINAPI_FAMILY=100 -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googlemock\include -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googlemock -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest /DWIN32 /D_WINDOWS   /wd26812 /Qspectre /MP -DEIGEN_HAS_C99_MATH -DCPUINFO_SUPPORTED /O2 /Ob2 /DNDEBUG /guard:cf -std:c++17 -MD -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=1 -EHsc -D_HAS_EXCEPTIONS=1  /W3 /GR /showIncludes /Fo_deps\googletest-build\googlemock\CMakeFiles\gmock.dir\__\__\googletest-src\googletest\src\gtest-all.cc.obj /Fdlib\gmock.pdb /FS -c %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src\gtest-all.cc
2023-06-13T16:20:55.9637541Z cl : Command line warning D9025 : overriding '/W4' with '/W3'
2023-06-13T16:20:55.9640380Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1453): error C2011: 'testing::internal::ThreadWithParamBase': 'class' type redefinition
2023-06-13T16:20:55.9641653Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1249): note: see declaration of 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9657385Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1498): error C2953: 'testing::internal::ThreadWithParam': class template has already been defined
2023-06-13T16:20:55.9658812Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1473): note: see declaration of 'testing::internal::ThreadWithParam'
2023-06-13T16:20:55.9698415Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(422): error C2504: 'testing::internal::ThreadWithParamBase': base class undefined
2023-06-13T16:20:55.9722478Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(424): error C2061: syntax error: identifier 'Runnable'
2023-06-13T16:20:55.9725266Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(445): error C2061: syntax error: identifier 'Runnable'
2023-06-13T16:20:55.9726348Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(447): error C2065: 'Runnable': undeclared identifier
2023-06-13T16:20:55.9727305Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(447): error C2923: 'std::unique_ptr': 'Runnable' is not a valid template type argument for parameter '_Ty'
2023-06-13T16:20:55.9728197Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(447): note: see declaration of 'Runnable'
2023-06-13T16:20:55.9729029Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(447): error C2976: 'std::unique_ptr': too few template arguments
2023-06-13T16:20:55.9730070Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3123): note: see declaration of 'std::unique_ptr'
2023-06-13T16:20:55.9731001Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(447): error C2955: 'std::unique_ptr': use of class template requires template argument list
2023-06-13T16:20:55.9731857Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3123): note: see declaration of 'std::unique_ptr'
2023-06-13T16:20:55.9732722Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(426): error C2065: 'runnable': undeclared identifier
2023-06-13T16:20:55.9735603Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(426): error C2065: 'thread_can_start': undeclared identifier
2023-06-13T16:20:55.9736495Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(446): error C2065: 'runnable': undeclared identifier
2023-06-13T16:20:55.9737371Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(446): error C2065: 'thread_can_start': undeclared identifier
2023-06-13T16:20:55.9744069Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(457): error C2678: binary '->': no operator found which takes a left-hand operand of type 'std::unique_ptr' (or there is no acceptable conversion)
2023-06-13T16:20:55.9745085Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3214): note: could be '_Get_deleter_pointer_type<_Ty,remove_reference<_Ty1>::type,void>::type std::unique_ptr<_Ty,_Dx>::operator ->(void) noexcept const'
2023-06-13T16:20:55.9745756Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(457): note: while trying to match the argument list '(std::unique_ptr)'
2023-06-13T16:20:55.9746258Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(457): error C2039: 'Run': is not a member of 'std::unique_ptr'
2023-06-13T16:20:55.9746818Z C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\include\memory(3123): note: see declaration of 'std::unique_ptr'
2023-06-13T16:20:55.9747343Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(470): error C2027: use of undefined type 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9747949Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1249): note: see declaration of 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9748485Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(470): error C2065: 'Runnable': undeclared identifier
2023-06-13T16:20:55.9748930Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(470): error C2065: 'runnable': undeclared identifier
2023-06-13T16:20:55.9749437Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(471): error C2065: 'thread_can_start': undeclared identifier
2023-06-13T16:20:55.9750014Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(471): error C2275: 'testing::internal::Notification': illegal use of this type as an expression
2023-06-13T16:20:55.9750671Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1210): note: see declaration of 'testing::internal::Notification'
2023-06-13T16:20:55.9751268Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(471): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2023-06-13T16:20:55.9751781Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(472): error C2059: syntax error: ':'
2023-06-13T16:20:55.9752224Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C2065: 'runnable': undeclared identifier
2023-06-13T16:20:55.9752738Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C2065: 'thread_can_start': undeclared identifier
2023-06-13T16:20:55.9753401Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2023-06-13T16:20:55.9753853Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C2059: syntax error: '{'
2023-06-13T16:20:55.9754332Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C2143: syntax error: missing ';' before '{'
2023-06-13T16:20:55.9754848Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(473): error C2447: '{': missing function header (old-style formal list?)
2023-06-13T16:20:55.9755360Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(475): error C2027: use of undefined type 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9755943Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1249): note: see declaration of 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9756525Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(475): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
2023-06-13T16:20:55.9757001Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(475): error C3861: 'Join': identifier not found
2023-06-13T16:20:55.9757570Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(475): warning C4508: 'testing::internal::{dtor}': function should return a value; 'void' return type assumed
2023-06-13T16:20:55.9758156Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\src/gtest-port.cc(477): error C2027: use of undefined type 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9758691Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1249): note: see declaration of 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:55.9759207Z [461/1355] Building CXX object _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\src\gmock-all.cc.obj
2023-06-13T16:20:55.9759592Z FAILED: _deps/googletest-build/googlemock/CMakeFiles/gmock.dir/src/gmock-all.cc.obj 
2023-06-13T16:20:55.9761507Z C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\cl.exe  /nologo /TP -DEIGEN_HAS_CONSTEXPR -DEIGEN_HAS_CXX11_ATOMIC -DEIGEN_HAS_CXX11_MATH -DEIGEN_HAS_VARIADIC_TEMPLATES -DEIGEN_MPL2_ONLY -DEIGEN_STRONG_INLINE=inline -DNTDDI_VERSION=0x0A000000 -DORT_ENABLE_STREAM -DWINAPI_FAMILY=100 -DWINVER=0x0A00 -D_WIN32_WINNT=0x0A00 -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googlemock\include -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googlemock -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include -I%SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest /DWIN32 /D_WINDOWS   /wd26812 /Qspectre /MP -DEIGEN_HAS_C99_MATH -DCPUINFO_SUPPORTED /O2 /Ob2 /DNDEBUG /guard:cf -std:c++17 -MD -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=1 -EHsc -D_HAS_EXCEPTIONS=1  /W3 /GR /showIncludes /Fo_deps\googletest-build\googlemock\CMakeFiles\gmock.dir\src\gmock-all.cc.obj /Fdlib\gmock.pdb /FS -c %SRC_DIR%\build-ci\Release\_deps\googletest-src\googlemock\src\gmock-all.cc
2023-06-13T16:20:55.9762703Z cl : Command line warning D9025 : overriding '/W4' with '/W3'
2023-06-13T16:20:55.9763195Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1453): error C2011: 'testing::internal::ThreadWithParamBase': 'class' type redefinition
2023-06-13T16:20:57.4551933Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1249): note: see declaration of 'testing::internal::ThreadWithParamBase'
2023-06-13T16:20:57.4581402Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1498): error C2953: 'testing::internal::ThreadWithParam': class template has already been defined
2023-06-13T16:20:57.4614614Z %SRC_DIR%\build-ci\Release\_deps\googletest-src\googletest\include\gtest/internal/gtest-port.h(1473): note: see declaration of 'testing::internal::ThreadWithParam'
2023-06-13T16:20:57.4635613Z [462/1355] Building CXX object _deps\flatbuffers-build\CMakeFiles\flatc.dir\grpc\src\compiler\python_generator.cc.obj
2023-06-13T16:20:57.4673655Z Traceback (most recent call last):
2023-06-13T16:20:57.5086513Z   File "tools/ci_build/build.py", line 2599, in <module>
2023-06-13T16:20:57.5087703Z cl : Command line warning D9025 : overriding '/W4' with '/W3'
2023-06-13T16:20:57.5114140Z cl : Command line warning D9025 : overriding '/MD' with '/MT'
2023-06-13T16:20:57.5115395Z     sys.exit(main())
2023-06-13T16:20:57.5117268Z ninja: build stopped: subcommand failed.
2023-06-13T16:20:57.5118055Z   File "tools/ci_build/build.py", line 2495, in main
2023-06-13T16:20:57.5119064Z 
2023-06-13T16:20:57.5119832Z     build_targets(args, cmake_path, build_dir, configs, num_parallel_jobs, args.target)
2023-06-13T16:20:57.5120893Z (%BUILD_PREFIX%) %SRC_DIR%>if errorlevel 1 exit 1 
2023-06-13T16:20:57.5121846Z   File "tools/ci_build/build.py", line 1434, in build_targets
2023-06-13T16:20:57.5123057Z     run_subprocess(cmd_args, env=env)
2023-06-13T16:20:57.5124161Z   File "tools/ci_build/build.py", line 781, in run_subprocess
2023-06-13T16:20:57.5124856Z     return run(*args, cwd=cwd, capture_stdout=capture_stdout, shell=shell, env=my_env)
2023-06-13T16:20:57.5125513Z   File "C:\bld\onnxruntime_1686672439586\work\tools\python\util\run.py", line 49, in run
2023-06-13T16:20:57.5126477Z     completed_process = subprocess.run(
2023-06-13T16:20:57.5127819Z   File "C:\bld\onnxruntime_1686672439586\_h_env\lib\subprocess.py", line 516, in run
2023-06-13T16:20:57.5128619Z     raise CalledProcessError(retcode, process.args,
2023-06-13T16:20:57.5130307Z subprocess.CalledProcessError: Command '['C:\\bld\\onnxruntime_1686672439586\\_build_env\\Library\\bin\\cmake.EXE', '--build', 'build-ci\\Release', '--config', 'Release']' returned non-zero exit status 1.
2023-06-13T16:21:01.8176091Z Traceback (most recent call last):
2023-06-13T16:21:01.8177782Z   File "C:\Miniforge\Scripts\conda-mambabuild-script.py", line 9, in <module>
2023-06-13T16:21:01.8178507Z     sys.exit(main())
2023-06-13T16:21:01.8179154Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 256, in main
2023-06-13T16:21:01.8188523Z     call_conda_build(action, config)
2023-06-13T16:21:01.8189301Z   File "C:\Miniforge\lib\site-packages\boa\cli\mambabuild.py", line 228, in call_conda_build
2023-06-13T16:21:01.8190034Z     result = api.build(
2023-06-13T16:21:01.8190659Z   File "C:\Miniforge\lib\site-packages\conda_build\api.py", line 180, in build
2023-06-13T16:21:01.8205550Z     return build_tree(
2023-06-13T16:21:01.8206554Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 3078, in build_tree
2023-06-13T16:21:01.8245293Z     packages_from_this = build(metadata, stats,
2023-06-13T16:21:01.8246294Z   File "C:\Miniforge\lib\site-packages\conda_build\build.py", line 2166, in build
2023-06-13T16:21:01.8252106Z     windows.build(m, build_file, stats=build_stats, provision_only=provision_only)
2023-06-13T16:21:01.8252895Z   File "C:\Miniforge\lib\site-packages\conda_build\windows.py", line 305, in build
2023-06-13T16:21:01.8264916Z     check_call_env(cmd, cwd=m.config.work_dir, stats=stats, rewrite_stdout_env=rewrite_env)
2023-06-13T16:21:01.8265851Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 451, in check_call_env
2023-06-13T16:21:01.8277040Z     return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs)
2023-06-13T16:21:01.8278018Z   File "C:\Miniforge\lib\site-packages\conda_build\utils.py", line 427, in _func_defaulting_env_to_os_environ
2023-06-13T16:21:01.8279096Z     raise subprocess.CalledProcessError(proc.returncode, _args)
2023-06-13T16:21:01.8279992Z subprocess.CalledProcessError: Command '['cmd.exe', '/d', '/c', 'conda_build.bat']' returned non-zero exit status 1.
traversaro commented 1 year ago

Related issues:

traversaro commented 1 year ago

As actually also Linux uses gtest/gmock from conda-forge, to be less invasive but just force the use of the vendored protobuf I pass the CMAKE_DISABLE_FIND_PACKAGE_Protobuf=ON to just avoid the finding and using the conda-forge's protobuf.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

traversaro commented 1 year ago

@conda-forge-admin, please rerender

traversaro commented 1 year ago

For some reason the import onnxruntime test is failing with error:

2023-06-14T17:58:49.2006709Z import: 'onnxruntime'
2023-06-14T17:58:49.5311539Z import: 'onnxruntime'
2023-06-14T17:58:49.5696475Z The system cannot find the path specified.
2023-06-14T17:58:49.5727221Z The filename, directory name, or volume label syntax is incorrect.
2023-06-14T17:58:50.2280836Z Tests failed for onnxruntime-1.15.0-py310h0b3afb7_1.conda - moving package to D:\bld\broken

However, I tested locally the package onnxruntime-1.15.0-py310h0b3afb7_1.conda and import onnxruntime is working fine.

traversaro commented 1 year ago

Related errors:

traversaro commented 1 year ago

For some reason the import onnxruntime test is failing with error:

2023-06-14T17:58:49.2006709Z import: 'onnxruntime'
2023-06-14T17:58:49.5311539Z import: 'onnxruntime'
2023-06-14T17:58:49.5696475Z The system cannot find the path specified.
2023-06-14T17:58:49.5727221Z The filename, directory name, or volume label syntax is incorrect.
2023-06-14T17:58:50.2280836Z Tests failed for onnxruntime-1.15.0-py310h0b3afb7_1.conda - moving package to D:\bld\broken

However, I tested locally the package onnxruntime-1.15.0-py310h0b3afb7_1.conda and import onnxruntime is working fine.

I tested this locally, and I think I was barking at the wrong tree, the problem were in the run_test.bat, I fixed some errors in https://github.com/conda-forge/onnxruntime-feedstock/pull/56/commits/ce3edc358d8a67cec930f81685b5f494571f3463, let's see if this fix the errors.

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I was trying to look for recipes to lint for you, but it appears we have a merge conflict. Please try to merge or rebase with the base branch to resolve this conflict.

Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

conda-forge-webservices[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

github-actions[bot] commented 1 year ago

Hi! This is the friendly automated conda-forge-webservice.

I tried to rerender for you but ran into some issues. Please check the output logs of the latest rerendering GitHub actions workflow run for errors. You can also ping conda-forge/core for further assistance or try re-rendering locally.

This message was generated by GitHub actions workflow run https://github.com/conda-forge/onnxruntime-feedstock/actions/runs/5313547709.

traversaro commented 1 year ago

Congratulations on finally getting to that ✅ -state!

I am afraid that the CI checks are actually not running due to a re-rendering problem.

traversaro commented 1 year ago

@conda-forge-admin, please rerender

traversaro commented 1 year ago

@conda-forge/onnxruntime the PR is now ready for review, I summarized the main things to know in the original PR message.

jtilly commented 1 year ago

Thank you, @traversaro!

traversaro commented 1 year ago

Thanks to everyone that provided feedback and for merging the PR!