-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
ARROW-13199: [R] add ubuntu 21.04 to nightly builds #10611
Conversation
@github-actions crossbow submit test-r-rocker-r-edge-latest |
Revision: e342c87 Submitted crossbow builds: ursacomputing/crossbow @ actions-521
|
@jonkeane the change itself looks good to me, though the build is failing. |
Thanks for taking a look at this. I actually think that I might change the implementation and manage a docker file that does something similar in our repo (while this one is published to rocker, it looks like quite a bit of a one-off). The failure is accurate: we are not currently able to build on gcc11. I've tried bumping both aws-c-common and aws-sdk-cpp versions. The first resolves one error, though the second one doesn't build due to changes in the way that aws-sdk-cpp handles dependencies. I'm still trying to get it, but it looks like they've transitioned to a setup where they require using git (+ submodules) to grab the dependencies. |
@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11 |
Revision: 910cd0f Submitted crossbow builds: ursacomputing/crossbow @ actions-535
|
Ok, I've split these out into two different jobs:
|
I'm going to try and resolve the 21.04 issue now, but we might need to punt on gcc11 support for now, especially in light of https://issues.apache.org/jira/browse/ARROW-13134 which is pinning to a version of the aws-sdk that won't build cleanly on gcc11 |
Or you can disable S3 on that build for now? |
@github-actions crossbow submit -g r |
Revision: 42b54cf Submitted crossbow builds: ursacomputing/crossbow @ actions-539 |
42b54cf
to
9e932c0
Compare
@github-actions crossbow submit -g r |
Revision: 9e932c0 Submitted crossbow builds: ursacomputing/crossbow @ actions-541 |
@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11 |
Revision: 973f4b0 Submitted crossbow builds: ursacomputing/crossbow @ actions-548
|
ci/docker/linux-apt-r.dockerfile
Outdated
@@ -19,6 +19,9 @@ ARG base | |||
FROM ${base} | |||
ARG arch | |||
|
|||
ARG arrow_build_static="OFF" |
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.
Please remove these.
ci/docker/linux-apt-r.dockerfile
Outdated
@@ -84,7 +97,7 @@ COPY python/requirements-build.txt /arrow/python/ | |||
RUN pip install -r arrow/python/requirements-build.txt | |||
|
|||
ENV \ | |||
ARROW_BUILD_STATIC=OFF \ | |||
ARROW_BUILD_STATIC=${arrow_build_static} \ |
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.
Restore the default values instead of using a build argument.
ci/docker/linux-apt-r.dockerfile
Outdated
@@ -95,7 +108,7 @@ ENV \ | |||
ARROW_PARQUET=ON \ | |||
ARROW_PLASMA=OFF \ | |||
ARROW_PYTHON=ON \ | |||
ARROW_S3=ON \ | |||
ARROW_S3=${arrow_s3} \ |
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.
Same as above.
dev/tasks/tasks.yml
Outdated
UBUNTU: 21.04 | ||
CLANG_TOOLS: 9 # can remove this when >=9 is the default | ||
GCC_VERSION: 11 | ||
ARROW_S3: OFF # S3 support is not buildable with gcc11 right now |
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.
Add:
env: ...
flags: "-e ARROW_S3=OFF"
docker-compose.yml
Outdated
@@ -1006,6 +1008,8 @@ services: | |||
arch: ${ARCH} | |||
r: ${R} | |||
base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp | |||
gcc_version: ${GCC_VERSION} | |||
arrow_s3: ${ARROW_S3} |
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.
Remove arrow_s3
.
docker-compose.yml
Outdated
@@ -1019,6 +1023,38 @@ services: | |||
/arrow/ci/scripts/python_build.sh /arrow /build && | |||
/arrow/ci/scripts/r_test.sh /arrow" | |||
|
|||
ubuntu-r-static: |
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.
ubuntu-r-static
ideally should be removed and called with:
archery docker run -e ARROW_BUILD_STATIC=ON -e ANOTHER_ENV_VAR=ETC ubuntu-r
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.
See an example of a static C++ build using the ubuntu-cpp
image.
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.
Ah, ha! That's what I was missing. Thanks for that pointer
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.
Build time variables
The variables in the .env
files are build time variables used during the docker build commands, in other words used to produce docker images. We pass these arguments as environment variables to the archery command itself:
UBUNTU=21.04 archery docker run ubuntu-cpp
Runtime variables
Whereas the "runtime" variables passed to the docker container
to alter the behavior of the command we run inside the image:
/bin/bash -c "
/arrow/ci/scripts/cpp_build.sh /arrow /build &&
/arrow/ci/scripts/python_build.sh /arrow /build &&
/arrow/ci/scripts/r_test.sh /arrow"
We typically list these runtime variables at the and of the dockerfiles and in the docker-compose.yml as ENV
and environment
variables (not build-arguments). We can pass custom environment variables to the containers using:
archery docker run --env ARROW_PARQUET=OFF -e ARROW_BUILD_TESTS=ON ubuntu-cpp
@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11 |
Revision: b209a48 Submitted crossbow builds: ursacomputing/crossbow @ actions-561
|
Thanks for the help @kszucs , I've made the changes that implement what you suggested (I'll push them in a bit). One difference using the same ubuntu-r docker layer for both non-static and static is that the non-static one will build a version of the cpp that we then ignore later when R is being installed. Since we're running the same command:
That wouldn't be a huge deal, but I'm running into an issue with the GCC11 build where if we do run If I change this command to be:
it passes just fine. Is there a way with archery to override the docker command (e.g. from the tasks.yml file) (like I can do with the docker-compose commands below)? I've looked and tried a few things, but nothing seemed to work. Another alternative would be to create another docker-compose service like the following (and we might even move some of the content in
|
Hmm, it looks like that supplying a custom command should work out of the box now that I read the source, but this is what I'm getting when I try with this command:
|
@github-actions crossbow submit test-r-ubuntu-21.04 test-r-gcc-11 |
Revision: 5ad97c6 Submitted crossbow builds: ursacomputing/crossbow @ actions-563
|
I moved to 21.04 on my laptop to avoid drivers problems... and now I'm solving problems to install Arrow, like moving to a better circle in Dante's Inferno Here are the installation steps I used
This is the output after building successfully from this branch:
|
I've created https://issues.apache.org/jira/browse/ARROW-13261 to remove the additional service once GCC 11 building is fixed (either via https://issues.apache.org/jira/browse/ARROW-13241 or another ticket) |
@jonkeane Sorry, just seen the notification. Just wanted to confirm that your solution looks good to me. |
No problem, thanks for the confirmation! |
@jonkeane It seems that we can't use $ archery docker run python-wheel-manylinux-2014 bash
...
ValueError: Found errors with docker-compose:
- The Compose file '/home/kou/work/cpp/arrow.kou/docker-compose.yml' is invalid because:
- Unsupported config option for services.ubuntu-r-only-r: 'extends' |
Out of curiosity, what version of Regardless of it being supported in new versions, we might want to revert this to the prior full but more repetitive specification I had earlier in the PR process (or we could figure out / fix overriding the command issue I ran into). |
Thanks. I'm using 1.25.0 installed by I'll use newer docker-compose. |
We need it for "extends". See also: * https://issues.apache.org/jira/browse/ARROW-13199 * apache#10611 * docker/compose#7588
We need it for "extends". See also: * https://issues.apache.org/jira/browse/ARROW-13199 * #10611 * docker/compose#7588 Closes #10681 from kou/require-docker-compose-1.27.0-or-later Authored-by: Sutou Kouhei <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]>
No description provided.