Closed kaustav1996 closed 1 year ago
I just saw in the last line of pyproject.toml
it says :
requires = ["poetry-core>=1.0.0", "setuptools", "wheel", "setuptools-rust", "protoc-wheel-0"]
does it mean it will always try to download it and not use the one that is installed in the env?
What is happening is pip
is trying to install temporalio
from source instead of using a prebuilt one because you are using Alpine. This uses musl instead of glibc which we don't provide pre-built package for. Then, when it tries to build it is installing dev dependencies which includes protoc-wheel-0
which also does not seem to provide a musl-based package for Alpine.
We have a couple of options here. You can stop using Alpine. If this is not an option, maybe we can make protoc-wheel-0
an optional dev dependency. But you'll have to make protoc
available on the PATH
somehow because this will need to build via Rust and one of our crates requires protoc
. Also the build will take a while. It is suggested to just use a different distro (just about any non-alpine should work) so that you don't have to build the SDK.
@cretz Thanks for the response. We found a way to use an alternate Distro and were able to install temporalio there.
What should I do if i can not use any other distro apart from alpine?
You can attempt to build the SDK yourself with MUSL for the Rust part and it will likely work fine. We just don't distribute one. You'll have to use an alternative protoc
approach, but that should also not be hard (we only depend on it as a dev dependency so devs don't have to manually download when building).
@cretz thanks, are there any guides how to do that or some mentions how to address this issue?
At the bottom of the README is the build guide. You'll have to research and adapt it for MUSL and to disable protoc
Python dependency (to use your own on the PATH
) as this is a setup we don't support by default.
What are you really trying to do?
While running CI in our GitLab CI Pipeline we are unable to install temporalio because it is unable to find protoc-wheel-0
Describe the bug
Here is our Job :
Since we were first unable to install protoc-wheel-0 on this architecture we built the whl file and exported it using a separate docker :
I am then going inside the container building the wheel and exporting it. Hence the line is there in the CI job to install it within the sonar container :
Output when the Job runs :
What I cannot understand is why it is not able to detect the already installed
protoc-wheel-0
even though it is mentioned inpyproject.toml
that^21.1
is required. :Environment/Versions
Linux runner-j2nyww-s-project-26698668-concurrent-0 5.4.109+ #1 SMP Wed Jun 16 20:00:10 PDT 2021 x86_64 Linux
1.1.0
No