Skip to content

build: Add Presto native C++ dev container#25358

Merged
tdcmeehan merged 6 commits intoprestodb:masterfrom
mblanco-denodo:dev_container_c++
Jan 8, 2026
Merged

build: Add Presto native C++ dev container#25358
tdcmeehan merged 6 commits intoprestodb:masterfrom
mblanco-denodo:dev_container_c++

Conversation

@mblanco-denodo
Copy link
Copy Markdown
Contributor

Description

Added dev container for Presto native C++

Motivation and Context

Ease Presto native C++ development

Impact

Test Plan

Contributor checklist

  • Please make sure your submission complies with our contributing guide, in particular code style and commit standards.
  • PR description addresses the issue accurately and concisely. If the change is non-trivial, a GitHub Issue is referenced.
  • Documented new properties (with its default value), SQL syntax, functions, or other functionality.
  • If release notes are required, they follow the release notes guidelines.
  • Adequate tests were added if applicable.
  • CI passed.

Release Notes

Please follow release notes guidelines and fill in the release notes below.

== NO RELEASE NOTE ==

@mblanco-denodo mblanco-denodo requested a review from a team as a code owner June 18, 2025 14:18
@steveburnett
Copy link
Copy Markdown
Contributor

@mblanco-denodo, there have been some fixes to the CI tests since the last activity on this PR. If you rebase, these pending tests might pass.

@mblanco-denodo
Copy link
Copy Markdown
Contributor Author

Hi! I've rebased and updated the devcontainer generation to be mounted from CLion, so that it uses the prestissimo dependency image leveraging us from the need to maintain the devcontainer. This should work if the dependency images work. I've also added documentation on how to configure it

@mblanco-denodo mblanco-denodo changed the title Add Presto native C++ dev container build: Add Presto native C++ dev container Oct 10, 2025
Copy link
Copy Markdown
Contributor

@steveburnett steveburnett left a comment

Choose a reason for hiding this comment

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

Thanks for the documentation! I made some suggestions and had questions. Let me know what you think, and ask if anything I wrote is unclear.

Copy link
Copy Markdown
Contributor

@steveburnett steveburnett left a comment

Choose a reason for hiding this comment

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

Thanks for the doc fixes! One minor suggestion.

@mblanco-denodo mblanco-denodo force-pushed the dev_container_c++ branch 2 times, most recently from f9a403f to 68c61fd Compare October 27, 2025 14:31
Copy link
Copy Markdown
Contributor

@czentgr czentgr left a comment

Choose a reason for hiding this comment

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

FYI, we also have another devcontainer setup: https://github.com/prestodb/presto-dev
But this is more about integration with CLion.

# Copy shared libs to the directory /runtime-libraries
mkdir /runtime-libraries && \
bash -c '!(LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib:/usr/local/lib64 ldd ../cmake-build-debug/presto_cpp/main/presto_server | grep "not found")' && \
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib:/usr/local/lib64 ldd ../cmake-build-debug/presto_cpp/main/presto_server | awk 'NF == 4 { system("cp " $3 " /runtime-libraries") }' No newline at end of file
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Need new line at the end.

@@ -0,0 +1,6 @@
#!/bin/bash
# Before executing this script, you should compile presto_server
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What happens if you don't. Will CLion throw an error?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No, this is only to match the release environment, making sure that you're executing the server this the same libraries as the release version. This way, if your compilation lacks any library, you should see failures during the execution before the code is integrated into master

steveburnett
steveburnett previously approved these changes Oct 27, 2025
Copy link
Copy Markdown
Contributor

@steveburnett steveburnett left a comment

Choose a reason for hiding this comment

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

LGTM! (docs)

Copy link
Copy Markdown
Contributor

@unidevel unidevel left a comment

Choose a reason for hiding this comment

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

Thanks, looks good!

@steveburnett
Copy link
Copy Markdown
Contributor

Re-ran the two required and failing tests for this PR in case the failure had been a glitch of some kind.

https://github.com/prestodb/presto/actions/runs/19330815080/job/57571744640?pr=25358
failed again with
failed to register layer: write /usr/hdp/3.1.0.0-78/hadoop/mapreduce.tar.gz: no space left on device.

@mblanco-denodo
Copy link
Copy Markdown
Contributor Author

HI! I've rebased my changes with master

Copy link
Copy Markdown
Contributor

@tdcmeehan tdcmeehan left a comment

Choose a reason for hiding this comment

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

Feel free to self merge once CI is green. Thanks for the doc and this feature.

@mblanco-denodo mblanco-denodo force-pushed the dev_container_c++ branch 2 times, most recently from 36de667 to 3eeabe5 Compare December 19, 2025 09:44
@mblanco-denodo
Copy link
Copy Markdown
Contributor Author

mblanco-denodo commented Dec 19, 2025

@tdcmeehan tests are a bit unstable. The feature will not affect anything as it does not change any presto code. Can you merge please?

Feel free to self merge once CI is green. Thanks for the doc and this feature.

@tdcmeehan tdcmeehan merged commit 7e44169 into prestodb:master Jan 8, 2026
80 of 81 checks passed
tdcmeehan pushed a commit to rdtr/presto that referenced this pull request Jan 14, 2026
## Description
Added dev container for Presto native C++

## Motivation and Context
<!---Why is this change required? What problem does it solve?-->
<!---If it fixes an open issue, please link to the issue here.-->
Ease Presto native C++ development

## Impact
<!---Describe any public API or user-facing feature change or any
performance impact-->

## Test Plan
<!---Please fill in how you tested your change-->

## Contributor checklist

- [ ] Please make sure your submission complies with our [contributing
guide](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md),
in particular [code
style](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md#code-style)
and [commit
standards](https://github.com/prestodb/presto/blob/master/CONTRIBUTING.md#commit-standards).
- [ ] PR description addresses the issue accurately and concisely. If
the change is non-trivial, a GitHub Issue is referenced.
- [ ] Documented new properties (with its default value), SQL syntax,
functions, or other functionality.
- [ ] If release notes are required, they follow the [release notes
guidelines](https://github.com/prestodb/presto/wiki/Release-Notes-Guidelines).
- [ ] Adequate tests were added if applicable.
- [ ] CI passed.

## Release Notes
Please follow [release notes
guidelines](https://github.com/prestodb/presto/wiki/Release-Notes-Guidelines)
and fill in the release notes below.

```
== NO RELEASE NOTE ==
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants