Skip to content

Add new mechanism for installing clang tools #83

Closed

Description

@2bndy5

Initially I was going to develop a rust port of clang-tools-pip in a separate repo named clang-tools-installer.

Instead I could incorporate the idea into this project. Then cpp-linter can ship with install capability that is invoked when necessary.

Ideally, it would install (in order of preference):

  1. The stripped dynamic binaries from the clang-tidy and clang-format projects on PyPI.
  2. dynamic binaries from OS-native package manager (apt on linux, homebrew on macos, chocolate on windows). This option would involve downloading (at cpp-linter-rs build time) and executing (at runtime) the official LLVM install script. This step would get skipped if the package manager is not present.
  3. the static binaries from cpp-linter/clang-tools-static-binaries builds

Activity

  1. 2bndy5 commented on Jan 24, 2025

    @2bndy5
    CollaboratorAuthor

    Note to self

    A helpful gist about using indicatif lib to display progress bars when downloading a file asynchronously: https://gist.github.com/Tapanhaz/096e299bf060607b572d700e89a62529

  2. github-actions commented on Mar 26, 2025

    @github-actions
  3. added
    enhancementNew feature or request
    help wantedExtra attention is needed
    and removed on Mar 27, 2025
  4. self-assigned this
    on Nov 4, 2025
  5. 2bndy5 commented on Nov 4, 2025

    @2bndy5
    CollaboratorAuthor

    I've been improving the CLI about version specifiation. I'm gearing up to resolve this...

    Ref: cpp-linter/cpp-linter-action#364 (comment)

  6. changed the title [-]Add new rust crate for (un)installing clang tools[/-] [+]Add new mechanism for installing clang tools[/+] on Nov 4, 2025
  7. github-actions commented on Jan 4, 2026

    @github-actions
  8. added
    help wantedExtra attention is needed
    and removed on Jan 4, 2026
  9. 2bndy5 commented on Mar 3, 2026

    @2bndy5
    CollaboratorAuthor

    This is coming along. On the clang-tools-downloader branch, I have downloads from PyPI1 and our static binaries2 working (both with hash validation). Just need to hack together some native package manager support3 and some unit tests...

  10. 2bndy5 commented on Mar 3, 2026

    @2bndy5
    CollaboratorAuthor

    FYI, interactive terminals are typically detected by checking if stdin is a stream or not. When stdin is not a stream (not interactive terminal), the progress bars will not rewrite the entire line on progress updates.

  11. linked a pull request that will close this issuerefactor: install clang tools on demand #279on Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions