ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

ARROW-14506: [C++] Conda support for google-cloud-cpp - #11916

Closed
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files
Closed

ARROW-14506: [C++] Conda support for google-cloud-cpp#11916
coryan wants to merge 18 commits into
apache:masterfrom
coryan:ARROW-14506-add-google-cloud-cpp-to-conda-files

Conversation

@coryan

Copy link
Copy Markdown
Contributor

This PR adds support for google-cloud-cpp to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:

  • Conda defaults all its builds to C++17,
    this bug goes into
    some detail as to why.
  • Arrow defaults to C++11 if no CMAKE_CXX_STANDARD argument is
    provided.
  • Abseil's ABI changes when used from C++11 vs. C++17, see
    Abseil should install w/ the correct base/options.h abseil/abseil-cpp#696
  • Therefore, one must compile with C++17 to use Abseil in Conda.
  • And because google-cloud-cpp has a direct dependency on Abseil,
    exposed through the headers, one must use C++17 to use
    google-cloud-cpp too.

@github-actions

Copy link
Copy Markdown

@coryan
coryan marked this pull request as ready for review December 9, 2021 15:57
@coryan

Copy link
Copy Markdown
ContributorAuthor

The build failures seem unrelated, but do let me know if I missed something.

@pitrou

Copy link
Copy Markdown
Member

@coryan They are unrelated. I wonder why it's necessary to enable C++17 for the conda builds and not the bundled builds, though?

@pitrou
pitrou requested a review from xhochyDecember 9, 2021 17:03
@pitrou

Copy link
Copy Markdown
Member

Ah, sorry, I've just read the description more attentively :-)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Ping. Should I take some action or is this ready to be merged?

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here). See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that. Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will break OSX for now, so it should only be set for Linux (as it is done here).

So this change is doing the "Right Thing"[tm] but maybe accidentally?

See the tracking issue conda-forge/clang-compiler-activation-feedstock#17 for that.

Ack.

Can we remove the explicit setting of CMAKE_CXX_STANDARD in CMake instead?

That is way above my pay grade (for this project). It depends on whether arrow supports any compiler where the default C++ version is < C++11. For example, GCC defaults to C++98 until GCC 6.x, and there is a similar story with Clang.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pitrou do you have any thoughts on whether we can change the default for CMAKE_CXX_STANDARD?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm. I'm not sure I understand the situation entirely, but for now Arrow C++ needs to compile on gcc 4.9 (and perhaps even gcc 4.8, for a subset of Arrow). This is because of the compiler requirements for R packages...

@pitroupitrouDec 13, 2021

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, unless I misunderstand @xhochy 's first message ("it should only be set for Linux (as it is done here)"), it seems there's no real problem here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My message was mainly a heads-up that on OSX, you need to set CMAKE_CXX_STANDARD to 14. This is Linux here, so everything is fine here.

I'm not sure about the general removal of CMAKE_CXX_STANDARD as google-cloud-cpp does also set it: https://github.com/googleapis/google-cloud-cpp/blob/13ec1e946ae1baad6bcae952daf5910649dcfd0a/CMakeLists.txt#L31-L41 Possibly that combination could also be used here?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, we already have the following:

