[VOL-5010] - Clone unit tests to run on a v2.12 branch

makefiles/consts.mk
makefiles/virtualenv.mk
-----------------------
  o Copy in latest library makefiles from repo:onf-make

global-jjb
packer/common-packer
--------------------
  o Upgrade LinuxFoundation submodules to the latest version.
  o global-jjb           : from=0.53.3 to=0.86.7
  o packaer/common-packer: from=0.1.0~22 to=0.12.1

.gitignore
makefiles/include.mk
makefiles/git/
makefiles/jjb/
--------------
  o Added convenience make targets to view submodule versions.
  o JJB target:jjb-gen added to prototype local pipeline edits.
  o Logic is conditional, library will only load when targets are requested.

jjb/voltha-test/voltha-certification/
jjb/voltha-test/voltha-certification/README
jjb/voltha-test/voltha-certification/master.yaml
------------------------------------------------
  o Create pseudo-branches within voltha testing so we can
  o 'branch' (simple directory copy) at release time VS
  o having to find and clone individual test suites from last release.

Change-Id: I3e0096d3326e76b3faa896d73183f9d28e946d06
diff --git a/.gitignore b/.gitignore
index 0506491..0dc27e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,7 @@
 *.pyc
 
 # jjb local testing
+.venv
 venv-jjb
 job-configs
 
@@ -38,4 +39,7 @@
 package-lock.json
 package.json
 
+# Generated pipeline jobs
+build/
+
 # [EOF]
diff --git a/jjb/voltha-test/voltha-certification/README b/jjb/voltha-test/voltha-certification/README
new file mode 100644
index 0000000..8b57f6f
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/README
@@ -0,0 +1,7 @@
+This directory is used for refactoring and breakup of the kitchen sink
+JJB job yaml template that contains all versioned VOLTHA test stuies.
+
+git branches are not used, all jobs are visible.
+To support modular branch based testing naming conventions that include
+some form of voltha-X.YY will be used within configs and templates to
+support separation of jobs by release branch.
\ No newline at end of file
diff --git a/jjb/voltha-test/voltha-certification/master.yaml b/jjb/voltha-test/voltha-certification/master.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/master.yaml
diff --git a/jjb/voltha-test/voltha-certification/playground.yaml b/jjb/voltha-test/voltha-certification/playground.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/playground.yaml
diff --git a/jjb/voltha-test/voltha-certification/voltha-2.11.yaml b/jjb/voltha-test/voltha-certification/voltha-2.11.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/voltha-2.11.yaml
diff --git a/jjb/voltha-test/voltha-certification/voltha-2.12.yaml b/jjb/voltha-test/voltha-certification/voltha-2.12.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/voltha-2.12.yaml
diff --git a/jjb/voltha-test/voltha-certification/voltha-2.8.yaml b/jjb/voltha-test/voltha-certification/voltha-2.8.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/jjb/voltha-test/voltha-certification/voltha-2.8.yaml
diff --git a/jjb/voltha-test/voltha-nightly-jobs/README b/jjb/voltha-test/voltha-nightly-jobs/README
new file mode 100644
index 0000000..8b57f6f
--- /dev/null
+++ b/jjb/voltha-test/voltha-nightly-jobs/README
@@ -0,0 +1,7 @@
+This directory is used for refactoring and breakup of the kitchen sink
+JJB job yaml template that contains all versioned VOLTHA test stuies.
+
+git branches are not used, all jobs are visible.
+To support modular branch based testing naming conventions that include
+some form of voltha-X.YY will be used within configs and templates to
+support separation of jobs by release branch.
\ No newline at end of file
diff --git a/makefiles/consts.mk b/makefiles/consts.mk
index d6f71e8..8961b3a 100644
--- a/makefiles/consts.mk
+++ b/makefiles/consts.mk
@@ -17,6 +17,7 @@
 # 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
 # -----------------------------------------------------------------------
 
@@ -26,17 +27,25 @@
 export dot          :=.
 export null         :=#
 export space        := $(null) $(null)
