mirror of
https://github.com/google/benchmark.git
synced 2024-12-26 20:40:21 +08:00
b93f5a5929
* Add pre-commit config and GitHub Actions job Contains the following hooks: * buildifier - for formatting and linting Bazel files. * mypy, ruff, isort, black - for Python typechecking, import hygiene, static analysis, and formatting. The pylint CI job was changed to be a pre-commit CI job, where pre-commit is bootstrapped via Python. Pylint is currently no longer part of the code checks, but can be re-added if requested. The reason to drop was that it does not play nicely with pre-commit, and lots of its functionality and responsibilities are actually covered in ruff. * Add dev extra to pyproject.toml for development installs * Clarify that pre-commit contains only Python and Bazel hooks * Add one-line docstrings to Bazel modules * Apply buildifier pre-commit fixes to Bazel files * Apply pre-commit fixes to Python files * Supply --profile=black to isort to prevent conflicts * Fix nanobind build file formatting * Add tooling configs to `pyproject.toml` In particular, set line length 80 for all Python files. * Reformat all Python files to line length 80, fix return type annotations Also ignores the `tools/compare.py` and `tools/gbench/report.py` files for mypy, since they emit a barrage of errors which we can deal with later. The errors are mostly related to dynamic classmethod definition.
31 lines
1.1 KiB
Plaintext
31 lines
1.1 KiB
Plaintext
module(
|
|
name = "google_benchmark",
|
|
version = "1.8.3",
|
|
)
|
|
|
|
bazel_dep(name = "bazel_skylib", version = "1.4.2")
|
|
bazel_dep(name = "platforms", version = "0.0.6")
|
|
bazel_dep(name = "rules_foreign_cc", version = "0.9.0")
|
|
bazel_dep(name = "rules_cc", version = "0.0.6")
|
|
|
|
bazel_dep(name = "rules_python", version = "0.24.0", dev_dependency = True)
|
|
bazel_dep(name = "googletest", version = "1.12.1", dev_dependency = True, repo_name = "com_google_googletest")
|
|
|
|
bazel_dep(name = "libpfm", version = "4.11.0")
|
|
|
|
# Register a toolchain for Python 3.9 to be able to build numpy. Python
|
|
# versions >=3.10 are problematic.
|
|
# A second reason for this is to be able to build Python hermetically instead
|
|
# of relying on the changing default version from rules_python.
|
|
|
|
python = use_extension("@rules_python//python/extensions:python.bzl", "python", dev_dependency = True)
|
|
python.toolchain(python_version = "3.9")
|
|
|
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_dependency = True)
|
|
pip.parse(
|
|
hub_name = "tools_pip_deps",
|
|
python_version = "3.9",
|
|
requirements_lock = "//tools:requirements.txt",
|
|
)
|
|
use_repo(pip, "tools_pip_deps")
|