style(tox): prepare for fixer scripts
[csit.git] / resources / libraries / bash / entry / tox / README.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2021 Cisco and/or its affiliates.
+# Copyright (c) 2022 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-This directory contains checker scripts and other files they need.
-Each checker script is assumed to be run from tox,
+This directory contains tox scripts and other files they need.
+Generally, a tox script is either a checker (suitable for automated verify)
+or a fixer (manually started, risky as uncommitted edits can be lost).
+Each tox script is assumed to be run from tox,
 when working directory is set to ${CSIT_DIR}.
 when working directory is set to ${CSIT_DIR}.
-Each script should:
+
+Each checker script should:
 + Return nonzero exit code when it fails.
 ++ The tox might ignore the code when the check is not blocking.
 + Write less verbose output to stderr.
 + Return nonzero exit code when it fails.
 ++ The tox might ignore the code when the check is not blocking.
 + Write less verbose output to stderr.
@@ -25,3 +28,12 @@ Each script should:
 ++ The level of "less verbose" depends on check and state of codebase.
 + TODO: Should we carefully document which files are
   whitelisted/blacklisted for a particulat check?
 ++ The level of "less verbose" depends on check and state of codebase.
 + TODO: Should we carefully document which files are
   whitelisted/blacklisted for a particulat check?
+
+Each fixer script should:
++ Perform edits on current filesystem
++ Not assume git is clean (there may be uncommitted edits).
++ Use "git diff HEAD~" to get both comitted and uncomitted edits to analyze.
++ Output whatever it wants (possibly nothing).
+
+TODO: Should checkers be named differently than fixers?
+      E.g. both scripts and tox environments start with fix_?