From 75e00c2bae231c8319220ac286319f3bbe49c167 Mon Sep 17 00:00:00 2001 From: per1234 Date: Mon, 15 Aug 2022 06:39:14 -0700 Subject: [PATCH] Document clangd update procedure Arduino IDE has dependencies on the clangd C++ language server and ClangFormat code formatter tools. These are updated periodically to benefit from the ongoing development on those projects. The update procedure requires operations in three different repositories: - Generate builds in arduino/clang-static-binaries - Validate and update formatter configuration in arduino/tooling-project-assets - Update metadata in arduino/arduino-ide Previously, this was undocumented and the procedure existed only in the form of "institutional memory". The procedure is now fully documented in the readme of arduino-ide-extension. --- arduino-ide-extension/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arduino-ide-extension/README.md b/arduino-ide-extension/README.md index ff25fd6e..db9cff8b 100644 --- a/arduino-ide-extension/README.md +++ b/arduino-ide-extension/README.md @@ -62,6 +62,15 @@ The Config Service knows about your system, like for example the default sketch - Some CLI updates can bring changes to the gRPC interfaces, as the API might change. gRPC interfaces can be updated running the command `yarn --cwd arduino-ide-extension generate-protocol` +### Update **clangd** and **ClangFormat** + +The [**clangd** C++ language server](https://clangd.llvm.org/) and the [**ClangFormat** code formatter](https://clang.llvm.org/docs/ClangFormat.html) tool dependencies are managed in parallel. Updating them to a different version is done by the following procedure: + +1. If the target version is not already [available from the `arduino/clang-static-binaries` repository](https://github.com/arduino/clang-static-binaries/releases), submit [an issue there](https://github.com/arduino/clang-static-binaries/issues) requesting a build and wait for that to be completed. +1. Validate the **ClangFormat** configuration for the target version by following the instructions [**here**](https://github.com/arduino/tooling-project-assets/tree/main/other/clang-format-configuration#clangformat-version-updates) +1. Submit a pull request in the `arduino/arduino-ide` repository to update the version in the `arduino.clangd.version` key of [`package.json`](package.json). +1. Submit a pull request in [the `arduino/tooling-project-assets` repository](https://github.com/arduino/tooling-project-assets) to update the version in the `vars.DEFAULT_CLANG_FORMAT_VERSION` field of [`Taskfile.yml`](https://github.com/arduino/tooling-project-assets/blob/main/Taskfile.yml). + ### Customize Icons ArduinoIde uses a customized version of FontAwesome. In order to update/replace icons follow the following steps: