clang-tidier


Nameclang-tidier JSON
Version 0.9.0 PyPI version JSON
download
home_pageNone
SummaryA simple runner for clang-tidy.
upload_time2025-03-19 11:13:32
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords c++ clang-tidy
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # clang-tidier

A simple `clang-tidy` runner for C and C++ projects.

## Installation

`clang-tidier` requires Python 3.8 or higher, as well as some version of `clang-tidy` visible on the system PATH.

```
pip3 install clang-tidier
```

## Usage

`clang-tidier` is a command-line application

```
usage: clang-tidier [-h] [--version] [--include <regex> [<regex> ...]] [--exclude <regex> [<regex> ...]]
                    [--werror] [--threads <num>] [--batch num/denom] [--session | --no-session]
                    [--relative-paths | --no-relative-paths] [--fix | --no-fix]
                    [--plugins <path...> [<path...> ...]]
                    [compile_db_path]

clang-tidy runner for C and C++ projects.

positional arguments:
  compile_db_path       path to compile_commands.json, or a directory containing it (default: discover
                        automatically)

options:
  -h, --help            show this help message and exit
  --version             print the version and exit
  --include <regex> [<regex> ...]
                        regular expression to select source files.
  --exclude <regex> [<regex> ...]
                        regular expression to exclude source files.
  --werror              stop on the first file that emits warnings
  --threads <num>       number of threads to use.
  --batch num/denom     batch subdivisions.
  --session, --no-session
                        saves run information so subsequent re-runs may avoid re-scanning files.
  --relative-paths, --no-relative-paths
                        show paths as relative to CWD where possible.
  --fix, --no-fix       attempt to apply clang-tidy fixes where possible.
  --plugins <path...> [<path...> ...]
                        one or more plugins to load.

v0.9.0 - github.com/marzer/clang-tidier
```

## Clang-tidy plugins

Clang tidy plugins can be specified in two ways:

- directly using the argument `--plugins` (`--load` also works for compatibility with `clang-tidy`)
- indirectly using either environment variables `CLANG_TIDY_PLUGINS` or `CLANG_TIDIER_PLUGINS`

Specifying multiple plugins via environment variable requires delimiting with semicolons. Regular unix-style colon
delimiters are also supported on Unix.

Plugins specified on the command-line must exist; the program will exit with an error if they do not. Plugins specified
via environment variable will be ignored with a warning if they are not found.

## Exit codes

| Value                                | Meaning                |
| :----------------------------------- | :--------------------- |
| 0                                    | No issues were found   |
| 1                                    | Issues were found      |
| -1                                   | A fatal error occurred |

# Changelog

## v0.9.0 - 2025/03/19

- Added support for reading plugins from environment
- Added diagnostics if a specified plugin does not exist
- Fixed plugin changes not trigging session restarts in some circumstances

## v0.8.0 - 2025/03/16

- Added `--plugins`

## v0.7.2 - 2025/03/11

- Fixed some additional compiler flag-related breakages

## v0.7.1 - 2025/02/26

- Fixed some additional compiler flag-related breakages

## v0.7.0 - 2025/02/12

- Added `--fix`
- Fixed clang's `-ftime-trace` causing failures in some cases

## v0.6.0 - 2025/02/10

- Added `--relative-paths` to enable relative paths in output
- Fixed paths in output always being relative by default

## v0.5.2 - 2025/01/30

- Fixed compiler argument slicing regression introduced in v0.5.1

## v0.5.1 - 2025/01/29

- Fixed sanitizer and GCC flags breaking clang-tidy in some common cases

## v0.5.0 - 2025/01/27

- Added `--batch x/y` to enable distributed parallelism
- Minor internal fixes

## v0.4.1 - 2024/11/19

- Fixed precompiled headers breaking runs in some circumstances
- Improved wording of session restart message

## v0.4.0 - 2024/09/07

- Fixed sessions not restarting if `.clang-tidy` is modified
- Added `--labels-only`
- Minor performance improvements

## v0.3.0 - 2024/08/04

- Added `--no-session`
- Added use of sessions by default

## v0.2.0 - 2024/08/03

- Added `--session`

## v0.1.2 - 2024/06/06

