NAME

conformance - Check a repository against its flavor of the standards, and bring it up to date

VERSION

version 0.002

SYNOPSIS

conformance check  [--root DIR] [--json] [--offline] [--cache DIR] [--standards DIR]
conformance update [--root DIR] [--dry-run] [--json] [--offline] [--cache DIR] [--standards DIR]
conformance help

DESCRIPTION

Reads .conformance.yml at the root of a checkout, fetches the standards that it names, and runs the checks of its flavor. Dist::Conformance says what the pieces are, Dist::Conformance::Config what .conformance.yml holds, and Dist::Conformance::Check what each check looks at.

FUNCTIONS

main

(@arguments). Runs the program, and returns its exit status.

report_check

($conformance, \%options). The output of check, and the exit status.

report_update

($conformance, \%options). The output of update, and the exit status.

heading

($conformance). The first line of a report: the flavor and the source.

json_of

($conformance, %fields). The JSON of a report.

show_synopsis

($status). Prints the synopsis, to standard output for help and to standard error otherwise, and returns $status.

COMMANDS

check

Prints one line for each check of the flavor: its status, its name and the detail, then a count of each status. Exits 1 when a check fails, and 0 otherwise, so info and skip do not fail a run.

update

Fetches the latest standards, and applies every automatic fix: it writes the files that the checks can write, and installs the git hooks. Prints one line for each change, and each thing that only a person can do. With --dry-run it changes nothing, and prints what it would change. Exits 0 when it ran, whatever it left for a person; run check afterwards to see what still fails.

help

Prints this.

OPTIONS

--root DIR

The checkout. Default the current directory.

--json

Prints the results as one JSON object instead: command, flavor, source, and results, which is the array that "check" in Dist::Conformance or "update" in Dist::Conformance returns. For check it has failed too, and for update, dry_run.

--dry-run

For update: write nothing.

--offline

Do not fetch a git source; use the copy in the cache, and fail when there is none.

--cache DIR

The directory of the cached clones. Default dist-conformance under $XDG_CACHE_HOME, or ~/.cache.

--standards DIR

Read the standards from DIR instead of the git or directory that .conformance.yml names, keeping its path. For trying a change to the standards before you push it.

EXIT STATUS

0 when it ran and nothing failed, 1 when check found a failure, and 2 when it could not run: a bad option, a missing or invalid .conformance.yml or flavor, or a fetch that failed. The reason goes to standard error.

SEE ALSO

Please see those modules/websites for more information related to this module.

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/Troglodyne-Internet-Widgets/Dist-Conformance/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHORS

Current Maintainers:

  • George S. Baugh <george@troglodyne.net>

COPYRIGHT AND LICENSE

Copyright (c) 2026 Troglodyne LLC

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.