Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu24 packages #26

Closed
wants to merge 3 commits into from
Closed

Ubuntu24 packages #26

wants to merge 3 commits into from

Conversation

MarioIvancik
Copy link
Member

@MarioIvancik MarioIvancik commented Sep 6, 2024

Summary by CodeRabbit

  • New Features

    • Enhanced Dockerfile for Debian 12 to support a customized build process for GCC, improving the development environment for C and C++.
    • Updated Docker images to support Ubuntu 24.04 across various packages, enhancing compatibility and performance.
    • Introduced C++20 standards in the build configuration for certain packages, improving functionality and modern feature support.
  • Bug Fixes

    • Version updates for multiple packages, including spdlog and ba-logger, indicating potential enhancements and bug fixes.
  • Documentation

    • Updated Git repository URIs in the configuration files for better project management.
  • Chores

    • Incremented version number from 0.3.2 to 0.3.3, reflecting minor updates and improvements.

@MarioIvancik MarioIvancik self-assigned this Sep 6, 2024
Copy link

coderabbitai bot commented Sep 6, 2024

Walkthrough

The changes encompass updates to various Dockerfiles and configuration files across multiple packages, primarily focusing on modifying the supported Docker images by removing older versions and adding Ubuntu 24.04. Additionally, several packages have undergone version upgrades, reflecting changes in dependencies and repository management. The updates streamline the Docker environment and enhance compatibility with newer software versions.

Changes