- Fixed build-generated translation causing 'did not exist or was not a file' errors
- Improved performance of TU enumeration step

## v0.1.1 - 2024/05/16

- Fixed issues with older clang-tidy versions trying to use `--use-color`

## v0.1.0 - 2024/05/09

- First public release 🎉&#xFE0F;

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "clang-tidier",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "c++, clang-tidy",
    "author": null,
    "author_email": "Mark Gillard <mark.gillard@outlook.com.au>",
    "download_url": "https://files.pythonhosted.org/packages/ae/38/c4e9d7d83a5dba42e9a2595e201281dc98120e5d4184102508661b263ce8/clang_tidier-0.9.0.tar.gz",
    "platform": null,
    "description": "# clang-tidier\r\n\r\nA simple `clang-tidy` runner for C and C++ projects.\r\n\r\n## Installation\r\n\r\n`clang-tidier` requires Python 3.8 or higher, as well as some version of `clang-tidy` visible on the system PATH.\r\n\r\n```\r\npip3 install clang-tidier\r\n```\r\n\r\n## Usage\r\n\r\n`clang-tidier` is a command-line application\r\n\r\n```\r\nusage: clang-tidier [-h] [--version] [--include <regex> [<regex> ...]] [--exclude <regex> [<regex> ...]]\r\n                    [--werror] [--threads <num>] [--batch num/denom] [--session | --no-session]\r\n                    [--relative-paths | --no-relative-paths] [--fix | --no-fix]\r\n                    [--plugins <path...> [<path...> ...]]\r\n                    [compile_db_path]\r\n\r\nclang-tidy runner for C and C++ projects.\r\n\r\npositional arguments:\r\n  compile_db_path       path to compile_commands.json, or a directory containing it (default: discover\r\n                        automatically)\r\n\r\noptions:\r\n  -h, --help            show this help message and exit\r\n  --version             print the version and exit\r\n  --include <regex> [<regex> ...]\r\n                        regular expression to select source files.\r\n  --exclude <regex> [<regex> ...]\r\n                        regular expression to exclude source files.\r\n  --werror              stop on the first file that emits warnings\r\n  --threads <num>       number of threads to use.\r\n  --batch num/denom     batch subdivisions.\r\n  --session, --no-session\r\n                        saves run information so subsequent re-runs may avoid re-scanning files.\r\n  --relative-paths, --no-relative-paths\r\n                        show paths as relative to CWD where possible.\r\n  --fix, --no-fix       attempt to apply clang-tidy fixes where possible.\r\n  --plugins <path...> [<path...> ...]\r\n                        one or more plugins to load.\r\n\r\nv0.9.0 - github.com/marzer/clang-tidier\r\n```\r\n\r\n## Clang-tidy plugins\r\n\r\nClang tidy plugins can be specified in two ways:\r\n\r\n- directly using the argument `--plugins` (`--load` also works for compatibility with `clang-tidy`)\r\n- indirectly using either environment variables `CLANG_TIDY_PLUGINS` or `CLANG_TIDIER_PLUGINS`\r\n\r\nSpecifying multiple plugins via environment variable requires delimiting with semicolons. Regular unix-style colon\r\ndelimiters are also supported on Unix.\r\n\r\nPlugins specified on the command-line must exist; the program will exit with an error if they do not. Plugins specified\r\nvia environment variable will be ignored with a warning if they are not found.\r\n\r\n## Exit codes\r\n\r\n| Value                                | Meaning                |\r\n| :----------------------------------- | :--------------------- |\r\n| 0                                    | No issues were found   |\r\n| 1                                    | Issues were found      |\r\n| -1                                   | A fatal error occurred |\r\n\r\n# Changelog\r\n\r\n## v0.9.0 - 2025/03/19\r\n\r\n- Added support for reading plugins from environment\r\n- Added diagnostics if a specified plugin does not exist\r\n- Fixed plugin changes not trigging session restarts in some circumstances\r\n\r\n## v0.8.0 - 2025/03/16\r\n\r\n- Added `--plugins`\r\n\r\n## v0.7.2 - 2025/03/11\r\n\r\n- Fixed some additional compiler flag-related breakages\r\n\r\n## v0.7.1 - 2025/02/26\r\n\r\n- Fixed some additional compiler flag-related breakages\r\n\r\n## v0.7.0 - 2025/02/12\r\n\r\n- Added `--fix`\r\n- Fixed clang's `-ftime-trace` causing failures in some cases\r\n\r\n## v0.6.0 - 2025/02/10\r\n\r\n- Added `--relative-paths` to enable relative paths in output\r\n- Fixed paths in output always being relative by default\r\n\r\n## v0.5.2 - 2025/01/30\r\n\r\n- Fixed compiler argument slicing regression introduced in v0.5.1\r\n\r\n## v0.5.1 - 2025/01/29\r\n\r\n- Fixed sanitizer and GCC flags breaking clang-tidy in some common cases\r\n\r\n## v0.5.0 - 2025/01/27\r\n\r\n- Added `--batch x/y` to enable distributed parallelism\r\n- Minor internal fixes\r\n\r\n## v0.4.1 - 2024/11/19\r\n\r\n- Fixed precompiled headers breaking runs in some circumstances\r\n- Improved wording of session restart message\r\n\r\n## v0.4.0 - 2024/09/07\r\n\r\n- Fixed sessions not restarting if `.clang-tidy` is modified\r\n- Added `--labels-only`\r\n- Minor performance improvements\r\n\r\n## v0.3.0 - 2024/08/04\r\n\r\n- Added `--no-session`\r\n- Added use of sessions by default\r\n\r\n## v0.2.0 - 2024/08/03\r\n\r\n- Added `--session`\r\n\r\n## v0.1.2 - 2024/06/06\r\n\r\n- Fixed build-generated translation causing 'did not exist or was not a file' errors\r\n- Improved performance of TU enumeration step\r\n\r\n## v0.1.1 - 2024/05/16\r\n\r\n- Fixed issues with older clang-tidy versions trying to use `--use-color`\r\n\r\n## v0.1.0 - 2024/05/09\r\n\r\n- First public release \ud83c\udf89&#xFE0F;\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple runner for clang-tidy.",
    "version": "0.9.0",
    "project_urls": {
        "Funding": "https://github.com/sponsors/marzer",
        "Source": "https://github.com/marzer/clang-tidier",
        "Tracker": "https://github.com/marzer/clang-tidier/issues"
    },
    "split_keywords": [
        "c++",
        " clang-tidy"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "864d67312e032dd31a9784a5d73a3a164496902e46b9fd53db3efff9c05ee207",
                "md5": "0c1363f328a331ab503754686ea8d43f",
                "sha256": "a6739ca010db00e468c1af6eb540fba64e1598b96fa013152364e0917be38d4a"
            },
            "downloads": -1,
            "filename": "clang_tidier-0.9.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0c1363f328a331ab503754686ea8d43f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 16287,
            "upload_time": "2025-03-19T11:13:31",
            "upload_time_iso_8601": "2025-03-19T11:13:31.304687Z",
            "url": "https://files.pythonhosted.org/packages/86/4d/67312e032dd31a9784a5d73a3a164496902e46b9fd53db3efff9c05ee207/clang_tidier-0.9.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae38c4e9d7d83a5dba42e9a2595e201281dc98120e5d4184102508661b263ce8",
                "md5": "fd68f6ac5d890c680f95f72fa2a75cb0",
                "sha256": "bd58b1de6d1dc61ac0d299ed8dce903c788d92928ad5372f0917a05a98ec7d51"
            },
            "downloads": -1,
            "filename": "clang_tidier-0.9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "fd68f6ac5d890c680f95f72fa2a75cb0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 16764,
            "upload_time": "2025-03-19T11:13:32",
            "upload_time_iso_8601": "2025-03-19T11:13:32.632457Z",
            "url": "https://files.pythonhosted.org/packages/ae/38/c4e9d7d83a5dba42e9a2595e201281dc98120e5d4184102508661b263ce8/clang_tidier-0.9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-03-19 11:13:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sponsors",
    "github_project": "marzer",
    "github_not_found": true,
    "lcname": "clang-tidier"
}
        
Elapsed time: 6.40195s