-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add missing Python 3.11 dependencies. #29609
Conversation
Assigning reviewers. If you would like to opt out of this review, comment R: @damccorm for label python. Available commands:
The PR bot will only process comments in the main thread (not review comments). |
@@ -30,6 +30,16 @@ | |||
# You will need Python interpreters for all versions supported by Beam, see: | |||
# https://s.apache.org/beam-python-dev-wiki | |||
|
|||
if ! [[ "$(expr substr $(uname -s) 1 5)" == "Linux" ]]; then | |||
echo This script needs to be executed in a Linux environment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
optional: update wiki page since devs mostly update it on their own systems (which is Mac).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the script already fails on Mac due to google-cloud-profiler or some other dependency not installable on Mac, that is why I added this. Can current version of the script (before this PR) run on Mac?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe Wiki already recommends a linux machine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe Wiki already recommends a linux machine.
looks like not. I definitely remember script failing on MacOS before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've run this successfully from my (non-M1) mac before
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, added instructions for MacOS. @AnandInguva please help verify that is sufficient. You can check out the pr locally by smth like:
git fetch origin pull/29609/head:pr-29609
git checkout pr-29609
Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need anything else from me here? asking in case if I missed something. As of now, this is not running on M1 Mac.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could try to see what it takes to make it succeed on a Mac but don't spend too much time if you can't get it to work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. I will take a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i tried few things from stackoverflow and python-snappy github page but no luck so far.
@@ -38,6 +38,8 @@ jobs: | |||
uses: actions/setup-python@v4 | |||
with: | |||
python-version: ${{ matrix.params.py_ver }} | |||
- name: Install headers required by some python packages |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we might need to install this in the tox tests? for tests that might be using snappy? I don't think we install it tox anyway
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, it is a gap in beam test coverage. this codepath might be covered by google-internal tests that use TFRecordIo.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #29609 +/- ##
=======================================
Coverage 37.88% 37.88%
=======================================
Files 690 690
Lines 101253 101263 +10
=======================================
+ Hits 38358 38364 +6
- Misses 61300 61303 +3
- Partials 1595 1596 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
elif [[ "$(expr substr $(uname -s) 1 6)" == "Darwin" ]]; then | ||
if ! brew list snappy >/dev/null ; then | ||
echo You must install snappy to run this script. Run: | ||
echo brew install snappy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generating requirements from MacOS M1/M2 will remove snappy from the base_image_requirements.txt right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should not. MacOS users would have to install snappy package and rerun the script.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you could try running the script on macos.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, let me try running it on M1 Mac.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, please let me know if you can get it to work. I briefly asked another coworker, seems like it's not enough - maybe restarting shell is required?
We also tried setting CPPFLAGS="-I/usr/local/include -L/usr/local/lib" pip install python-snappy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran > Task :sdks:python:container:py311:generatePythonRequirements FAILED
It failed for me.
Building wheel for python-snappy (setup.py): started
Building wheel for python-snappy (setup.py): finished with status 'error'
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [25 lines of output]
running bdist_wheel
running build
running build_py
creating build
Running setup.py clean for python-snappy
creating build/lib.macosx-14.1-arm64-cpython-311
creating build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/snappy.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/snappy_cffi.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/__init__.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/hadoop_snappy.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/snappy_formats.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/__main__.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
copying src/snappy/snappy_cffi_builder.py -> build/lib.macosx-14.1-arm64-cpython-311/snappy
running build_ext
building 'snappy._snappy' extension
creating build/temp.macosx-14.1-arm64-cpython-311
creating build/temp.macosx-14.1-arm64-cpython-311/src
creating build/temp.macosx-14.1-arm64-cpython-311/src/snappy
clang -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/anandinguva/Desktop/projects/beam/build/python311_requirements_gen/include -I/Users/anandinguva/.pyenv/versions/3.11.5/include/python3.11 -c src/snappy/crc32c.c -o build/temp.macosx-14.1-arm64-cpython-311/src/snappy/crc32c.o
clang -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Users/anandinguva/Desktop/projects/beam/build/python311_requirements_gen/include -I/Users/anandinguva/.pyenv/versions/3.11.5/include/python3.11 -c src/snappy/snappymodule.cc -o build/temp.macosx-14.1-arm64-cpython-311/src/snappy/snappymodule.o
src/snappy/snappymodule.cc:33:10: fatal error: 'snappy-c.h' file not found
#include <snappy-c.h>
^~~~~~~~~~~~
1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for python-snappy
Successfully built bs4 future google-cloud-profiler
Failed to build python-snappy
ERROR: Could not build wheels for python-snappy, which is required to install pyproject.toml-based projects
let's decouple snappy upgrade from googlecloudprofiler, sending: #29651 |
fixes: #25985