Skip to content

Investigate how to support specifying clang-format minor and patch versions #199

@jidicula

Description

@jidicula

We found in #198 and llvm/llvm-project#93034 that LLVM occasionally introduces breaking changes in clang-format in patch (and presumably minor) version releases. Because this action just uses the latest version of clang-format under a major version, this action's output can be non-deterministic as minor and patch versions are accepted into Ubuntu and those changes are pulled into this repo's container image builds.

To reduce the effects of this thrashing, there are a couple of possible solutions:

  1. Provide a way to specify minor and patch versions as args to the action. If these versions are added to the container images, this could be tricky as it expands the build matrix by a lot.
  2. Check if the desired clang-format version is already in the PATH in the runner, and if it is, use that instead of the Docker image. This shifts the responsibility onto users of this action to get the appropriate LLVM tools into their Actions runners, which they're probably already doing for other CI workflows.

Requirements:

  • implementation must not drop support for clang-format versions that this Action already supports. At this time, the earliest version I support is clang-format-3.9
  • implementation should not introduce a new code path for some clang-format versions

Approaches tried and rejected (follow links for reasoning):

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions