Merge in bulk edits from repo:ci-management
Change-Id: I2c9fbe379d123cf18c23dfe393bf34f90b1afee9
diff --git a/config.mk b/config.mk
index aad0f8e..63009c0 100644
--- a/config.mk
+++ b/config.mk
@@ -14,18 +14,102 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefiles.include.version = 1.1
+# ONF.confg.mk = 1.1
+# -----------------------------------------------------------------------
+
+# --repo-name-- :=
+--repo-name-- ?= $(error --repo-name--= is required)
##--------------------------------##
##---] Disable lint targets [---##
##--------------------------------##
-NO-LINT-GROOVY := true# # Note[1]
-# NO-LINT-JJB := false
-# NO-LINT-JSON := true# # Note[1]
-# NO-LINT-MAKE := false
-NO-LINT-PYTHON := true# # Note[1]
-NO-LINT-SHELL := true# # Note[1]
-NO-LINT-YAML := true# # Note[1]
+# NO-LINT-DOC8 := true **
+# NO-LINT-GOLANG := true **
+# NO-LINT-GROOVY := true# # Note[1]
+# NO-LINT-JJB := true# # Note[2]
+# NO-LINT-JSON := true# # Note[1]
+# NO-LINT-MAKEFILE := true# # Note[1]
+# NO-LINT-REUSE := true # License check
+# NO-LINT-ROBOT := true
+# NO-LINT-SHELL := true# # Note[1]
+# NO-LINT-YAML := true# # Note[1]
-# Note[1] - Plenty of source to cleanup
+# NO-LINT-PYTHON := true# # Note[1]
+# NO-LINT-PYLINT := true# # Note[1]
+# NO-LINT-TOX := true# # Note[1]
+
+# Note[1] - A boatload of source to cleanup prior to enable.
+# Note[2] - No sources available
+
+##---------------------------------##
+##---] Conditional make logic [---##
+##---------------------------------##
+# USE-ONF-DOCKER-MK := true
+# USE-ONF-GERRIT-MK := true
+# USE-ONF-GIT-MK := true
+# USE-ONF-JJB-MK := true
+# USE-VOLTHA-RELEASE-MK := true
+
+##----------------------##
+##---] Debug Mode [---##
+##----------------------##
+# export DEBUG := 1 # makefile debug
+# export DISTUTILS_DEBUG := 1 # verbose: pip
+# export DOCKER_DEBUG := 1 # verbose: docker
+# export VERBOSE := 1 # makefile debug
+
+##-----------------------------------##
+##---] JJB/Jenkins Job Builder [---##
+##-----------------------------------##
+JJB_VERSION ?= 2.8.0
+JOBCONFIG_DIR ?= job-configs
+
+##---------------------------------##
+##---] Filesystem exclusions [---##
+##---------------------------------##
+onf-excl-dirs := $(null) # make clean: dirs=
+onf-excl-dirs += .venv# # $(venv-name)
+onf-excl-dirs += vendor# # golang / voltha*-go
+onf-excl-dirs += patches# # voltha docs - python upgrade
+onf-excl-dirs += .tox # also a python dependency
+
+onf-excl-dirs ?= $(error onf-excl-dirs= is required)
+
+##-----------------------------##
+##---] Feature Detection [---##
+##-----------------------------##
+# [TODO] include makefiles/features/include.mk
+# [TODO] All logic below can migrate there.
+
+$(if $(filter %ci-management,$(--repo-name--)),\
+ $(eval --REPO-IS-CI-MANAGEMENT-- := true)\
+)
+
+# create makefiles/config/byrepo/{--repo-name--}.mk for one-off snowflakes ?
+# $(if $(wildcard docker),$(eval USE-ONF-DOCKER-MK := true))
+
+##-------------------------##
+##---] Derived Flags [---##
+##-------------------------##
+ifdef --REPO-IS-CI-MANAGEMENT--
+ USE-ONF-JJB := true
+
+ onf-excl-dirs += global-jjb
+ onf-excl-dirs += lf-ansible
+ onf-excl-dirs += packer
+endif
+
+ifdef NO-LINT-PYTHON
+ NO-LINT-FLAKE8 := true
+ NO-LINT-PYLINT := true
+endif
+
+ifndef USE-ONF-JJB
+ NO-LINT-JJB := true
+endif
+
+onf-excl-dirs := $(sort $(strip $(onf-excl-dirs)))
# [EOF]
diff --git a/makefiles/bin/compare_sandbox_makefiles.sh b/makefiles/bin/compare_sandbox_makefiles.sh
new file mode 100755
index 0000000..6075386
--- /dev/null
+++ b/makefiles/bin/compare_sandbox_makefiles.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefile.version = 1.0
+# -----------------------------------------------------------------------
+# Intent: This script is used to bulk refactor and merge makefile changes
+## between development repositories and repo:onf-make.
+## -----------------------------------------------------------------------
+
+## -----------------------------------------------------------------------
+## Intent:
+## -----------------------------------------------------------------------
+function error
+{
+ echo "$*"
+ exit 1
+}
+
+##----------------##
+##---] MAIN [---##
+##----------------##
+# src="$HOME/projects/sandbox/onf-make/makefiles"
+# src="$HOME/projects/sandbox/ci-management/makefiles"
+src="$HOME/projects/sandbox/onf-make-all/20230709/makefiles"
+
+dst="$(realpath .)"
+
+[[ $# -eq 0 ]] && error "At least one directory or file is required"
+
+while [ $# -gt 0 ]; do
+ fyl=$1; shift
+
+ echo "FYL: $fyl"
+ if [ -d "$fyl" ]; then
+ readarray -t fyls < <(find "$fyl" -type f -print)
+ [[ ${#@} -gt 0 ]] && fyls+=("$@")
+ # declare -p fyls
+ [[ ${#fyls} -gt 0 ]] && set -- "${fyls[@]}"
+ continue
+ fi
+
+ case "$fyl" in
+ *~) continue ;;
+ '#*#') continue ;;
+ '\.#*') continue ;;
+ esac
+
+ src0="$src/$fyl"
+ dst0="$dst/$fyl"
+
+ [[ ! -e "$src0" ]] && error "File does not exist in src= $src0"
+ [[ ! -e "$dst0" ]] && error "File does not exist in dst= $dst0"
+
+ if ! diff -qr "$src0" "$dst0"; then
+ emacs "$src0" "$dst0"
+ fi
+done
+
+# [EOF]
+
diff --git a/makefiles/bootstrap.mk b/makefiles/bootstrap.mk
index d8264a1..5a9433b 100644
--- a/makefiles/bootstrap.mk
+++ b/makefiles/bootstrap.mk
@@ -15,8 +15,17 @@
##--------------------------##
##---] LIBRARY MACROS [---##
##--------------------------##
-is-null = $(if $(1),$(null),$(error $(1)= is undef))
-is-null-var = $(if $$(1),$(null),$(error $(1)= is undef))
+is-null = $(if $(1),$(null),$(error $(1)= is undef))
+is-null-var = $(if $$(1),$(null),$(error $(1)= is undef))
+is-null-var-indirect = $(if $(1),$(null),$(error $(1)= is undef))
+
+## variable flavor:
+# origin - undefned
+# default
+# environment
+# environment override
+# automatic
+# null(blah) ? - true
## -----------------------------------------------------------------------
## Intent: Given an indirect var containing varname of a makefile *_ROOT
diff --git a/makefiles/consts.mk b/makefiles/consts.mk
index c1306ac..8961b3a 100644
--- a/makefiles/consts.mk
+++ b/makefiles/consts.mk
@@ -31,13 +31,21 @@
export quote-double := $(null)"$(null)#"
# [DEBUG] make {target} HIDE=
-HIDE ?= @
+HIDE ?= @
env-clean ?= /usr/bin/env --ignore-environment
xargs-n1 := xargs -0 -t -n1 --no-run-if-empty
xargs-n1-clean := $(env-clean) $(xargs-n1)
## -----------------------------------------------------------------------
+## Intent: NOP command for targets whose dependencies do all heavy lifting
+## -----------------------------------------------------------------------
+## usage: foo bar tans
+## <tab>$(nop-command)
+## -----------------------------------------------------------------------
+nop-cmd := :
+
+## -----------------------------------------------------------------------
## Default shell:
## o set -e enable error checking
## o set -u report undefined errors
diff --git a/makefiles/docker/include.mk b/makefiles/docker/include.mk
index 48e20ca..6562631 100644
--- a/makefiles/docker/include.mk
+++ b/makefiles/docker/include.mk
@@ -24,9 +24,15 @@
# ---------------------------
docker-iam ?= --user $$(id -u):$$(id -g)# # override for local use
docker-run = docker run --rm $(docker-iam)# # Docker command stem
-docker-run-is = $(docker-run) $(is-stdin) # Attach streams when interactive
+docker-run-is = $(docker-run) $(is-stdin)# # Attach streams when interactive
docker-run-app = $(docker-run-is) -v ${CURDIR}:/app# # w/filesystem mount
-is-stdin = $(shell test -t 0 && echo "-it")
+
+# -----------------------------------------------------------------------
+# --interactive: Attach streams when stdout (fh==0) defined
+# --tty : Always create a pseudo-tty else jenkins:docker is silent
+# -----------------------------------------------------------------------
+is-stdin = $(shell test -t 0 && { echo '--interactive'; })
+is-stdin += --tty
voltha-protos-v5 ?= /go/src/github.com/opencord/voltha-protos/v5
@@ -59,6 +65,24 @@
endif
PROTOC_SH += $(vee-citools)-protoc sh -c
+# Usage: GO_JUNIT_REPORT := $(call get-docker-go-junit-repo)
+# get-docker-go-junit-repo = $(docker-run-app) $(vee-citools)-go-junit-report go-junit-report
+# GO_JUNIT_REPORT ?= $(call get-docker-go-junit-repo)
+
+# Usage: GOCOVER_COBERTURA := $(call get-docker-gocover-cobertura)
+# get-docker-gocover-cobertura = $(docker-run-app)/src/github.com/opencord/voltha-openolt-adapter $(vee-citools)-gocover-cobertura gocover-cobertura
+# GOCOVER_COBERTURA ?= $(call get-docker-gocover-cobertura)
+
+GO_JUNIT_REPORT = $(docker-run) -v ${CURDIR}:/app -i $(vee-citools)-go-junit-report go-junit-report
+GOCOVER_COBERTURA = $(docker-run) -v ${CURDIR}:/app/src/github.com/opencord/voltha-openolt-adapter -i $(vee-citools)-gocover-cobertura gocover-cobertura
+
+
+get-golangci-lint = $(docker-run-app) -v gocache:/.cache $(vee-golang) $(vee-citools)-golangci-lint golangci-lint
+GOLANGCI_LINT ?= $(call get-golangci-lint)
+
+get-docker-hadolint = $(docker-run-app) $(vee-citools)-hadolint hadolint
+HADOLINT ?= $(call get-docker-hadolint)
+
$(if $(DEBUG),$(warning LEAVE))
# [EOF]
diff --git a/makefiles/git-submodules.mk b/makefiles/git/ci-management.mk
similarity index 100%
rename from makefiles/git-submodules.mk
rename to makefiles/git/ci-management.mk
diff --git a/makefiles/git/help.mk b/makefiles/git/help.mk
new file mode 100644
index 0000000..cbd33ee
--- /dev/null
+++ b/makefiles/git/help.mk
@@ -0,0 +1,31 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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.
+# -----------------------------------------------------------------------
+# Intent: Helper makefile target used to setup for a release
+# -----------------------------------------------------------------------
+
+## ---------------------------------------------------------------------------
+## Intent: Display supported targets
+## ---------------------------------------------------------------------------
+help-onf-git :
+ @echo
+ @echo '[GIT]'
+ @echo ' show-submodules Display a list of repository submodules and versions'
+
+help ::
+ @echo ' help-onf-git Display git makefile targets'
+
+# [EOF]
diff --git a/makefiles/git/include.mk b/makefiles/git/include.mk
new file mode 100644
index 0000000..9d2558c
--- /dev/null
+++ b/makefiles/git/include.mk
@@ -0,0 +1,37 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##--------------------##
+##---] INCLUDES [---##
+##--------------------##
+include $(ONF_MAKEDIR)/git/help.mk
+include $(ONF_MAKEDIR)/git/required.mk
+
+## Special snowflakes: per-repository logic
+-include $(ONF_MAKEDIR)/git/$(--repo-name--).mk
+
+ifdef USE-ONF-GIT-MK
+ # Dynamic loading when targets are requested by name
+ include $(ONF_MAKEDIR)/git/submodules.mk
+endif
+
+# [EOF]
diff --git a/makefiles/git/required.mk b/makefiles/git/required.mk
new file mode 100644
index 0000000..44f498d
--- /dev/null
+++ b/makefiles/git/required.mk
@@ -0,0 +1,32 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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.
+# -----------------------------------------------------------------------
+# Intent: Conditionally load when named targets are requested.
+# var ?= $(error ...) definitions are fatal to "make help" and others
+# -----------------------------------------------------------------------
+
+git-mk-targets := $(NULL)
+git-mk-targets := show-submodules
+
+# -----------------------------------------------------------------------
+# Define a flag to only load release targets when mentioned by name
+# Makefile can also explicitly define the flag to force always loading.
+# -----------------------------------------------------------------------
+$(foreach tgt,$(git-mk-targets),\
+ $(if $(findstring $(tgt),$(MAKECMDGOALS)),$(eval USE-ONF-GIT-MK := true))\
+)
+
+# [EOF]
diff --git a/makefiles/git/submodules.mk b/makefiles/git/submodules.mk
new file mode 100644
index 0000000..42c2fc2
--- /dev/null
+++ b/makefiles/git/submodules.mk
@@ -0,0 +1,57 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+show-submodules:
+
+ $(HIDE)cat .gitmodules
+
+ @echo
+ $(HIDE) git submodule
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# https://github.com/lfit/releng-global-jjb/tags
+# git checkout v0.86.7
+# [crucible:global-jjb] git checkout v0.86.7
+# Previous HEAD position was 5dc3432 Update regexp in lf-infra-ship-logs macro
+# HEAD is now at c5bd1d3 Fix: Pin urllib3~=1.26.15 in pypi dist jobs
+
+# 5dc3432cae2f13d9e5151a00a76a78ce73d92d70 global-jjb (v0.53.3)
+# 0d88f8b7a24b53b1c3e189e30ab94373c51eea91 lf-ansible (0d88f8b)
+# 4a5b0cd9032938194c4813fe36663ddee4f9e60e packer/common-packer (v0.1.0~22)
+
+# https://stackoverflow.com/questions/30301510/git-submodule-specify-version
+# cd global-jjb
+# git checkout v0.86.7
+# cd -
+# git commit . -m "use submodule v0.86.7"
+
+# https://github.com/lfit/releng-lf-ansible.git
+# tag==master, no release
+
+# https://github.com/lfit/releng-common-packer.git
+# cd packer/common-packer
+# git checkout v0.12.1
+# cd -
+# git commit . -m "use submodule v0.12.1""
+
+# [EOF]
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 48e20ca..8bf7890 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -12,53 +12,63 @@
# 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.d
+# limitations under the License.
# -----------------------------------------------------------------------
+# SPDX-FileCopyrightText: 2017-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefiles.include.version = 1.1
+# -----------------------------------------------------------------------
+
+ifndef mk-include--onf-make # single-include guard macro
$(if $(DEBUG),$(warning ENTER))
-VOLTHA_TOOLS_VERSION ?= 2.4.0
+## -----------------------------------------------------------------------
+## Define vars based on relative import (normalize symlinks)
+## Usage: include makefiles/onf/include.mk
+## -----------------------------------------------------------------------
+onf-mk-abs ?= $(abspath $(lastword $(MAKEFILE_LIST)))
+onf-mk-top := $(subst /include.mk,$(null),$(onf-mk-abs))
+ONF_MAKEDIR := $(onf-mk-top)
-# ---------------------------
-# Macros: command refactoring
-# ---------------------------
-docker-iam ?= --user $$(id -u):$$(id -g)# # override for local use
-docker-run = docker run --rm $(docker-iam)# # Docker command stem
-docker-run-is = $(docker-run) $(is-stdin) # Attach streams when interactive
-docker-run-app = $(docker-run-is) -v ${CURDIR}:/app# # w/filesystem mount
-is-stdin = $(shell test -t 0 && echo "-it")
+TOP ?= $(patsubst %/makefiles/include.mk,%,$(onf-mk-abs))
-voltha-protos-v5 ?= /go/src/github.com/opencord/voltha-protos/v5
+include $(ONF_MAKEDIR)/consts.mk
+include $(ONF_MAKEDIR)/help/include.mk # render target help
+include $(ONF_MAKEDIR)/utils/include.mk # dependency-less helper macros
+include $(ONF_MAKEDIR)/etc/include.mk # banner macros
+include $(ONF_MAKEDIR)/commands/include.mk # Tools and local installers
-# Docker volume mounts: container:/app/release <=> localhost:{pwd}/release
-vee-golang = -v gocache-${VOLTHA_TOOLS_VERSION}:/go/pkg
-vee-citools = voltha/voltha-ci-tools:${VOLTHA_TOOLS_VERSION}
+include $(ONF_MAKEDIR)/virtualenv.mk# # lint-{jjb,python} depends on venv
+include $(ONF_MAKEDIR)/lint/include.mk
-# ---------------
-# Tool Containers
-# ---------------
-docker-go-stem = $(docker-run-app) -v gocache:/.cache $(vee-golang) $(vee-citools)-golang
+include $(ONF_MAKEDIR)/gerrit/include.mk
+include $(ONF_MAKEDIR)/git/include.mk
+include $(ONF_MAKEDIR)/jjb/include.mk
-# Usage: GO := $(call get-docker-go,./my.env.temp)
-get-docker-go = $(docker-go-stem) go
-GO ?= $(call get-docker-go)
+$(if $(USE-VOLTHA-RELEASE-MK),\
+ $(eval include $(ONF_MAKEDIR)/release/include.mk))
-# Usage: GO_SH := $(call get-docker-go-sh,./my.env.temp)
-get-docker-go-sh = $(docker-go-stem) $(if $(1),--env-file $(1)) sh -c
-GO_SH ?= $(call get-docker-go-sh,./my.env.temp)
+include $(ONF_MAKEDIR)/todo.mk
+include $(ONF_MAKEDIR)/help/variables.mk
-# Usage: PROTOC := $(call get-docker-protoc)
-get-docker-protoc = $(docker-run-app) $(vee-citools)-protoc protoc
-PROTOC ?= $(call get-docker-protoc)
+##---------------------##
+##---] ON_DEMAND [---##
+##---------------------##
+$(if $(USE-ONF-GERRIT-MK),$(eval include $(ONF_MAKEDIR)/gerrit/include.mk))
+$(if $(USE-ONF-DOCKER-MK),$(eval include $(ONF_MAKEDIR)/docker/include.mk))
-# get-docker-protoc-sh = $(strip )
-PROTOC_SH = $(docker-run-is)
-ifdef voltha-protos-v5
- PROTOC_SH += -v ${CURDIR}:$(voltha-protos-v5)
- PROTOC_SH += --workdir=$(voltha-protos-v5)
-endif
-PROTOC_SH += $(vee-citools)-protoc sh -c
+##-------------------##
+##---] TARGETS [---##
+##-------------------##
+include $(ONF_MAKEDIR)/targets/include.mk # clean, sterile
$(if $(DEBUG),$(warning LEAVE))
+mk-include--onf-make := true
+
+endif # mk-include--onf-make
+
# [EOF]
diff --git a/makefiles/lint/include.mk b/makefiles/lint/include.mk
index 787e146..a8fe1af 100644
--- a/makefiles/lint/include.mk
+++ b/makefiles/lint/include.mk
@@ -1,6 +1,24 @@
# -*- makefile -*-
# -----------------------------------------------------------------------
-# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefile.version = 1.1
# -----------------------------------------------------------------------
$(if $(DEBUG),$(warning ENTER))
@@ -14,8 +32,9 @@
include $(ONF_MAKEDIR)/lint/json.mk
include $(ONF_MAKEDIR)/lint/license/include.mk
include $(ONF_MAKEDIR)/lint/makefile.mk
-include $(ONF_MAKEDIR)/lint/python.mk
+include $(ONF_MAKEDIR)/lint/python/include.mk
include $(ONF_MAKEDIR)/lint/shell.mk
+# include $(ONF_MAKEDIR)/lint/tox/include.mk
include $(ONF_MAKEDIR)/lint/yaml.mk
include $(ONF_MAKEDIR)/lint/help.mk
diff --git a/makefiles/lint/python.mk b/makefiles/lint/python.mk
deleted file mode 100644
index d3fe4fd..0000000
--- a/makefiles/lint/python.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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.
-# -----------------------------------------------------------------------
-
-##-------------------##
-##---] GLOBALS [---##
-##-------------------##
-
-# Gather sources to check
-# TODO: implement deps, only check modified files
-python-check-find := find . -name '*venv*' -prune\
- -o \( -name '*.py' \)\
- -type f -print0
-
-# python-check := $(env-clean) pylint
-python-check := pylint
-
-# python-check-args += --dry-run
-
-##-------------------##
-##---] TARGETS [---##
-##-------------------##
-ifndef NO-LINT-PYTHON
- lint : lint-python
-endif
-
-## -----------------------------------------------------------------------
-## Intent: Perform a lint check on makefile sources
-## -----------------------------------------------------------------------
-lint-python:
- $(HIDE)$(env-clean) $(python-check-find) \
- | $(xargs-n1) $(python-check) $(python-check-args)
-
-## -----------------------------------------------------------------------
-## Intent: Display command help
-## -----------------------------------------------------------------------
-help-summary ::
- @echo ' lint-python Syntax check python sources (*.py)'
-
-# [EOF]
diff --git a/makefiles/lint/shell.mk b/makefiles/lint/shell.mk
index a02da31..3c33bb2 100644
--- a/makefiles/lint/shell.mk
+++ b/makefiles/lint/shell.mk
@@ -30,11 +30,11 @@
shell-check-find += -o \( -name '*.sh' \)
shell-check-find += -type f -print0
-# shell-check := $(env-clean) pylint
-shell-check := shellcheck
+shell-check := $(env-clean) shellcheck
+# shell-check := shellcheck
shell-check-args += --check-sourced
-shell-check-args += --extenal-sources
+shell-check-args += --external-sources
##-------------------##
##---] TARGETS [---##
diff --git a/makefiles/python/include.mk b/makefiles/python/include.mk
index 70b5ca1..f46aea0 100644
--- a/makefiles/python/include.mk
+++ b/makefiles/python/include.mk
@@ -1,6 +1,6 @@
# -*- makefile -*-
# -----------------------------------------------------------------------
-# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/python/test/include.mk b/makefiles/python/test/include.mk
index 12afc3e..026fe68 100644
--- a/makefiles/python/test/include.mk
+++ b/makefiles/python/test/include.mk
@@ -1,6 +1,6 @@
# -*- makefile -*-
# -----------------------------------------------------------------------
-# Copyright 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/targets/check.mk b/makefiles/targets/check.mk
index 2145343..aa1b0d0 100644
--- a/makefiles/targets/check.mk
+++ b/makefiles/targets/check.mk
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/targets/clean.mk b/makefiles/targets/clean.mk
index f504dec..f787e5c 100644
--- a/makefiles/targets/clean.mk
+++ b/makefiles/targets/clean.mk
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/targets/sterile.mk b/makefiles/targets/sterile.mk
index 1eb7035..c661f53 100644
--- a/makefiles/targets/sterile.mk
+++ b/makefiles/targets/sterile.mk
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/targets/test.mk b/makefiles/targets/test/ci-management.mk
similarity index 93%
rename from makefiles/targets/test.mk
rename to makefiles/targets/test/ci-management.mk
index d70fa4a..2f68086 100644
--- a/makefiles/targets/test.mk
+++ b/makefiles/targets/test/ci-management.mk
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# SPDX-FileCopyrightText: 2022 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-FileCopyrightText: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
diff --git a/makefiles/targets/test/include.mk b/makefiles/targets/test/include.mk
new file mode 100644
index 0000000..a706bfd
--- /dev/null
+++ b/makefiles/targets/test/include.mk
@@ -0,0 +1,31 @@
+# -*- makefile -*-
+# -----------------------------------------------------------------------
+# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022-2023 Open Networking Foundation (ONF) and the ONF Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# https://gerrit.opencord.org/plugins/gitiles/onf-make
+# ONF.makefile.version = 1.0
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+# Special snowflake: repository-dependent test target
+-include $(ONF_MAKEDIR)/targets/test/$(--repo-name--).mk
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/targets/tox.mk b/makefiles/targets/tox.mk
deleted file mode 100644
index b3a638b..0000000
--- a/makefiles/targets/tox.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-# -*- makefile -*-
-# -----------------------------------------------------------------------
-# Copyright 2022-2023 Open Networking Foundation (ONF) and the ONF 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: 2022 Open Networking Foundation (ONF) and the ONF Contributors
-# SPDX-License-Identifier: Apache-2.0
-# -----------------------------------------------------------------------
-
-$(if $(DEBUG),$(warning ENTER))
-
-## -----------------------------------------------------------------------
-## Intent: Sanity check incoming JJB config changes.
-## Todo: Depend on makefiles/lint/jjb.mk :: lint-jjb
-## -----------------------------------------------------------------------
-# lint : lint-jjb
-lint-tox: lint-jjb
- tox -e py310
-
-## -----------------------------------------------------------------------
-## -----------------------------------------------------------------------
-help-verbose += help-tox
-help-tox ::
- @echo
- @echo '[MAKE: tox]'
- @echo ' lint-tox Python unit testing, sanity check incoming JJB changes.'
-
-$(if $(DEBUG),$(warning LEAVE))
-
-# [EOF]
diff --git a/makefiles/todo.mk b/makefiles/todo.mk
index d97dbbb..ab7400d 100644
--- a/makefiles/todo.mk
+++ b/makefiles/todo.mk
@@ -22,7 +22,8 @@
todo ::
@echo '[TODO]'
- @echo ' o volthaStackDeploy.groovy - post v2.11 release cleanup for 2.8'
+ @echo ' o item 1'
+ @echo ' o item 2'
## -----------------------------------------------------------------------
## -----------------------------------------------------------------------
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index 93eb29d..c6904da 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -13,7 +13,7 @@
# 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.
-## -----------------------------------------------------------------------
+# -----------------------------------------------------------------------
# https://gerrit.opencord.org/plugins/gitiles/onf-make
# ONF.makefile.version = 1.0
# -----------------------------------------------------------------------