Create default pre-commit-config.yaml when missing

This commit makes a few small fixes, but is primarily intended to fix
an issue with "make pre-commit" when .pre-commit-config.yaml file
isn't present.

makefiles/commands/pre-commit/pre-commit.mk
-------------------------------------------
  o Depend on target pre-commit-install VS venv.
  o Virtualenv target requirements.txt config lacks package pre-commit.

makefiles/commands/pre-commit/install.mk
----------------------------------------
  o Fixed requirements.txt path typo:
    + Copy pre-c/requirements.txt VS tox/requirements.txt.
    + Contributed to variant target behavior when used in a prisine/cloned sandbox.
      targets: pre-commit VS pre-commit-install
  o Define installer target and path vars containing .pre-commit-config.yaml
    so a default tool config file can be installed.

.gitreview
bin/setup.sh
------------
  o Cleanup a few pre-commit complaints in source.

Signed-off-by: Eric Ball <eball@linuxfoundation.org>
Change-Id: I03843c906798036a32a45e965d4c1a9cdd72be8b
4 files changed
tree: 883103665970b8c87dbc6d0c7ed129920786a094
  1. .gitignore
  2. .gitreview
  3. .pre-commit-config.yaml
  4. .reuse/
  5. LICENSES/
  6. Makefile
  7. README.md
  8. bin/
  9. config.mk
  10. docs/
  11. install/
  12. makefiles/
  13. makefiles_include_mk.ex
  14. requirements.txt
  15. transition.mk
README.md

onf-make library makefiles

This repository contains common makefile logic and targets that can be used to build arbitrary repositories. Makefile logic is currently being consumed by the VOLTHA project

makefiles/ subdirectories

Two distinct sets of makefiles are needed to support builds:

  • The first is a subdir of makefiles/ named 'onf-make'

    • This directory exists and is maintained as a git-submodule of repo:onf-make.
    • Library makefiles contain independent logic to install common tools such as (virtualenv), perform linting tasks, define constants and perform path/string manipulation, etc.
  • The second makefile directory contains repository/project specific logic:

    • makefiles/local/ exists as a repository subdirectory under SCM.
    • Contains custom targets, variant parameters and custom logic specific to the repository it exists within.
  • Most makefile logic can be parameterized and implemented to support reuse. Consider adding enhancements or refactoring local/ makefile logic into repo:onf-make so all makefiles can leverage it.

Hierarchy

% tree --charset=ascii -n

Makefile
config.mk
makefiles/
|-- include.mk
|-- local
|   |-- include.mk
|   |   |   |-- doc8
|   |   |   |    |-- doc8.ini   (alas only one --config switch allowed)
|-- [onf-make: git-submodule](https://github.com/opencord/onf-make)
|   |-- makefiles
|   |   |-- consts.mk
|   |   |-- include.mk
|   |   |-- lint
|   |   |   |-- doc8            Syntax check ReStructuredText (rst) files
|   |   |   |-- groovy
|   |   |   |-- python
|   |   |   |-- robot.mk        Syntax check robot testing framework
|   |   |   |-- shell.mk        Invoke shellcheck command on scripts
|   |   |   |-- yaml            Syntax check yaml configs

NOTES

  • Ascii art was rendered using

    • tree --charset=ascii -n
  • README.md can be rendered locally using

    • pandoc README.md | lynx -stdin
    • make view

SEE ALSO