Skip to content

Remove LLVM and Rust features#84

Merged
AlexanderLanin merged 2 commits intoeclipse-score:mainfrom
elektrobit-contrib:remove-llvm-feature
Feb 13, 2026
Merged

Remove LLVM and Rust features#84
AlexanderLanin merged 2 commits intoeclipse-score:mainfrom
elektrobit-contrib:remove-llvm-feature

Conversation

@lurtz
Copy link
Contributor

@lurtz lurtz commented Feb 12, 2026

This reduces the image size by 2GB. Combined feature size was 2.7GB. Thus in CI image downloads should consume less time.

The assumption is that toolchains are downloaded by bazel and IDE extensions are able to download binaries if needed.

This removes the option to build Rust with cargo. E.g. persistency seems still to use Cargo.toml files. It encourages to use bazel instead, but who knows if that is really followed. However since the persistency build has a hard dependency on the QNX toolchain, which is not yet supported by the devcontainer, I doubt the devcontainer is used there in conjunction with bazel.

In the communication repository code navigation in Rust still works by having the Rust extension installed. Also C++ code navigation still work. Both extensions now download the needed language servers from somewhere.

They increase the image by 2.7GB and might not be needed since bazel or the extensions are able to download the binaries as well.
@lurtz lurtz changed the title Remove llvm and Rust features Remove LLVM and Rust features Feb 12, 2026
@lurtz lurtz marked this pull request as ready for review February 13, 2026 16:15
@AlexanderLanin
Copy link
Member

Would be lovely to have it confirmed working in some other repo besides communication? But I guess we can merge it, and undo as required.

@lurtz
Copy link
Contributor Author

lurtz commented Feb 13, 2026

Would be lovely to have it confirmed working in some other repo besides communication? But I guess we can merge it, and undo as required.

I tested the score repo as well and used it in the inc_someip_gateway repo.

I was also thinking back and forth how to add better checks to this repo to ensure that devcontainer updates do not break workflows. It is quite time consuming to check different repos.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR removes the LLVM and Rust pre-installed features from the devcontainer to reduce the image size by approximately 2GB. The change shifts the responsibility for providing language tooling from pre-installed binaries to on-demand downloads by IDE extensions (clangd for C++ and rust-analyzer for Rust) and Bazel-managed toolchains.

Changes:

  • Removed LLVM and Rust feature installations from devcontainer.json and devcontainer-lock.json
  • Removed version-specific tooling tests (clangd, clang-format, clang-tidy, rustc, cargo, etc.)
  • Removed Rust bash completion setup
  • Added install_dive.sh script (purpose unclear in relation to PR)

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/s-core-devcontainer/.devcontainer/devcontainer.json Removed LLVM and Rust feature declarations; removed clangd.path setting (extension will auto-discover); minor formatting cleanup
src/s-core-devcontainer/.devcontainer/devcontainer-lock.json Removed locked versions for LLVM and Rust features
src/s-core-devcontainer/.devcontainer/s-core-local/install.sh Removed rustup bash completion installation
src/s-core-devcontainer/test-project/test.sh Removed version checks for clangd, clang-format, clang-tidy, clang, rustc, cargo, clippy, rustfmt, and rust-analyzer
scripts/install_dive.sh Added new script to install dive tool (Docker image analysis) - unclear relationship to PR purpose

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +1 to +40
#!/usr/bin/env bash

set -euo pipefail

# *******************************************************************************
# Copyright (c) 2026 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# SPDX-FileCopyrightText: 2026 Contributors to the Eclipse Foundation
# SPDX-License-Identifier: Apache-2.0
# *******************************************************************************

echo "Installing dive..."

DIVE_NAME="/tmp/dive.deb"

VERSION="0.13.1"

ARCHITECTURE="$(uname -m)"
if [ "${ARCHITECTURE}" = "x86_64" ]; then
ARCH="amd64"
SHA256SUM="0c20d18f0cc87e6e982a3289712ac3aa9fc364ba973109d1da3a473232640571"
else
ARCH="arm64"
SHA256SUM="80203401b3d7c4feffd13575755a07834a2d2f35f49e8612f0749b318c3f2fa5"
fi

curl -L "https://github.com/wagoodman/dive/releases/download/v${VERSION}/dive_${VERSION}_linux_${ARCH}.deb" -o "${DIVE_NAME}"
echo "${SHA256SUM} /tmp/dive.deb" | sha256sum -c - || exit 1
sudo dpkg -i "${DIVE_NAME}"
rm -f "${DIVE_NAME}"

# Verify installation
dive --version
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

This new file appears to be unrelated to the PR's stated purpose of removing LLVM and Rust features. The script installs the 'dive' tool (a Docker image analysis tool), which might be useful for verifying the image size reduction mentioned in the PR description. However, since this file is not referenced anywhere in the codebase or documentation, it's unclear when and how it should be used. Consider either:

  1. Adding documentation explaining when this script should be used
  2. Integrating it into the CI workflow if it's meant to verify image sizes
  3. Creating this script in a separate PR if it's unrelated to the LLVM/Rust removal

Copilot uses AI. Check for mistakes.
@AlexanderLanin AlexanderLanin merged commit f910a2e into eclipse-score:main Feb 13, 2026
10 checks passed
@lurtz lurtz deleted the remove-llvm-feature branch February 13, 2026 16:33
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.

2 participants