-
Notifications
You must be signed in to change notification settings - Fork 287
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
Enable MacOS build on Travis CI #116
Conversation
6a939a7
to
6b740dd
Compare
There are still some work to do and clean up, but I think we are very close to get macOS support. Right now the following ops has been enabled:
Not done yet:
For ignite, kafka, kinesis, we will need to setup servers or emulators (with or without docker) for testing on Travis CI. Will do some cleanup but overall I think we may have a nightly build of macOS support pretty soon. @damienpontifex as you might be interested. |
Signed-off-by: Yong Tang <[email protected]>
Signed-off-by: Yong Tang <[email protected]>
Encountered a scneario where all tests are skipped Signed-off-by: Yong Tang <[email protected]>
73cc59b
to
2fb3818
Compare
Signed-off-by: Yong Tang <[email protected]>
/cc @terrytangyuan @dmitrievanthony @BryanCutler to take a look. We have enabled the build all ops for macOS, and the tests of most of the ops for macOS. Tests for kinesis/kafka/video/ignite are not done yet. The PR also adds some enhancement and additional comments about each configuration in Travis CI:
Please 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.
Do the developer and install build jobs both build binaries and run tests, then only the build job makes wheels? Is it possible they could be combined and just test the pip install as a last step?
.travis/python.release.sh
Outdated
# docker run -i -t --rm -v $PWD:/v -w /v --net=host buildpack-deps:14.04 /v/.travis/python.release.sh | ||
|
||
export TENSORFLOW_INSTALL="$(python setup.py --package-version)" | ||
export PYTHON_VERSION="python python3 python3.5 python3.6" |
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.
Could python2.7 python3.4 be explicitly versioned too?
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.
@BryanCutler The build of whl that is pushed to PyPi.org, has to run on Ubuntu 14.04 as otherwise the pip install tensorflow-io
will not work with `pip install tensorflow'.
If we build whl in Ubuntu 18.04, then some users that is using an old version of Ubuntu (16.04), will find out that they could run tensorflow but not tensorflow-io. This will not be a good experience for them.
So we stick with Ubuntu 14.04 for building whl. And the generated binary will be tested on Ubuntu 16.04/18.04.
On the other hand, some developers may not be interested in building whl themselves. They only want to build the repo and run locally, maybe debug something. They likely will not use Ubuntu 14.04 (too old). That is why we also test building the source with Ubuntu 16.04/18.04.
Signed-off-by: Yong Tang <[email protected]>
Ahh, ok makes sense thanks for the explanation. I didn't see that there
were three versions of Ubuntu, I thought it was all 16.04/18.04. I see why
we need to build on 14.04 then, sound fine to me.
…On Tue, Feb 26, 2019, 3:49 PM Yong Tang ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In .travis/python.release.sh
<#116 (comment)>:
> -rm -rf patchelf-0.9*
-curl -sOL https://bootstrap.pypa.io/get-pip.py
-python3.6 get-pip.py
-python3.5 get-pip.py
-python3 get-pip.py
-python get-pip.py
-rm -rf get-pip.py
-python3 -m pip install -q auditwheel==1.5.0
-python3 -m pip install -q wheel==0.31.1
-
-if [[ ! -z ${TENSORFLOW_INSTALL} ]]; then
- python -m pip install -q ${TENSORFLOW_INSTALL}
+# docker run -i -t --rm -v $PWD:/v -w /v --net=host buildpack-deps:14.04 /v/.travis/python.release.sh
+
+export TENSORFLOW_INSTALL="$(python setup.py --package-version)"
+export PYTHON_VERSION="python python3 python3.5 python3.6"
@BryanCutler <https://github.com/BryanCutler> The build of whl that is
pushed to PyPi.org, has to run on Ubuntu 14.04 as otherwise the pip
install tensorflow-io will not work with `pip install tensorflow'.
If we build whl in Ubuntu 18.04, then some users that is using an old
version of Ubuntu (16.04), will find out that they could run tensorflow but
not tensorflow-io. This will not be a good experience for them.
So we stick with Ubuntu 14.04 for building whl. And the generated binary
will be tested on Ubuntu 16.04/18.04.
On the other hand, some developers may not be interested in building whl
themselves. They only want to build the repo and run locally, maybe debug
something. They likely will not use Ubuntu 14.04 (too old). That is why we
also test building the source with Ubuntu 16.04/18.04.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#116 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AEUwdammCQxgizmI5GOHqB8cGoE7XLNmks5vRcfwgaJpZM4bOTKN>
.
|
@BryanCutler The Ubuntu 14.04 will be out of support (EOL) 04/2019, so likely TensorFlow will start building on Ubuntu 16.04. Then we could drop building on 14.04. There are also discussions of moving the build of TensorFlow on CentOS 6, for the purpose of manylinux2010. Don't know if this will be the direction or not yet. Though we could always build tenworflow-io with the same environment as tensorflow to make sure it works for any scenario. |
Signed-off-by: Yong Tang <[email protected]>
Signed-off-by: Yong Tang <[email protected]>
Signed-off-by: Yong Tang <[email protected]>
Hopefully to fix kafka trap 6 issue on macOS (happens on 1.13.0rc2) Signed-off-by: Yong Tang <[email protected]>
Looks like we are all good now and all tests passes on macOS (except for video/ffmpeg). Here is the list of changes in the PR:
|
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.
Nice work, thanks for doing this! Just one minor question otherwise, LGTM
-v ${SCRIPT_PATH}:/data apacheignite/ignite:${IGNITE_VERSION} /data/bin/start-plain.sh | ||
|
||
# Start Apache Ignite with IGFS. | ||
docker run -itd --name ignite-igfs -p 10500:10500 \ | ||
-v ${SCRIPT_PATH}:/data apacheignite/ignite:${IGNITE_VERSION} /data/bin/start-igfs.sh | ||
|
||
# Wait Apache Ignite to be started | ||
sleep 10 | ||
#sleep 10 |
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.
is waiting no longer needed or done somewhere else?
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 @BryanCutler. Just removed this one as Ignite is only going to be used after build is complete (takes about 10-15min) so I think no need to wait explicitly.
Great job @yongtang! |
Brilliant @yongtang! |
@damienpontifex the build is based on macOS 10.12+xcode 9 (on Travis CI). Let me know if you encounter any issues. |
Enable MacOS build on Travis CI
>=1.13.0,<1.14.0
. Also, there is only one place to specify tensorflow package version and that is in setup.py. No multiple places like before to avoid inconsistency..travis/python.release.sh
is still the command to run to build the release binary like before.Signed-off-by: Yong Tang [email protected]