The Codebase Bemanification Tool
Project description
beman-tidy: The Codebase Bemanification Tool
beman-tidy is a tool aimed at Beman Project contributors to check (--dry-run)
and apply (--fix-inplace) the Beman Standard
to their repositories.
Note 2025-06-07: The first iteration of the tool will not support --fix-inplace in order to
expedite adoption across the Beman Project.
Usage
- Display help:
$ beman-tidy --help
usage: beman-tidy [-h] [--fix-inplace | --no-fix-inplace] [--verbose | --no-verbose] [--require-all | --no-require-all] [--checks CHECKS] [--config CONFIG] repo_path
positional arguments:
repo_path path to the repository to check
options:
-h, --help show this help message and exit
--fix-inplace, --no-fix-inplace
Try to automatically fix found issues
--verbose, --no-verbose
print verbose output for each check
--require-all, --no-require-all
all checks are required regardless of the check type (e.g., Recommendation becomes Requirement)
--checks CHECKS array of checks to run
--config CONFIG path to the configuration file (default: .beman-tidy.yaml in repo root)
- Run beman-tidy on the exemplar repository (default: dry-run mode)
# dry-run, require-all, non-verbose
$ beman-tidy /path/to/exemplar --require-all
Summary Requirement: 18 checks passed, 1 checks failed, 5 checks skipped, 23 checks not implemented.
Summary Recommendation: 0 checks passed, 0 checks failed, 0 checks skipped, 0 checks not implemented.
Coverage Requirement: 95.83% (23/24 checks passed).
Coverage Recommendation: 0.00% (0/0 checks passed).
Coverage TOTAL: 95.83% (23/24 checks passed).
# dry-run, non-require-all, non-verbose
Summary Requirement: 13 checks passed, 1 checks failed, 3 checks skipped, 9 checks not implemented.
Summary Recommendation: 5 checks passed, 0 checks failed, 2 checks skipped, 14 checks not implemented.
Coverage Requirement: 66.67% (16/24 checks passed).
Coverage Recommendation: 100.00% (7/7 checks passed).
Coverage TOTAL: 74.19% (23/31 checks passed).
or verbose mode without errors:
# dry-run, require-all, verbose mode - no errors
beman-tidy pipeline started ...
Running check [Requirement][license.approved] ...
[info ][license.approved ]: Valid Apache License - Version 2.0 with LLVM Exceptions found in LICENSE file.
check [Requirement][license.approved] ... passed
Running check [Requirement][license.apache_llvm] ...
check [Requirement][license.apache_llvm] ... passed
Running check [Requirement][license.criteria] ...
[skipped ][license.criteria ]: beman-tidy cannot actually check license.criteria. Please ignore this message if license.approved has passed. See https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md#licensecriteria for more information.
Running check [Requirement][license.criteria] ... skipped
...
Running check [Requirement][readme.title] ...
check [Requirement][readme.title] ... passed
Running check [Requirement][readme.badges] ...
check [Requirement][readme.badges] ... passed
Running check [Requirement][readme.implements] ...
check [Requirement][readme.implements] ... passed
...
beman-tidy pipeline finished.
Summary Requirement: 19 checks passed, 0 checks failed, 3 checks skipped, 23 checks not implemented.
Summary Recommendation: 0 checks passed, 0 checks failed, 2 checks skipped, 0 checks not implemented.
Coverage Requirement: 100.00% (24/24 checks passed).
Coverage Recommendation: 0.00% (0/0 checks passed).
Coverage TOTAL: 100.00% (24/24 checks passed).
or verbose mode with errors:
# dry-run, require-all, verbose mode - with errors
beman-tidy pipeline started ...
Running check [Requirement][license.approved] ...
[info ][license.approved ]: Valid Apache License - Version 2.0 with LLVM Exceptions found in LICENSE file.
check [Requirement][license.approved] ... passed
Running check [Requirement][license.apache_llvm] ...
check [Requirement][license.apache_llvm] ... passed
Running check [Requirement][license.criteria] ...
[skipped ][license.criteria ]: beman-tidy cannot actually check license.criteria. Please ignore this message if license.approved has passed. See https://github.com/bemanproject/beman/blob/main/docs/beman_standard.md#licensecriteria for more information.
Running check [Requirement][license.criteria] ... skipped
...
Running check [Requirement][readme.implements] ...
check [Requirement][readme.implements] ... passed
Running check [Requirement][readme.library_status] ...
[error ][readme.library_status ]: The file '/Users/dariusn/dev/dn/git/Beman/exemplar/README.md' does not contain exactly one of the required statuses from ['**Status**: [Under development and not yet ready for production use.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#under-development-and-not-yet-ready-for-production-use)', '**Status**: [Production ready. API may undergo changes.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#production-ready-api-may-undergo-changes)', '**Status**: [Production ready. Stable API.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#production-ready-stable-api)', '**Status**: [Retired. No longer maintained or actively developed.](https://github.com/bemanproject/beman/blob/main/docs/beman_library_maturity_model.md#retired-no-longer-maintained-or-actively-developed)']
check [Requirement][readme.library_status] ... failed
...
beman-tidy pipeline finished.
Summary Requirement: 18 checks passed, 1 checks failed, 3 checks skipped, 23 checks not implemented.
Summary Recommendation: 0 checks passed, 0 checks failed, 2 checks skipped, 0 checks not implemented.
Coverage Requirement: 95.83% (23/24 checks passed).
Coverage Recommendation: 0.00% (0/0 checks passed).
Coverage TOTAL: 95.83% (23/24 checks passed).
- Run beman-tidy on the exemplar repository (fix issues in-place):
beman-tidy path/to/exemplar --fix-inplace --verbose
Configuration
beman-tidy attempts to read configuration for each source file from a .beman-tidy.yaml file located in the root of your repository. You can also specify a custom configuration file path using the --config option.
The following configuration options may be used in a .beman-tidy.yaml file:
ignored_paths - A list of paths to be excluded from all checks.
- To ignore a specific file, provide its full path relative to the repository root.
- To ignore a directory, provide the path to that directory. This will ignore the directory itself and all files and subdirectories within it. A trailing slash (
/) is optional.
Example:
ignored_paths:
# Ignores a single file
- include/beman/optional/detail/stl_interfaces/config.hpp
# Ignores a directory and everything inside it
- include/beman/optional/another_dir
Integrating beman-tidy into Your Library
Please refer to the How to Integrate beman-tidy pre-commit Hook in Your Library for more details.
Contributing on beman-tidy
Please refer to the Beman Tidy Development Guide for more details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file beman_tidy-0.4.0.tar.gz.
File metadata
- Download URL: beman_tidy-0.4.0.tar.gz
- Upload date:
- Size: 32.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42176436ee33afd0c309811c5ec8968731741e3cbbf856ba6c09a2f4f4801df1
|
|
| MD5 |
4b9f454f93aedba1351d58b1bc1b7368
|
|
| BLAKE2b-256 |
1bd56658fef4dad271761f614b497f39b833eaefaa66992250a4889e0570fa74
|
Provenance
The following attestation bundles were made for beman_tidy-0.4.0.tar.gz:
Publisher:
publish.yml on bemanproject/beman-tidy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beman_tidy-0.4.0.tar.gz -
Subject digest:
42176436ee33afd0c309811c5ec8968731741e3cbbf856ba6c09a2f4f4801df1 - Sigstore transparency entry: 1361266617
- Sigstore integration time:
-
Permalink:
bemanproject/beman-tidy@29fe7ab57063f6da45466b48250acc945e89f37e -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/bemanproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@29fe7ab57063f6da45466b48250acc945e89f37e -
Trigger Event:
release
-
Statement type:
File details
Details for the file beman_tidy-0.4.0-py3-none-any.whl.
File metadata
- Download URL: beman_tidy-0.4.0-py3-none-any.whl
- Upload date:
- Size: 48.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62911a8695a04b2a48b97197f23f4450e3da3378f94aa4bed96fff5941a54bf5
|
|
| MD5 |
d32bf24db9c62490e5a909c2dc2e6762
|
|
| BLAKE2b-256 |
f479e2badea09274eb4f68a23b3dad4b39068def31fbdc19f0e36ad2a4dfa71e
|
Provenance
The following attestation bundles were made for beman_tidy-0.4.0-py3-none-any.whl:
Publisher:
publish.yml on bemanproject/beman-tidy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
beman_tidy-0.4.0-py3-none-any.whl -
Subject digest:
62911a8695a04b2a48b97197f23f4450e3da3378f94aa4bed96fff5941a54bf5 - Sigstore transparency entry: 1361266662
- Sigstore integration time:
-
Permalink:
bemanproject/beman-tidy@29fe7ab57063f6da45466b48250acc945e89f37e -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/bemanproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@29fe7ab57063f6da45466b48250acc945e89f37e -
Trigger Event:
release
-
Statement type: