Misc cleanups, add installer for lint-groovy

makefiles/npm/README.md
makefiles/npm/include.mk
makefiles/npm/nvm.mk
makefiles/npm/npm.mk
-------------------------
  o Genreate targets and deps for installing tools nvm, npm and npm-groovy-lint.
  o Tools are intended for interactive use.
  o npm-groovy-lint is a dependency for the lint-groovy target

config.mk
.gitignore
----------
  o Add exclusion lf/onf-make for repo:onf-make git submodule.
  o Add exclusion for .tmp (makefiles/nvm/nvm.mk)

makefiles/lint/groovy/groovy.mk
makefiles/lint/groovy/include.mk
makefiles/lint/groovy/install.mk
--------------------------------
  o Update targets to latest lint-{language}-{all,mod,src} syntax.
  o Installer updated to depend on npm/nvm.mk target 'npm-groovy-install'.

makefiles/lint/make/makefile.mk
makefiles/lint/json.mk
makefiles/lint/python/flake8.mk
makefiles/lint/shell/shellcheck.mk
makefiles/lint/yaml.mk
------------------------
  o Simplify find command exclusions.
  o Use "-not -path [p]" in place of "( -name p ) -prune".

makefiles/main/tempdir/tempdir.mk
---------------------------------
  o Fixed a typo $(HELP) -> $(HIDE)

makefiles/lint/doc8/doc8.ini
-------------------------------
  o Add directory exclusions from onf-excl-dir=.
  o Remove txt from the list of file extensions to check
    repo:voltha-docs is the only repo with *.txt files that contain
    restructuredText so add the extension in the local per-repository
    config.

Signed-off-by: Joey Armstrong <jarmstrong@linuxfoundation.org>
Change-Id: Ia2e091d812af82063c79ed855bc7dd4f5ec8f706
28 files changed
tree: 00b79a2b463123cbe42a932016224ab19b6b2c37
  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. makefiles/
  12. makefiles_include_mk.ex
  13. requirements.txt
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

-----------------------------------------------------------------------

Copyright 2023-2024 Open Networking Foundation Contributors

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

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-----------------------------------------------------------------------

SPDX-FileCopyrightText: 2023-2024 Open Networking Foundation Contributors

SPDX-License-Identifier: Apache-2.0

-----------------------------------------------------------------------

Intent:

-----------------------------------------------------------------------