-export quote-single := $(null)"$(null)#"
-export quote-double := $(null)'$(null)#'
+export quote-single := $(null)'$(null)#'
+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/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..9125178
--- /dev/null
+++ b/makefiles/git/include.mk
@@ -0,0 +1,36 @@
+# -*- 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 $(MAKEDIR)/git/help.mk
+include $(MAKEDIR)/git/required.mk
+
+ifdef USE_ONF_GIT_MK
+  # Dynamic loading when targets are requested by name
+  include $(ONF_MAKE)/git/submodules.mk
+endif
+
+# [EOF]
+
+
diff --git a/makefiles/git/required.mk b/makefiles/git/required.mk
new file mode 100644
index 0000000..29fba88
--- /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 d4fb1e3..491ee0f 100644
--- a/makefiles/include.mk
+++ b/makefiles/include.mk
@@ -35,6 +35,9 @@
 include $(ONF_MAKE)/git-submodules.mk
 include $(ONF_MAKE)/gerrit/include.mk
 
+include $(ONF_MAKE)/git/include.mk
+include $(ONF_MAKE)/jjb/include.mk
+
 include $(ONF_MAKE)/release/include.mk
 
 include $(ONF_MAKE)/todo.mk
diff --git a/makefiles/jjb/help.mk b/makefiles/jjb/help.mk
new file mode 100644
index 0000000..331c68a
--- /dev/null
+++ b/makefiles/jjb/help.mk
@@ -0,0 +1,38 @@
+# -*- 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-jjb:
+	@echo
+	@echo '[JJB]'
+	@echo '  jjb-gen             Generate a local set of JJB pipelines'
+
+  ifdef VERBOSE
+	@echo '    LOGS=1            Display log from jjb-gen target'
+	@echo '    VERBOSE=1         Display generated pipeline files'
+  endif
+
+## ---------------------------------------------------------------------------
+## ---------------------------------------------------------------------------
+help ::
+	@echo '  help-jjb            Display Jenkins Job Builder targets'
+
+# [EOF]
diff --git a/makefiles/jjb/include.mk b/makefiles/jjb/include.mk
new file mode 100644
index 0000000..e61ad7c
--- /dev/null
+++ b/makefiles/jjb/include.mk
@@ -0,0 +1,36 @@
+# -*- 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 $(MAKEDIR)/jjb/help.mk
+include $(MAKEDIR)/jjb/required.mk
+
+ifdef USE-ONF-JJB-MK
+  # Dynamic loading when targets are requested by name
+  include $(ONF_MAKE)/jjb/targets.mk
+endif
+
+# [EOF]
+
+
diff --git a/makefiles/jjb/required.mk b/makefiles/jjb/required.mk
new file mode 100644
index 0000000..17371e9
--- /dev/null
+++ b/makefiles/jjb/required.mk
@@ -0,0 +1,33 @@
+# -*- 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
+# -----------------------------------------------------------------------
+
+onf-mk-jjb-targets := $(NULL)
+onf-mk-jjb-targets += jjb-gen
+onf-mk-jjb-targets += sterile
+
+# -----------------------------------------------------------------------
+# 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,$(onf-mk-jjb-targets),\
+  $(if $(findstring $(tgt),$(MAKECMDGOALS)),$(eval USE-ONF-JJB-MK := true))\
+)
+
+# [EOF]
diff --git a/makefiles/jjb/targets.mk b/makefiles/jjb/targets.mk
new file mode 100644
index 0000000..17fc78f
--- /dev/null
+++ b/makefiles/jjb/targets.mk
@@ -0,0 +1,64 @@
+# -*- 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
+# -----------------------------------------------------------------------
+
+$(if $(DEBUG),$(warning ENTER))
+
+##-------------------##
+##---]  GLOBALS  [---##
+##-------------------##
+jjb-gen-dir := build
+
+##-------------------##
+##---]  TARGETS  [---##
+##-------------------##
+all: help
+
+## -----------------------------------------------------------------------
+## Intent: Generate pipeline jobs
+## -----------------------------------------------------------------------
+.PHONY: jjb-gen
+
+jjb-gen-log := $(jjb-gen-dir)/jjb-gen.log
+jjb-gen:
+	@mkdir -p $(jjb-gen-dir)
+
+	@echo
+	@echo "** Generating pipelines (target: $@)"
+	@touch "$(jjb-gen-dir)/.sentinel"
+	( jenkins-jobs test $(PWD)/jjb -o $(jjb-gen-dir) 3>&1 2>&1 )\
+	   > "$(jjb-gen-log)"
+
+  ifdef LOGS
+	-@less "$(jjb-gen-log)"
+  endif
+
+  ifdef VERBOSE
+	@echo
+	@echo "** Display generated pipelines"
+	find "$(jjb-gen-dir)" -newer "$(jjb-gen-dir)/.sentinel" -ls
+  endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+sterile ::
+	$(RM) -r $(jjb-gen-dir)
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/release/required.mk b/makefiles/release/required.mk
index 59366ce..620b827 100644
--- a/makefiles/release/required.mk
+++ b/makefiles/release/required.mk
@@ -18,8 +18,9 @@
 #   var ?= $(error ...) definitions are fatal to "make help" and others
 # -----------------------------------------------------------------------
 