Files Change Summary
example/docker/debian12/Dockerfile Added dependencies for building GCC, configured GCC compilation, and set environment variables.
example/docker/ubuntu2204/Dockerfile Added PPA for toolchain, installed GCC 13 and G++ 13, and updated alternatives.
example/docker/ubuntu2404/Dockerfile Changed base image to ubuntu:24.04, added CMake installation via package manager.
example/package/ba-logger/*.json Updated version from v1.2.0 to v2.0.0, modified supported image names in DockerMatrix.
example/package/boost/*.json Updated version from 1.78.0 to 1.86.0, modified supported image names in DockerMatrix.
example/package/bzip2/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/cpprestsdk/*.json Added CPPREST_EXCLUDE_WEBSOCKETS definition, updated DockerMatrix images.
example/package/curl/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/cxxopts/*.json Updated supported images in DockerMatrix.
example/package/expat/*.json Updated supported images in DockerMatrix.
example/package/fleet-http-client-shared/*.json Updated version from v1.3.0 to v1.5.0, removed ba-logger dependency, modified DockerMatrix.
example/package/fleet-protocol-cpp/*.json Updated supported images in DockerMatrix.
example/package/gtest/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/libosmium/*.json Updated supported images in DockerMatrix.
example/package/lz4/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/modbuspp/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/msgpack/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/nlohmannjson/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/pahomqttc/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/pahomqttcpp/*.json Added C++ standard settings and updated DockerMatrix images.
example/package/protobuf/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/protozero/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
example/package/spdlog/*.json Updated version from v1.8.5 to v1.14.1, modified DockerMatrix images.
example/package/statesmurf/*.json Updated Git repository URI, version from v2.0.1 to v2.2.0, modified DockerMatrix images.
example/package/zlib/*.json Removed older image names and added ubuntu2404 in DockerMatrix.
version.txt Updated version from 0.3.2 to 0.3.3.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Outside diff range, codebase verification and nitpick comments (1)
example/package/gtest/gtest_debug.json (1)

29-29: Issue: ubuntu2404 Docker image not found

The ubuntu2404 Docker image is not available on Docker Hub. Please ensure that the image is published and accessible, or verify if a different tag name should be used.

  • The search for ubuntu2404 returned no results.
Analysis chain

Approved: Update to Docker images.

The changes to the Docker images are approved. It's important to ensure that the new ubuntu2404 image is available and compatible with the testing requirements.

Run the following script to verify the availability of the ubuntu2404 Docker image:

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check the availability of the `ubuntu2404` Docker image on Docker Hub.

# Test: Search for the `ubuntu2404` image. Expect: The image should be listed.
curl -s 'https://hub.docker.com/v2/repositories/library/ubuntu/tags/?page_size=100' | jq '.results[].name' | grep '2404'

Length of output: 329

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 395729b and 147a1ee.

Files selected for processing (52)
  • example/docker/debian12/Dockerfile (2 hunks)
  • example/docker/ubuntu2204/Dockerfile (1 hunks)
  • example/docker/ubuntu2404/Dockerfile (1 hunks)
  • example/package/ba-logger/ba-logger_debug.json (3 hunks)
  • example/package/ba-logger/ba-logger_release.json (3 hunks)
  • example/package/boost/boost_debug.json (2 hunks)
  • example/package/boost/boost_release.json (2 hunks)
  • example/package/bzip2/bzip2_debug.json (1 hunks)
  • example/package/bzip2/bzip2_release.json (1 hunks)
  • example/package/cpprestsdk/cpprestsdk_debug.json (2 hunks)
  • example/package/cpprestsdk/cpprestsdk_release.json (2 hunks)
  • example/package/curl/curl_debug.json (1 hunks)
  • example/package/curl/curl_release.json (1 hunks)
  • example/package/cxxopts/cxxopts_v3_debug.json (1 hunks)
  • example/package/cxxopts/cxxopts_v3_release.json (1 hunks)
  • example/package/expat/expat_debug.json (1 hunks)
  • example/package/expat/expat_release.json (1 hunks)
  • example/package/fleet-http-client-shared/fleet_http_client_debug.json (3 hunks)
  • example/package/fleet-http-client-shared/fleet_http_client_release.json (3 hunks)
  • example/package/fleet-protocol-cpp/fleet_protocol_cpp_debug.json (1 hunks)
  • example/package/fleet-protocol-cpp/fleet_protocol_cpp_release.json (1 hunks)
  • example/package/fleet-protocol-interface/fleet_protocol_debug.json (1 hunks)
  • example/package/fleet-protocol-interface/fleet_protocol_release.json (1 hunks)
  • example/package/fleet-protocol-internal-client/internal_client_debug.json (1 hunks)
  • example/package/fleet-protocol-internal-client/internal_client_release.json (1 hunks)
  • example/package/gtest/gtest_debug.json (1 hunks)
  • example/package/gtest/gtest_release.json (1 hunks)
  • example/package/libosmium/libosmium_debug.json (1 hunks)
  • example/package/libosmium/libosmium_release.json (1 hunks)
  • example/package/lz4/lz4_debug.json (1 hunks)
  • example/package/lz4/lz4_release.json (1 hunks)
  • example/package/modbuspp/modbuspp_debug.json (1 hunks)
  • example/package/modbuspp/modbuspp_release.json (1 hunks)
  • example/package/msgpack/msgpack_debug.json (1 hunks)
  • example/package/msgpack/msgpack_release.json (1 hunks)
  • example/package/nlohmannjson/nlohmannjson_debug.json (1 hunks)
  • example/package/nlohmannjson/nlohmannjson_release.json (1 hunks)
  • example/package/pahomqttc/pahomqttc_debug.json (1 hunks)
  • example/package/pahomqttc/pahomqttc_release.json (1 hunks)
  • example/package/pahomqttcpp/pahomqttcpp_debug.json (2 hunks)
  • example/package/pahomqttcpp/pahomqttcpp_release.json (2 hunks)
  • example/package/protobuf/protobuf_debug_v21.12.json (1 hunks)
  • example/package/protobuf/protobuf_release_v21.12.json (1 hunks)
  • example/package/protozero/protozero_debug.json (1 hunks)
  • example/package/protozero/protozero_release.json (1 hunks)
  • example/package/spdlog/spdlog_debug.json (3 hunks)
  • example/package/spdlog/spdlog_release.json (3 hunks)
  • example/package/statesmurf/statesmurf_debug.json (3 hunks)
  • example/package/statesmurf/statesmurf_release.json (3 hunks)
  • example/package/zlib/zlib_debug.json (1 hunks)
  • example/package/zlib/zlib_release.json (1 hunks)
  • version.txt (1 hunks)
Files skipped from review due to trivial changes (5)
  • example/package/curl/curl_debug.json
  • example/package/curl/curl_release.json
  • example/package/lz4/lz4_debug.json
  • example/package/pahomqttc/pahomqttc_debug.json
  • version.txt
Additional comments not posted (76)
example/package/gtest/gtest_release.json (1)

29-29: Approved: Consistent update across environments.

The update to the Docker images is consistent with the debug configuration, which is good for maintaining uniformity across environments. Ensure the new ubuntu2404 image is available and compatible as previously verified.

Use the same verification script as in the debug configuration to check the availability of the ubuntu2404 Docker image.

example/package/zlib/zlib_debug.json (1)

29-30: Approved: Update to Docker images with additional ARM architecture support.

The update to the Docker images, including the addition of ubuntu2404 and the maintenance of ubuntu1804-aarch64, is approved. It's important to verify the availability and compatibility of both the new image and the ARM-specific image.

Run the following script to verify the availability of the ubuntu2404 and ubuntu1804-aarch64 Docker images:

example/package/modbuspp/modbuspp_debug.json (1)

30-30: Correct update of Docker images.

The addition of "ubuntu2404" to the "ImageNames" array aligns with the PR's objectives to update Docker images to newer versions. Ensure that all dependent configurations and scripts are updated to accommodate this new image.

example/package/zlib/zlib_release.json (1)

29-30: Correct update of Docker images.

The addition of "ubuntu2404" to the "ImageNames" array aligns with the PR's objectives to update Docker images to newer versions. Ensure that all dependent configurations and scripts are updated to accommodate this new image.

example/package/bzip2/bzip2_debug.json (1)

29-29: Correct update of Docker images.

The addition of "ubuntu2404" to the "ImageNames" array aligns with the PR's objectives to update Docker images to newer versions. Ensure that all dependent configurations and scripts are updated to accommodate this new image.

example/package/modbuspp/modbuspp_release.json (1)

30-30: Approved changes to Docker images.

The update to include "ubuntu2404" and remove older versions aligns with the PR objectives. Ensure that the new Docker image is available and compatible with the package requirements.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/bzip2/bzip2_release.json (1)

29-29: Approved changes to Docker images.

The update to include "ubuntu2404" and remove older versions aligns with the PR objectives. Ensure that the new Docker image is available and compatible with the package requirements.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/msgpack/msgpack_debug.json (1)

32-32: Approved changes to Docker images.

The update to include "ubuntu2404" and remove older versions aligns with the PR objectives. Ensure that the new Docker image is available and compatible with the package requirements.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/msgpack/msgpack_release.json (1)

32-32: Approved: Update to Docker images.

The update to include "ubuntu2404" in the Docker images list aligns with the PR's objectives to focus on newer and more relevant Docker images. This change is consistent and correctly implemented within the context of the file.

example/docker/ubuntu2404/Dockerfile (2)

1-1: Approved: Update to base image.

The update to use ubuntu:24.04 as the base image is correctly implemented and aligns with the PR's objectives to adopt newer Ubuntu versions.


8-8: Best Practice: Clean up after installations.

It's good practice in Dockerfiles to remove unnecessary files after installations to reduce the image size. This is correctly done here with the removal of /var/lib/apt/lists/* after package installations.

example/package/expat/expat_debug.json (1)

31-31: Approved: Update to Docker images.

The update to include "ubuntu2404" in the Docker images list aligns with the PR's objectives to focus on newer and more relevant Docker images. This change is consistent and correctly implemented within the context of the file.

example/package/protozero/protozero_debug.json (1)

31-31: Update to Docker images approved.

The addition of "ubuntu2404" aligns with the PR objectives to use newer Docker images. However, ensure that this image is available and compatible with the build environment.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/expat/expat_release.json (1)

31-31: Update to Docker images approved.

The addition of "ubuntu2404" aligns with the PR objectives to use newer Docker images. However, ensure that this image is available and compatible with the build environment.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/protozero/protozero_release.json (1)

31-31: Update to Docker images approved.

The addition of "ubuntu2404" aligns with the PR objectives to use newer Docker images. However, ensure that this image is available and compatible with the build environment.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/lz4/lz4_release.json (1)

31-31: Approved: Updated Docker images.

The changes to the ImageNames array are approved. Ensure that the new Docker image "ubuntu2404" is tested to verify compatibility with the build environment.

Run the following script to verify the Docker image compatibility:

example/package/nlohmannjson/nlohmannjson_debug.json (1)

31-31: Approved: Updated Docker images.

The changes to the ImageNames array are approved. Ensure that the new Docker image "ubuntu2404" is tested to verify compatibility with the build environment.

Run the following script to verify the Docker image compatibility:

example/package/nlohmannjson/nlohmannjson_release.json (1)

31-31: Approved: Updated Docker images.

The changes to the ImageNames array are approved. Ensure that the new Docker image "ubuntu2404" is tested to verify compatibility with the build environment.

Run the following script to verify the Docker image compatibility:

example/package/boost/boost_debug.json (3)

12-12: BOOST_VERSION updated successfully.

The update from version 1.78.0 to 1.86.0 is correctly implemented.


18-18: VersionTag updated successfully.

The update to v1.86.0 is correctly implemented and consistent with the BOOST_VERSION.


31-31: Docker image update handled correctly.

The addition of "ubuntu2404" aligns with the PR objectives to support newer Ubuntu versions.

example/package/boost/boost_release.json (3)

12-12: BOOST_VERSION updated successfully.

The update from version 1.78.0 to 1.86.0 is correctly implemented.


18-18: VersionTag updated successfully.

The update to v1.86.0 is correctly implemented and consistent with the BOOST_VERSION.


31-31: Docker image update handled correctly.

The addition of "ubuntu2404" aligns with the PR objectives to support newer Ubuntu versions.

example/package/cxxopts/cxxopts_v3_debug.json (1)

32-32: Docker image update handled correctly.

The addition of "ubuntu2404" aligns with the PR objectives to support newer Ubuntu versions.

example/package/spdlog/spdlog_debug.json (3)

19-19: Version Tag Update Approved

The update of the VersionTag to "v1.14.1" ensures consistency in versioning across the configuration.


32-32: Docker Image Update Approved: Verify New Image Availability

The addition of "ubuntu2404" focuses on more recent and supported versions. Ensure that this Docker image is available and functional.


6-6: Version Upgrade Approved: Verify Compatibility

The upgrade of the Revision field to "v1.14.1" is noted and aligns with the PR objectives. Ensure compatibility with other dependencies and the overall system.

example/package/cxxopts/cxxopts_v3_release.json (1)

32-32: Docker Image Update Approved: Verify New Image Availability

The addition of "ubuntu2404" updates the environment to a more recent version. Ensure that this Docker image is available and functional.

example/package/spdlog/spdlog_release.json (3)

19-19: Version Tag Update Approved

The update of the VersionTag to "v1.14.1" ensures consistency in versioning across the configuration.


6-6: Version Upgrade Approved: Verify Compatibility

The upgrade of the Revision field to "v1.14.1" is noted and aligns with the PR objectives. Ensure compatibility with other dependencies and the overall system.


32-32: Docker Image Update Approved: Verify New Image Availability

The addition of "ubuntu2404" focuses on more recent and supported versions. Ensure that this Docker image is available and functional.

example/package/ba-logger/ba-logger_debug.json (3)

8-8: Version update approved.

The update of the "Revision" field to v2.0.0 is consistent with the overall package upgrade.


22-22: Version update approved.

The update of the "VersionTag" field to v2.0.0 is consistent with the overall package upgrade.


34-34: Docker image update approved.

The addition of ubuntu2404 to the "ImageNames" array aligns with the shift towards supporting newer operating system versions.

example/package/ba-logger/ba-logger_release.json (3)

8-8: Version update approved.

The update of the "Revision" field to v2.0.0 is consistent with the overall package upgrade.


22-22: Version update approved.

The update of the "VersionTag" field to v2.0.0 is consistent with the overall package upgrade.


34-34: Docker image update approved.

The addition of ubuntu2404 to the "ImageNames" array aligns with the shift towards supporting newer operating system versions.

example/package/cpprestsdk/cpprestsdk_debug.json (2)

14-14: Verify the impact of excluding WebSockets.

The addition of "CPPREST_EXCLUDE_WEBSOCKETS": "ON" may significantly affect the library's functionality. Please ensure that this change is well-documented and that its impact on existing projects is assessed.


32-32: Docker image update approved.

The addition of ubuntu2404 to the "ImageNames" array aligns with the shift towards supporting newer operating system versions.

example/package/cpprestsdk/cpprestsdk_release.json (1)

32-32: Docker image update approved; verify compatibility.

The update to include "ubuntu2404" in the Docker images is approved. Ensure to verify the compatibility of this new Docker image with the package to avoid deployment issues.

Run the following script to verify the compatibility of the new Docker image:

example/package/statesmurf/statesmurf_debug.json (3)

8-8: Git repository URI update approved; verify all references.

The update to the Git repository URI is approved. Ensure to verify that all references to the old repository are updated across documentation and build scripts to avoid confusion.

Run the following script to verify that all references to the old repository are updated:


35-35: Docker image update approved; verify compatibility.

The update to include "ubuntu2404" in the Docker images is approved. Ensure to verify the compatibility of this new Docker image with the package to avoid deployment issues.

Run the following script to verify the compatibility of the new Docker image:


9-9: Git revision update approved; verify compatibility.

The update to the Git revision is approved. Ensure to verify that this new version is compatible with existing dependencies and does not introduce breaking changes.

Run the following script to verify the compatibility of the new version:

example/package/statesmurf/statesmurf_release.json (3)

8-8: Git repository URI update approved; verify all references.

The update to the Git repository URI is approved. Ensure to verify that all references to the old repository are updated across documentation and build scripts to avoid confusion.

Run the following script to verify that all references to the old repository are updated:

Verification successful

Verification successful: Old Git repository URI not found.

The search across the entire codebase did not find any references to the old Git repository URI. This confirms that all references have been updated to the new URI. No further action is required.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all references to the old repository are updated.

# Test: Search for the old URI in the entire codebase. Expect: No occurrences.
rg --type json "https://github.com/Melky-Phoe/StateSmurf.git"

Length of output: 61


Script:

#!/bin/bash
# Description: Verify that all references to the old repository are updated across all file types.

# Test: Search for the old URI in the entire codebase. Expect: No occurrences.
rg "https://github.com/Melky-Phoe/StateSmurf.git"

Length of output: 49


35-35: Docker image update approved; verify compatibility.

The update to include "ubuntu2404" in the Docker images is approved. Ensure to verify the compatibility of this new Docker image with the package to avoid deployment issues.

Run the following script to verify the compatibility of the new Docker image:


9-9: Git revision update approved; verify compatibility.

The update to the Git revision is approved. Ensure to verify that this new version is compatible with existing dependencies and does not introduce breaking changes.

Run the following script to verify the compatibility of the new version:

example/package/protobuf/protobuf_debug_v21.12.json (1)

33-34: Docker image updates approved.

The changes to the ImageNames array are consistent with the PR objectives. The addition of "ubuntu2404" supports newer software dependencies, and the retention of "ubuntu1804-aarch64" provides backward compatibility.

Run the following script to verify the consistency of Docker image updates across other configuration files:

Verification successful

Docker image updates are consistent across the codebase.

The addition of "ubuntu2404" has been consistently applied across various JSON configuration files, ensuring uniformity in Docker image updates. This aligns with the PR objectives and supports the intended software dependencies.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the consistency of Docker image updates across other configuration files.

# Test: Search for Docker image updates in other JSON configuration files. Expect: Consistent updates.
rg --type json -A 5 $'ubuntu2404'

Length of output: 11117

example/package/protobuf/protobuf_release_v21.12.json (1)

33-34: Docker image updates approved.

The changes to the ImageNames array are consistent with the PR objectives. The addition of "ubuntu2404" supports newer software dependencies, and the retention of "ubuntu1804-aarch64" provides backward compatibility.

Run the following script to verify the consistency of Docker image updates across other configuration files:

Verification successful

Docker image updates are consistent across the codebase.

The addition of "ubuntu2404" has been consistently applied across various JSON configuration files, ensuring alignment with the intended updates. No inconsistencies were found.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the consistency of Docker image updates across other configuration files.

# Test: Search for Docker image updates in other JSON configuration files. Expect: Consistent updates.
rg --type json -A 5 $'ubuntu2404'

Length of output: 11117

example/package/libosmium/libosmium_debug.json (1)

40-40: Docker image updates approved.

The changes to the ImageNames array are consistent with the PR objectives. The addition of "ubuntu2404" supports newer software dependencies.

Run the following script to verify the consistency of Docker image updates across other configuration files:

Verification successful

Docker image updates are consistent across configuration files.

The addition of "ubuntu2404" has been uniformly applied across multiple JSON configuration files, ensuring consistency with the PR objectives.

  • Files updated include configurations for packages like zlib, nlohmannjson, statesmurf, spdlog, pahomqttcpp, protobuf, pahomqttc, protozero, msgpack, libosmium, lz4, gtest, modbuspp, fleet-protocol-interface, fleet-protocol-internal-client, fleet-protocol-cpp, expat, curl, cxxopts, fleet-http-client-shared, boost, bzip2, cpprestsdk, and ba-logger.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the consistency of Docker image updates across other configuration files.

# Test: Search for Docker image updates in other JSON configuration files. Expect: Consistent updates.
rg --type json -A 5 $'ubuntu2404'

Length of output: 11117

example/package/libosmium/libosmium_release.json (1)

40-40: Approved: Docker image update for libosmium.

The update to include "ubuntu2404" and remove older versions aligns with the PR objectives to support newer Docker images. This change is consistent and well-implemented.

example/package/pahomqttc/pahomqttc_release.json (1)

35-35: Approved: Docker image update for pahomqttc.

The inclusion of "ubuntu2404" and the removal of older versions are consistent with the PR objectives to streamline Docker environments with newer software versions. This change is well-executed.

example/package/fleet-protocol-interface/fleet_protocol_debug.json (1)

33-34: Approved: Docker image update for fleet protocol interface.

The update to include "ubuntu2404" while retaining "ubuntu1804-aarch64" ensures broader compatibility and aligns with the PR objectives to support newer Docker images alongside specific older versions for compatibility reasons. This change is well-implemented.

example/package/fleet-protocol-interface/fleet_protocol_release.json (1)

33-34: Approved changes to Docker images.

The modifications to the ImageNames array are consistent with the PR objectives. Ensure that the new Docker image "ubuntu2404" is available and compatible with the configurations used in this project.

Run the following script to verify the availability and compatibility of the new Docker image:

Verification successful

Docker image "ubuntu2404" is available.

The "ubuntu2404" Docker image is confirmed to be available on Docker Hub, ensuring compatibility with the project's configurations. No further action is required regarding the image's availability.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the availability and compatibility of the Docker image "ubuntu2404".

# Test: Check Docker Hub for the image. Expect: Image should be listed.
docker search ubuntu:24.04

Length of output: 102


Script:

#!/bin/bash
# Description: Check the availability of the "ubuntu2404" Docker image using Docker Hub API.

# Fetch the list of tags for the official Ubuntu image from Docker Hub
curl -s https://registry.hub.docker.com/v1/repositories/library/ubuntu/tags | jq -r '.[].name' | grep '^24.04$'

Length of output: 170


Script:

#!/bin/bash
# Description: Check the availability of the "ubuntu2404" Docker image using Docker Hub API.

# Fetch the list of tags for the official Ubuntu image from Docker Hub using the correct API endpoint
curl -s https://hub.docker.com/v2/repositories/library/ubuntu/tags/?page_size=100 | jq -r '.results[].name' | grep '^24.04$'

Length of output: 134

example/package/fleet-protocol-cpp/fleet_protocol_cpp_debug.json (1)

35-35: Approved changes to Docker images.

The modifications to the ImageNames array are consistent with the PR objectives. Ensure that the new Docker image "ubuntu2404" is available and compatible with the configurations used in this project.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/fleet-protocol-cpp/fleet_protocol_cpp_release.json (1)

35-35: Approved changes to Docker images.

The modifications to the ImageNames array are consistent with the PR objectives. Ensure that the new Docker image "ubuntu2404" is available and compatible with the configurations used in this project.

Run the following script to verify the availability and compatibility of the new Docker image:

example/package/fleet-protocol-internal-client/internal_client_debug.json (1)

36-37: Approved Docker image updates.

The updates to the Docker images in the DockerMatrix are consistent with the PR objectives to support newer versions. Ensure that the new Ubuntu 24.04 image is tested for compatibility with the dependencies and the build process.

Run the following script to verify the compatibility of the new Docker image:

example/package/fleet-protocol-internal-client/internal_client_release.json (1)

36-37: Approved Docker image updates.

The updates to the Docker images in the DockerMatrix are consistent with the PR objectives to support newer versions. Ensure that the new Ubuntu 24.04 image is tested for compatibility with the dependencies and the build process.

Run the following script to verify the compatibility of the new Docker image:

example/package/pahomqttcpp/pahomqttcpp_debug.json (2)

39-39: Approved Docker image updates.

The updates to the Docker images in the DockerMatrix are consistent with the PR objectives to support newer versions. Ensure that the new Ubuntu 24.04 image is tested for compatibility with the dependencies and the build process.

Run the following script to verify the compatibility of the new Docker image:


19-20: Approved CMake configuration updates.

The addition of CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED enhances the build configuration by explicitly defining the C++ version. Verify that these settings do not adversely affect the build process or compatibility with existing code.

Run the following script to verify the impact of the new CMake settings on the build process:

Verification successful

CMake configuration updates verified.

The CMAKE_CXX_STANDARD and CMAKE_CXX_STANDARD_REQUIRED settings are consistently applied across both debug and release configurations. Ensure that these settings do not adversely affect the build process or compatibility with existing code by performing a manual build verification.

  • Files affected:
    • example/package/pahomqttcpp/pahomqttcpp_debug.json
    • example/package/pahomqttcpp/pahomqttcpp_release.json
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the impact of the new CMake settings on the build process.

# Test: Search for the CMake settings usage. Expect: Only occurrences of the new settings.
rg --type json -A 5 $'CMAKE_CXX_STANDARD'

Length of output: 1055

example/docker/ubuntu2204/Dockerfile (3)

7-8: Proper setup of toolchain via PPA

The addition of software-properties-common followed by the PPA setup is done correctly. This ensures access to newer toolchain versions, which is crucial for a development environment.


12-13: Optimized package installation and cleanup

The installation of specific compiler versions (gcc-13 and g++-13) followed by a cleanup step (rm -rf /var/lib/apt/lists/*) is well-handled. This approach not only ensures the use of specific tools but also optimizes the Docker image size.


14-14: Correct setup of compiler alternatives

The use of update-alternatives to set gcc and g++ to point to the newly installed versions (gcc-13 and g++-13) is correctly implemented. This ensures that the desired compiler versions are used by default, which is essential for consistent builds.

example/docker/debian12/Dockerfile (4)

8-8: Appropriate package installation for custom builds

The installation of software-properties-common and flex along with other essential tools, followed by a cleanup step, is well-handled. This setup supports the custom building of software, including GCC, and optimizes the Docker image size.


11-16: Well-structured GCC build setup

The process of cloning the GCC repository, checking out the specific gcc-13 release, and setting up for the build is meticulously detailed and correctly implemented. This setup is crucial for ensuring that the custom GCC build is based on the desired version and configurations.


17-20: Efficient and correct GCC compilation setup

The configuration and compilation of GCC using all available processor cores (make -j$(nproc)) and the subsequent installation are efficiently and correctly implemented. This ensures a fast and reliable setup of the compiler in the Docker environment.


33-36: Proper configuration of environment variables

The setting of environment variables (CC, CXX, LD_LIBRARY_PATH) to ensure the newly installed GCC is used as the default compiler is correctly implemented. This setup is essential for maintaining consistency in compiler behavior across different operations within the Docker environment.

example/package/fleet-http-client-shared/fleet_http_client_debug.json (4)

3-3: Verify dependency removal impact.

The removal of "ba-logger" from the "DependsOn" section could potentially impact other components that rely on this library. Please ensure that all necessary adjustments or replacements are made to maintain functionality.

Verification successful

Removal of "ba-logger" from fleet_http_client_debug.json is isolated.

The "ba-logger" dependency has been removed from the fleet_http_client_debug.json file, but it remains referenced in other parts of the project, such as statesmurf_debug.json and statesmurf_release.json. This indicates that the removal is specific to the fleet HTTP client and should not impact other components that still depend on "ba-logger". Ensure that any functionality previously relying on "ba-logger" within the fleet HTTP client is appropriately handled or replaced.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify if "ba-logger" is still referenced elsewhere in the project.

# Test: Search for "ba-logger" references. Expect: No occurrences.
rg --type json -A 5 $'ba-logger'

Length of output: 2582


6-6: Approve version update but verify compatibility.

The update of the "Revision" field from "v1.3.0" to "v1.5.0" is noted. Please verify that this new version is compatible with other components and dependencies used in the project.

Verification successful

Version update to v1.5.0 verified, recommend manual compatibility check.

The update of the "Revision" field to "v1.5.0" is consistent across related configuration files. No immediate compatibility issues are evident from the provided context. However, it is advisable to manually verify compatibility with other components and dependencies to ensure seamless integration.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify compatibility of the new Git revision with other components.

# Test: Check for compatibility issues in the project documentation or integration tests.
cat README.md
rg --type json -A 5 $'v1.5.0'

Length of output: 6055


22-22: Approve version update but verify consistency.

The update of the "VersionTag" from "v1.3.0" to "v1.5.0" is approved. Ensure that this version update is consistently reflected across all documentation and metadata.

Verification successful

Version update verified in JSON files, check other documentation.

The update of the "VersionTag" to "v1.5.0" is consistently applied in the JSON files checked. Ensure that this version update is also reflected in any other relevant documentation or metadata files that might not have been covered by the search.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify consistency of the version tag across project files.

# Test: Search for the old and new version tags to ensure consistency.
rg --type json -A 5 $'v1.3.0'
rg --type json -A 5 $'v1.5.0'

Length of output: 2250


34-34: Approve Docker image update but verify configuration.

The update in the "DockerMatrix" section to include "ubuntu2404" and remove older versions is approved. Please ensure that the new Docker image is properly configured and tested in the build environment.

example/package/pahomqttcpp/pahomqttcpp_release.json (2)

39-39: Approve Docker Image Update

The addition of "ubuntu2404" to the Docker images is a positive update, ensuring compatibility with the latest Ubuntu LTS release.


19-20: Approve C++20 Standard Settings

The addition of "CMAKE_CXX_STANDARD": "20" and "CMAKE_CXX_STANDARD_REQUIRED": "OFF" is a good step towards modernizing the codebase. However, ensure that all target environments support C++20 to avoid compatibility issues.

example/package/fleet-http-client-shared/fleet_http_client_release.json (3)

6-6: Approve Git Revision and Version Tag Updates

Updating the Git revision to "v1.5.0" and the version tag accordingly ensures that the project remains up-to-date with the latest features and fixes.

Also applies to: 22-22


34-34: Approve Docker Image Update

The addition of "ubuntu2404" to the Docker images aligns with the project's move towards supporting the latest Ubuntu LTS release.


3-3: Approve Dependency Update

The updated dependencies list without "ba-logger" suggests a simplification or internal change. Ensure that this does not negatively impact the logging functionality of the project.

Copy link

sonarcloud bot commented Sep 12, 2024

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots
B Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarCloud

Catch issues before they fail your Quality Gate with our IDE extension SonarLint

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

@Melky-Phoe Melky-Phoe closed this Sep 26, 2024
@Melky-Phoe Melky-Phoe deleted the ubuntu24_packages branch September 26, 2024 08:37
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