if(NOTDEFINEDCMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()

The only difference AFAICT is that we don't error out if the user explicitly asked for something earlier than C++11, but that must be a really rare case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@apacheapache deleted a comment from github-actionsBotDec 14, 2021
@pitrou

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1294

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@github-actions

Copy link
Copy Markdown

Revision: 4e33f9f7b13119b4bc44dff267e7392c0a752cdc

Submitted crossbow builds: ursacomputing/crossbow @ actions-1295

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py36-arm64Azure
conda-linux-gcc-py36-cpu-r40Azure
conda-linux-gcc-py36-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py36-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py36-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@pitrou

Copy link
Copy Markdown
Member

Hmm. There are a lot of build failures on conda CI jobs. @xhochy I don't know if you could provide guidance on these?

@coryan

Copy link
Copy Markdown
ContributorAuthor

@xhochy ping, is there something I can do to make this move forward?

@coryan

Copy link
Copy Markdown
ContributorAuthor

/cc: @emkornfield

@emkornfield

Copy link
Copy Markdown
Contributor

Conda is not something I'm very familiar with. I'll try once again to ping @xhochy to see if they might be have some free cycles in the new year.

This PR adds support for `google-cloud-cpp` to the Conda files.
Probably the most difficult change to grok is the change to compile with
C++17 when using Conda:
- Conda defaults all its builds to C++17,
[this bug](conda/conda-build#3375) goes into
some detail as to why.
- Arrow defaults to C++11 if no `CMAKE_CXX_STANDARD` argument is
provided.
- Abseil's ABI changes when used from C++11 vs. C++17, see
abseil/abseil-cpp#696
- Therefore, one must compile with C++17 to use Abseil in Conda.
- And because `google-cloud-cpp` has a direct dependency on Abseil,
exposed through the headers, one must use C++17 to use
`google-cloud-cpp` too.
@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 584f3f4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1434

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: c0ef3c5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1438

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 7f3f567

Submitted crossbow builds: ursacomputing/crossbow @ actions-1442

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: 44d84f5

Submitted crossbow builds: ursacomputing/crossbow @ actions-1445

TaskStatus
conda-linux-gcc-py38-cpuAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py38-cpu

@github-actions

Copy link
Copy Markdown

Revision: d87af2a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1592

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: cd79992

Submitted crossbow builds: ursacomputing/crossbow @ actions-1593

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@coryan Can you have a look at the failure in the last crossbow job?

Explicitly convert from `std::unique_ptr<Buffer>` to a `std::shared_ptr` on the way to convert to `Result<std::shared_ptr<>>`. I am not sure why it only failed with one compiler.
@coryan

Copy link
Copy Markdown
ContributorAuthor

@coryan Can you have a look at the failure in the last crossbow job?

Fixed, thanks for the heads up. I am not sure why only this compiler complained. Two user-defined conversions are not allowed 🤷

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 8c4f77a

Submitted crossbow builds: ursacomputing/crossbow @ actions-1595

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit conda-linux-gcc-py37-ppc64le

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1596

TaskStatus
conda-linux-gcc-py37-ppc64leAzure

@xhochy

Copy link
Copy Markdown
Member

@github-actions crossbow submit -g conda

@github-actions

Copy link
Copy Markdown

Revision: 366b494

Submitted crossbow builds: ursacomputing/crossbow @ actions-1597

TaskStatus
conda-cleanAzure
conda-linux-gcc-py310-arm64Azure
conda-linux-gcc-py310-cpuAzure
conda-linux-gcc-py310-cudaAzure
conda-linux-gcc-py310-ppc64leAzure
conda-linux-gcc-py37-arm64Azure
conda-linux-gcc-py37-cpu-r40Azure
conda-linux-gcc-py37-cpu-r41Azure
conda-linux-gcc-py37-cudaAzure
conda-linux-gcc-py37-ppc64leAzure
conda-linux-gcc-py38-arm64Azure
conda-linux-gcc-py38-cpuAzure
conda-linux-gcc-py38-cudaAzure
conda-linux-gcc-py38-ppc64leAzure
conda-linux-gcc-py39-arm64Azure
conda-linux-gcc-py39-cpuAzure
conda-linux-gcc-py39-cudaAzure
conda-linux-gcc-py39-ppc64leAzure
conda-osx-arm64-clang-py310Azure
conda-osx-arm64-clang-py38Azure
conda-osx-arm64-clang-py39Azure
conda-osx-clang-py310Azure
conda-osx-clang-py37-r40Azure
conda-osx-clang-py37-r41Azure
conda-osx-clang-py38Azure
conda-osx-clang-py39Azure
conda-win-vs2017-py310Azure
conda-win-vs2017-py37-r40Azure
conda-win-vs2017-py37-r41Azure
conda-win-vs2017-py38Azure
conda-win-vs2017-py39Azure

@xhochy

Copy link
Copy Markdown
Member

@pitrou Ready for review, all 💚 again.

@pitroupitrou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one question.

Comment threadci/docker/conda-cpp.dockerfile Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@xhochy Can you remind me the reason of CMAKE_CXX_STANDARD=17 here? Also, perhaps explain it in a comment?

@pitrou

Copy link
Copy Markdown
Member

(really great to see all conda builds green again!)

@coryan

Copy link
Copy Markdown
ContributorAuthor

Just one question.

Is the PR description good enough?

@pitrou

Copy link
Copy Markdown
Member

Just one question.

Is the PR description good enough?

Woops, sorry. Yes, definitely!

@pitroupitrou closed this in d78967eFeb 8, 2022
@ursabot

ursabot commented Feb 8, 2022

Copy link
Copy Markdown

Benchmark runs are scheduled for baseline = fa4d517 and contender = d78967e. d78967e is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Finished ⬇️0.9% ⬆️0.09%] test-mac-arm
[Failed] ursa-i9-9960x
[Finished ⬇️0.48% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
test-mac-arm: Supported benchmark langs: C++, Python, R
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@coryan
coryan deleted the ARROW-14506-add-google-cloud-cpp-to-conda-files branch February 8, 2022 15:53
jorisvandenbossche added a commit that referenced this pull request Feb 23, 2022
The actual builds were already fixed before (#11916), but now enabling them again to run them nightly.
Closes#12492 from jorisvandenbossche/ARROW-14256
Authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Signed-off-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@coryan@pitrou@emkornfield@xhochy@kszucs@ursabot