-voltha-release-mk-targets := null
+voltha-release-mk-targets := $(NULL)
 voltha-release-mk-targets += create-jobs-release
+voltha-release-mk-targets += create-jobs-release-certification
 voltha-release-mk-targets += create-jobs-release-nightly
 voltha-release-mk-targets += create-jobs-release-units
 voltha-release-mk-targets += sterile-create-jobs-release
diff --git a/makefiles/release/targets.mk b/makefiles/release/targets.mk
index a984051..44aaac7 100644
--- a/makefiles/release/targets.mk
+++ b/makefiles/release/targets.mk
@@ -32,6 +32,8 @@
 # fatal to make help
 voltha-version ?= $(error $(MAKE) voltha-verison=voltha-x.yy is required)\
 
+last-release  := voltha-2.11
+
 ## Known releases
 versions += master
 versions += voltha-2.12
@@ -48,6 +50,7 @@
 ## Intent: Create branch driven pipeline test jobs.
 ## ---------------------------------------------------------------------------
 ## Build these deps to create a new release area
+create-jobs-release += create-jobs-release-certification
 create-jobs-release += create-jobs-release-nightly
 create-jobs-release += create-jobs-release-units
 
@@ -77,17 +80,16 @@
 ## ---------------------------------------------------------------------------
 ## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
 ## ---------------------------------------------------------------------------
-replace-ver  := voltha-2.11
 nightly-dir  := $(release-mk-top)/jjb/voltha-test/voltha-nightly-jobs
 nightly-yaml := $(nightly-dir)/$(voltha-version).yaml
-nightly-tmpl := $(nightly-dir)/$(replace-ver).yaml
+nightly-tmpl := $(nightly-dir)/$(last-release).yaml
 
 create-jobs-release-nightly : $(nightly-yaml)
 $(nightly-yaml) : $(nightly-tmpl)
 
 	@echo
 	@echo "** Create branch driven pipeline: nightly tests"
-	sed -e 's/$(replace-ver)/$(voltha-version)/g' $< > $@
+	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
 	$(HIDE)/bin/ls -l $(dir $@)
 
 ## ---------------------------------------------------------------------------
@@ -99,8 +101,36 @@
 
 ## ---------------------------------------------------------------------------
 ## Intent: Create branch driven nightly test jobs.
+##   o Clone config for the last nightly release
+##   o In-place edit to the latest version.
+## ---------------------------------------------------------------------------
+## NOTE: WIP - nightly jobs have not yet migrated from the mega job config file
+## ---------------------------------------------------------------------------
+certification-dir  := $(release-mk-top)/jjb/voltha-test/voltha-certification
+certification-yaml := $(certification-dir)/$(voltha-version).yaml
+certification-tmpl := $(certification-dir)/$(last-release).yaml
+
+create-jobs-release-certification : $(certification-yaml)
+$(certification-yaml) : $(certification-tmpl)
+
+	@echo
+	@echo "** Create branch driven pipeline: nightly tests"
+	sed -e 's/$(last-release)/$(voltha-version)/g' $< > $@
+	$(HIDE)/bin/ls -l $(dir $@)
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
+## ---------------------------------------------------------------------------
+$(certification-tmpl):
+	@echo "ERROR: Yaml template branch does not exist: $@"
+	@echo 1
+
+
+## ---------------------------------------------------------------------------
+## Intent: Create branch driven nightly test jobs.
 ## ---------------------------------------------------------------------------
 sterile-create-jobs-release :
+	$(RM) $(certification-yaml)
 	$(RM) $(nightly-yaml)
 	$(RM) -r $(units-yaml)
 
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index 2e12f24..93eb29d 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -14,6 +14,9 @@
 # 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
+# -----------------------------------------------------------------------
 
 $(if $(DEBUG),$(warning ENTER))