Skip to content

Conversation

@joka921
Copy link
Member

@joka921 joka921 commented Dec 1, 2025

Those include

  • Dockerfiles for gcc-8 and gcc-9 compilation
  • Scripts that use docker and the Dockerfiles to compile qlever in a mode the continues on compilation errors, stores the log for later analysis, and also runs some automated analysis of the logs.

@joka921 joka921 requested review from RobinTF and ullingerc December 1, 2025 09:42
libboost-container1.81-dev \
&& rm -rf /var/lib/apt/lists/*

# Install GCC-8 by temporarily enabling the Focal (20.04) repositories
Copy link
Member

Choose a reason for hiding this comment

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

This will break 2032 at latest when focal is completely dropped from Ubuntu's mirrors :D

Copy link
Member Author

Choose a reason for hiding this comment

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

I am fine with that. Until then we can probably also drop the support for C++17...

@@ -0,0 +1,70 @@
# Dockerfile for building QLever with GCC8 for C++17 compatibility testing
Copy link
Member

Choose a reason for hiding this comment

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

Do you plan on incorporating the additions from this PR into the automated checks?
If so, since the code for actually compiling qlever is not part of the Dockerfiles, you should publish the docker container images to a package repo like Docker hub oder Github packages and use them directly instead of rebuilding the entire container image each time (and, in particular, downloading all the dependencies each time)

Copy link
Member Author

Choose a reason for hiding this comment

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

We have an automated check already in place, which installs the dependencies directly. This PR only adds tools to analyze the builds locally. Thank you for your feedback though, we can maybe use that technique for more efficient CI checks in general in the future (not now though).

echo " python3 /qlever/misc/gcc8_logs_analyzer.py ${BUILD_LOG}"
echo ""
echo "Or examine the build log directly:"
echo " less ${BUILD_LOG}"
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
echo " less ${BUILD_LOG}"
echo " less ${BUILD_LOG}"
exit $BUILD_EXIT_CODE

@codecov
Copy link

codecov bot commented Dec 1, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.14%. Comparing base (9d855f0) to head (9335557).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2556      +/-   ##
==========================================
+ Coverage   91.13%   91.14%   +0.01%     
==========================================
  Files         467      467              
  Lines       39937    39939       +2     
  Branches     5351     5351              
==========================================
+ Hits        36397    36404       +7     
  Misses       2014     2014              
+ Partials     1526     1521       -5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sparql-conformance
Copy link

Overview

Number of Tests Passed ✅ Failed ❌ Intended ⚠️ Not tested
525 439 19 67 0

Conformance check passed ✅

No test result changes.

Details: https://qlever.dev/sparql-conformance-ui?cur=933555784922fb272006e35f2fc1c7f055960421&prev=6ec0a5eefc46dfb03cae0e3760399cf7a878694e

Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

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

Not much to add from me.

builder.add_annotation(file=err['filename'], line=err['line'], col=err['column'], message=err['message'])
builder.end_group(collapse=True)

# Used but never defined errors
Copy link
Collaborator

Choose a reason for hiding this comment

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

The comments are kinda just repeating the line below.


# No member named errors
if no_member_named_errors:
builder.begin_group(f"'no member named' Errors: {len(no_member_named_errors)}", collapse=True)
Copy link
Collaborator

Choose a reason for hiding this comment

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

I know this just repeats the pattern, but spelling "errors" with uppercase E seems odd to me here.

Copy link
Member Author

Choose a reason for hiding this comment

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

this comes from a BMW dev, I will stay with the current pattern for now.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 1, 2025

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.

3 participants