Refresh msvc2017 Dockerfile and add windows workflow
Refresh msvc2017 Dockerfile and add windows workflow
- [ ] Did you create an Apache Jira ticket? (Request account here, not required for trivial changes)
- [ ] If a ticket exists: Does your pull request title follow the pattern "THRIFT-NNNN: describe my issue"?
- [x] Did you squash your changes to a single commit? (not required, but preferred)
- [x] Did you do your best to avoid breaking changes? If one was needed, did you label the Jira ticket with "Breaking-Change"?
- [ ] If your change does not involve any code, include
[skip ci]anywhere in the commit message to free up build resources.
FYI: I am also looking at a Windows Action but taking a bit of a different approach: https://github.com/CJCombrink/thrift/pull/7
FYI: I am also looking at a Windows Action but taking a bit of a different approach: CJCombrink#7
Cool! Your workflow runs much faster :D. The part I like about using docker is that it publishes a thrift-build image that can help folks get started with a ready-to-use environment. Maybe I can rename the workflow to something like msvc.yml.
does that include net10?
does that include net10?
I don't think so, I can try to add the support.
does that include net10?
I don't think so, I can try to add the support.
I'm not so sure if this is really needed, sorry. Not sure what I had in mind when I asked that question.
workflow failed as expected, I think the failed python test is being fixed in https://github.com/apache/thrift/pull/3231
Write-Error: Tests failed - check LastTest.log artifact for details
Executing individual test scripts with various generated code directories
Directories to be tested: gen-py-default, gen-py-slots, gen-py-oldstyle, gen-py-no_utf8strings, gen-py-dynamic, gen-py-dynamicslots, gen-py-enum, gen-py-type_hints
Scripts to be tested: FastbinaryTest.py, TestFrozen.py, TestRenderedDoubleConstants.py, TSimpleJSONProtocolTest.py, SerializationTest.py, TestEof.py, TestSyntax.py, TestSocket.py, TestTypes.py
----------------
Traceback (most recent call last):
File "C:\thrift\test\py\RunClientServer.py", line 334, in <module>
sys.exit(main())
~~~~^^
File "C:\thrift\test\py\RunClientServer.py", line 313, in main
runScriptTest(options.libdir, options.gen_base, genpydir, script)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\thrift\test\py\RunClientServer.py", line 93, in runScriptTest
env = setup_pypath(libdir, os.path.join(genbase, genpydir))
File "C:\thrift\test\py\RunClientServer.py", line 86, in setup_pypath
env['PYTHONPATH'] = os.pathsep.join(dirs)
~~~~~~~~~~~~~~~^^^^^^
TypeError: sequence item 0: expected str instance, NoneType found
<end of output>
Test time = 0.20 sec
----------------------------------------------------------
Test Failed.
The part I like about using docker is that it publishes a thrift-build image that can help folks get started with a ready-to-use environment.
Sure it does have some benefit and it builds on top of what is already existing. Although I am not sure who is brave enough to do local docker based development on Windows :P
Just regarding the approach: I opted to use conan as a package manager instead of building dependencies manually. I think conan is more inclined to keep dependencies building and up to data compared to trying to maintain basically the same logic here. Conan also provides some pre-build packages that can speed up the build.
The part I like about using docker is that it publishes a thrift-build image that can help folks get started with a ready-to-use environment.
Sure it does have some benefit and it builds on top of what is already existing. Although I am not sure who is brave enough to do local docker based development on Windows :P
Just regarding the approach: I opted to use conan as a package manager instead of building dependencies manually. I think conan is more inclined to keep dependencies building and up to data compared to trying to maintain basically the same logic here. Conan also provides some pre-build packages that can speed up the build.
I totally agree using Conan or vcpkg would be much better. I can switch the build script to use Conan after your change got merged.
Just curious, what is wrong about local docker based development on Windows? 🤣
publishes a thrift-build image
Except that we may not publish it. https://www.apache.org/legal/release-policy.html#release-definition