and , while investigating SYNPY-940, I discovered that our Synapse Python client will not work correctly on Windows-Linux hybrid environment. The user is using an application called MobaXterm to access the Python client. The path in this environment is linux path mapping to Windows path on the user's drive.
I am currently supporting the user via Hangout Meet. This ticket is to discuss how much engineering work we should put into supporting this environment. Should we incorporate a build environment to support this usage of the client?
It sounds like the problem boils down to the treatment of paths in this (atypical) environment. While I wouldn't want to put a huge effort (e.g. spend 25% more time on client development) to support the platform, it certainly seems reasonable to try to get Python to handle paths correctly on this platform. Today we use cygwin in ourAWS-based build system, to build the R client for Windows. I wonder if the problem can be repro'ed with Windows+cygwin on AWS and thereafter run a Windows+cygwin build as part of the Python client CI/CD system.
I can attempt to figure out if Windows+Cygwin can be a part of the Python client CI/CD.
I also think that the Python client should correctly identify the platform that it’s currently running and warns users if they are using a non-supported platform. For example, the error in SYNPY-940 happens where the Python code check if the user is using “Windows” or not “Windows” platform. In the case the the environment is not a Windows platform, there can be other platforms rather than just Linux and Mac, including platforms that we do not (yet) support.
> the Python client should correctly identify the platform that it’s currently running and warns users if they are using a non-supported platform
Yes, I agree. The warning could print the user's platform and tell them to include it in their error report should the Python client fail to work properly.
After a more detailed discussion with , the cache was involved in the upload process as an optimization. If we cannot identify the required values to perform optimization, the upload should still work. We should still print out warning about the cache being disable and why.