diff --git a/.gitignore b/.gitignore index ad4a1f1..3697715 100644 --- a/.gitignore +++ b/.gitignore @@ -174,3 +174,6 @@ poetry.toml pyrightconfig.json # End of https://www.toptal.com/developers/gitignore/api/python + +# Local planning docs (not to be committed) +PLAN.md diff --git a/profile/README.md b/profile/README.md index 8b609c0..aa955c8 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,88 +1,39 @@ -

- cpp-linter brand logo -

- -

- Automated C/C++ linting and formatting for your CI/CD pipelines and local workflows. -

- -

- Documentation - License: MIT - GitHub stars -

+
---- + cpp-linter brand logo -## πŸ“– About + ### Lint and format your C/C++ code in every workflow β€” GitHub Actions, pre-commit hooks, and CLI. -**cpp-linter** bundles the power of `clang-format`, `clang-tidy`, and other LLVM tools into packages that are easy to install, integrate, and maintain. Whether you’re linting a single file locally or enforcing code quality across dozens of repos in CI, cpp-linter has you covered. + [![Docs](https://img.shields.io/badge/Docs-cpp--linter.github.io-blue?logo=readthedocs&logoColor=white)](https://cpp-linter.github.io/) + [![CLI](https://img.shields.io/badge/CLI-cpp--linter-00ADD8?logo=python&logoColor=white)](https://github.com/cpp-linter/cpp-linter) + [![GitHub Action](https://img.shields.io/badge/GitHub_Action-cpp--linter--action-2088FF?logo=githubactions&logoColor=white)](https://github.com/cpp-linter/cpp-linter-action) + [![pre-commit](https://img.shields.io/badge/pre‑commit-cpp--linter--hooks-F7B93E?logo=pre-commit&logoColor=white)](https://github.com/cpp-linter/cpp-linter-hooks) + [![License](https://img.shields.io/badge/License-MIT-green.svg?logo=opensourceinitiative&logoColor=white)](https://github.com/cpp-linter/.github/blob/main/LICENSE) -We target C/C++ developers and DevOps engineers who want **reliable clang tooling without the build-from-source headache**. Our packages track the latest LLVM releases and cover Linux, macOS, and Windows on both x86_64 and Arm. +
--- -## 🧭 Which one should I use? - -Not sure where to start? Pick the entry point that matches your workflow: - -| Your goal | Use this | How | -|-----------|----------|-----| -| Lint & format on **GitHub PRs / pushes** | [cpp-linter-action](https://github.com/cpp-linter/cpp-linter-action) | Add the action to your workflow | -| Catch issues **locally before committing** | [cpp-linter-hooks](https://github.com/cpp-linter/cpp-linter-hooks) | Add to your `.pre-commit-config.yaml` | -| Install the clang tools as a **cross-platform CLI** *(most people)* | [pip: `clang-tools`](https://github.com/cpp-linter/clang-tools-pip) | `pip install clang-tools` | -| Install on **macOS** the native way | [Homebrew tap](https://github.com/cpp-linter/homebrew-tap) | `brew tap cpp-linter/tap && brew install clang-tools` | -| Manage tool **versions across a polyglot team** | [asdf](https://github.com/cpp-linter/asdf-clang-tools) | `asdf plugin add clang-tools https://github.com/cpp-linter/asdf-clang-tools` | -| Run inside **containers / custom CI images** | [clang-tools-docker](https://github.com/cpp-linter/clang-tools-docker) | Pull the image | -| Just grab the **raw static binary** | [clang-tools-static-binaries](https://github.com/cpp-linter/clang-tools-static-binaries) | Download from releases | +## πŸ“– About -> πŸ’‘ **New here?** For CI, start with **cpp-linter-action**. For local development, use **cpp-linter-hooks**. To install the underlying clang tools directly, `pip install clang-tools` works on every platform. +**cpp-linter** provides `clang-format`, `clang-tidy`, and other LLVM tools as ready-to-use packages β€” no building from source. --- -## ⚑ Quick example - -Lint every pull request with **cpp-linter-action** β€” no local setup required: - -```yaml -# .github/workflows/cpp-linter.yml -name: cpp-linter -on: pull_request - -jobs: - cpp-linter: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: cpp-linter/cpp-linter-action@v2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - style: file # format against your .clang-format - tidy-checks: '' # analyze against your .clang-tidy -``` - -The action posts inline annotations, a step summary, and (optionally) PR review suggestions. See the [cpp-linter-action](https://github.com/cpp-linter/cpp-linter-action) docs for all inputs and outputs. - -
-πŸ“¦ More packages β€” lower-level & specialized builds - -
- -The tools above are built on a few underlying distributions you can also use directly: - -| Project | What it does | -|---------|--------------| -| [clang-tools-static-binaries](https://github.com/cpp-linter/clang-tools-static-binaries) | The upstream source: statically-linked binaries for Linux, macOS, and Windows that every other distribution builds on. | -| [clang-tools-wheel](https://github.com/cpp-linter/clang-tools-wheel) | Python wheels that redistribute `clang-format` and `clang-tidy`. | -| [clang-apply-replacements](https://github.com/cpp-linter/clang-apply-replacements) | Standalone Python wheel for `clang-apply-replacements`. | -| [clang-include-cleaner](https://github.com/cpp-linter/clang-include-cleaner) | Standalone Python wheel for `clang-include-cleaner` β€” detects unused `#include` directives. | - -Browse every repository on the [organization page](https://github.com/cpp-linter). +## 🧭 Which one should I use? -
+| Your goal | Start here | One-liner | +|-----------|------------|-----------| +| **CI/CD** linting | [cpp-linter-action](https://github.com/cpp-linter/cpp-linter-action) | Add to `.github/workflows/` | +| **Pre-commit** linting | [cpp-linter-hooks](https://github.com/cpp-linter/cpp-linter-hooks) | Add to `.pre-commit-config.yaml` | +| **Cross-platform** CLI | [clang-tools-pip](https://github.com/cpp-linter/clang-tools-pip) | `pip install clang-tools` | +| **macOS** native | [homebrew-tap](https://github.com/cpp-linter/homebrew-tap) | `brew tap cpp-linter/tap && brew install clang-tools` | +| **Version** management | [asdf-clang-tools](https://github.com/cpp-linter/asdf-clang-tools) | `asdf plugin add clang-format ...` | +| **Docker** images | [clang-tools-docker](https://github.com/cpp-linter/clang-tools-docker) | `docker pull ...` | +| **Static** binaries | [clang-tools-static-binaries](https://github.com/cpp-linter/clang-tools-static-binaries) | Download from [releases](https://github.com/cpp-linter/clang-tools-static-binaries/releases) | +> πŸ“– Browse every repository on the [organization page β†’](https://github.com/cpp-linter) ---