Merge "Anchor rsync targets with dot, last attempt copied into rsync/rsync"
diff --git a/jjb/shell/common/README.md b/jjb/shell/common/README.md
index 4c171b6..07d5e70 100644
--- a/jjb/shell/common/README.md
+++ b/jjb/shell/common/README.md
@@ -5,14 +5,20 @@
 
 ## Hierarchy may appear strange (common/common) but setup is intentional:
 
-common/
-├── common
-│   └── sh
-│       ├── stacktrace.sh
-│       ├── tempdir.sh
-│       └── traputils.sh
-├── common.sh
-└── preserve_argv.sh
+% tree --charset=ascii common
+
+common
+|-- common
+|   `-- sh
+|       |-- stacktrace.sh
+|       |-- tempdir.sh
+|       `-- traputils.sh
+|-- common.sh
+|-- example.sh
+|-- preserve_argv.sh
+`-- README.md
+
+2 directories, 7 files
 
 ### Usage: Source individual libraries by path
 
diff --git a/jjb/verify/ofagent-go.yaml b/jjb/verify/ofagent-go.yaml
index 4e37059..8d07294 100644
--- a/jjb/verify/ofagent-go.yaml
+++ b/jjb/verify/ofagent-go.yaml
@@ -8,6 +8,10 @@
     jobs:
       - 'verify-ofagent-go-jobs':
           branch-regexp: '{all-branches-regexp}'
+      - 'verify-ofagent-jobs-voltha-2.11':
+          name-extension: '-voltha-2.11'
+          override-branch: 'voltha-2.11'
+          branch-regexp: '{kind-voltha-regexp}'
       - 'verify-ofagent-jobs-voltha-2.8':
           name-extension: '-voltha-2.8'
           override-branch: 'voltha-2.8'
@@ -31,6 +35,12 @@
           junit-allow-empty-results: true
 
 - job-group:
+    name: 'verify-ofagent-jobs-voltha-2.11'
+    jobs:
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
     name: 'verify-ofagent-jobs-voltha-2.8'
     jobs:
       - 'voltha-patch-test':
diff --git a/jjb/verify/voltha-api-server.yaml b/jjb/verify/voltha-api-server.yaml
index 2892fc1..951e679 100644
--- a/jjb/verify/voltha-api-server.yaml
+++ b/jjb/verify/voltha-api-server.yaml
@@ -13,6 +13,15 @@
       - 'publish-voltha-api-server-jobs':
           branch-regexp: '{all-branches-regexp}'
 
+# -----------------------------------------------------------------------
+# verify-voltha-api-server-jobs
+#   o explicitly dependent on v2.8
+#   o copied to job verify-voltha-api-server-jobs-voltha-2.8
+#   o updated verify-voltha-api-server-jobs to depend on v2.11
+#   o is this another element that should be deleted with v2.11 ?
+#   o if not deprecated rename job to contain *-voltha-x.y to be clear
+#     the job is not intended for master branch.
+# -----------------------------------------------------------------------
 - job-group:
     name: 'verify-voltha-api-server-jobs'
     jobs:
@@ -26,6 +35,21 @@
           unit-test-keep-going: 'true'
           junit-allow-empty-results: true
       - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
+    name: 'verify-voltha-api-server-jobs-voltha-2.8'
+    jobs:
+      - 'verify-licensed'
+      - 'tag-collision-reject':
+          dependency-jobs: 'verify_voltha-api-server_licensed'
+      - 'make-unit-test':
+          build-node: 'ubuntu18.04-basebuild-2c-4g'
+          dest-gopath: "github.com/opencord"
+          unit-test-targets: 'lint sca test'
+          unit-test-keep-going: 'true'
+          junit-allow-empty-results: true
+      - 'voltha-patch-test':
           pipeline-script: 'voltha/voltha-2.8/bbsim-tests.groovy'
 
 - job-group:
diff --git a/jjb/verify/voltha-go.yaml b/jjb/verify/voltha-go.yaml
index 5dad879..8f7dff6 100644
--- a/jjb/verify/voltha-go.yaml
+++ b/jjb/verify/voltha-go.yaml
@@ -8,6 +8,10 @@
     jobs:
       - 'verify-voltha-go-jobs':
           branch-regexp: '{all-branches-regexp}'
+      - 'verify-voltha-go-jobs-voltha-2.11':
+          name-extension: '-voltha-2.11'
+          override-branch: 'voltha-2.11'
+          branch-regexp: '^voltha-2.11$'
       - 'verify-voltha-go-jobs-voltha-2.8':
           name-extension: '-voltha-2.8'
           override-branch: 'voltha-2.8'
@@ -39,6 +43,12 @@
           unit-test-keep-going: 'true'
 
 - job-group:
+    name: 'verify-voltha-go-jobs-voltha-2.11'
+    jobs:
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
     name: 'verify-voltha-go-jobs-voltha-2.8'
     jobs:
       - 'voltha-patch-test':
diff --git a/jjb/verify/voltha-onos.yaml b/jjb/verify/voltha-onos.yaml
index 82910d6..57c278a 100644
--- a/jjb/verify/voltha-onos.yaml
+++ b/jjb/verify/voltha-onos.yaml
@@ -8,6 +8,10 @@
     jobs:
       - 'verify-voltha-onos-jobs':
           branch-regexp: '{all-branches-regexp}'
+      - 'verify-voltha-onos-jobs-voltha-2.11':
+          name-extension: '-voltha-2.11'
+          override-branch: 'voltha-2.11'
+          branch-regexp: '^voltha-2.11$'
       - 'verify-voltha-onos-jobs-voltha-2.8':
           name-extension: '-voltha-2.8'
           override-branch: 'voltha-2.8'
@@ -25,6 +29,12 @@
           dependency-jobs: 'verify_voltha-onos_licensed'
 
 - job-group:
+    name: 'verify-voltha-onos-jobs-voltha-2.11'
+    jobs:
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
     name: 'verify-voltha-onos-jobs-voltha-2.8'
     jobs:
       - 'voltha-patch-test':
diff --git a/jjb/verify/voltha-openonu-adapter-go.yaml b/jjb/verify/voltha-openonu-adapter-go.yaml
index b45783c..9eb0ec1 100644
--- a/jjb/verify/voltha-openonu-adapter-go.yaml
+++ b/jjb/verify/voltha-openonu-adapter-go.yaml
@@ -8,6 +8,10 @@
     jobs:
       - 'verify-voltha-openonu-adapter-go-jobs':
           branch-regexp: '{all-branches-regexp}'
+      - 'verify-voltha-openonu-adapter-go-jobs-voltha-2.11':
+          name-extension: '-voltha-2.11'
+          override-branch: 'voltha-2.11'
+          branch-regexp: '^voltha-2.11$'
       - 'verify-voltha-openonu-adapter-go-jobs-voltha-2.8':
           name-extension: '-voltha-2.8'
           override-branch: 'voltha-2.8'
@@ -38,6 +42,12 @@
           build-node: 'ubuntu18.04-basebuild-2c-4g'
 
 - job-group:
+    name: 'verify-voltha-openonu-adapter-go-jobs-voltha-2.11'
+    jobs:
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
     name: 'verify-voltha-openonu-adapter-go-jobs-voltha-2.8'
     jobs:
       - 'voltha-patch-test':
diff --git a/jjb/verify/voltha-system-tests.yaml b/jjb/verify/voltha-system-tests.yaml
index 8b442db..064495a 100644
--- a/jjb/verify/voltha-system-tests.yaml
+++ b/jjb/verify/voltha-system-tests.yaml
@@ -9,6 +9,11 @@
       - 'verify-voltha-system-tests-jobs':
           build-node: 'ubuntu18.04-basebuild-4c-8g'
           branch-regexp: '{all-branches-regexp}'
+      - 'verify-voltha-system-tests-jobs-voltha-2.11':
+          build-node: 'ubuntu18.04-basebuild-4c-8g'
+          name-extension: '-voltha-2.11'
+          override-branch: 'voltha-2.11'
+          branch-regexp: '^voltha-2.11$'
       - 'verify-voltha-system-tests-jobs-voltha-2.8':
           build-node: 'ubuntu18.04-basebuild-4c-8g'
           name-extension: '-voltha-2.8'
@@ -30,6 +35,12 @@
           junit-allow-empty-results: true
 
 - job-group:
+    name: 'verify-voltha-system-tests-jobs-voltha-2.11'
+    jobs:
+      - 'voltha-patch-test':
+          pipeline-script: 'voltha/voltha-2.11/bbsim-tests.groovy'
+
+- job-group:
     name: 'verify-voltha-system-tests-jobs-voltha-2.8'
     jobs:
       - 'voltha-patch-test':
diff --git a/makefiles/git-submodules.mk b/makefiles/git-submodules.mk
new file mode 100644
index 0000000..a96121c
--- /dev/null
+++ b/makefiles/git-submodules.mk
@@ -0,0 +1,61 @@
+# -*- 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: Checkout submodules required by ci-management
+## -----------------------------------------------------------------------
+submodule-deps := $(null)
+submodule-deps += submodules#     # named pseudo target
+submodule-deps += global-jjb
+submodule-deps += lf-ansible
+submodule-deps += packer
+
+.PHONY: $(submodule-deps)
+$(submodule-deps):
+	git submodule init
+	git submodule update
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+sterile ::
+	$(RM) -r $(submodule-deps)
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+help ::
+	@echo
+	@echo '[GIT-SUBMODULES]'
+	@echo '  submodules     Checkout dependent git submodules'
+  ifdef VERBOSE
+	@echo '  global-jjb     Checkout ci-management submodule global-jjb'
+	@echo '  lf-ansible     Checkout ci-management submodule lf-ansible'
+	@echo '  packer         Checkout ci-management submodule packer'
+  endif
+
+## -----------------------------------------------------------------------
+## -----------------------------------------------------------------------
+todo ::
+	@echo "Generalize logc, update to depend on .git/ rather than named targets."
+
+$(if $(DEBUG),$(warning LEAVE))
+
+# [EOF]
diff --git a/makefiles/help/include.mk b/makefiles/help/include.mk
index 81fd3d7..6e6ddff 100644
--- a/makefiles/help/include.mk
+++ b/makefiles/help/include.mk
@@ -20,16 +20,6 @@
 help ::
 	@echo "Usage: $(MAKE) [options] [target] ..."
 	@echo
-	@echo '[Virtual Env]'
-	@echo '  venv           Create a python virtual environment'
-ifdef VENV_NAME
-	@echo "    VENV_NAME=$(VENV_NAME)"
-endif
-	@echo
-	@echo '[CLEAN]'
-	@echo '  clean          Remove generated targets'
-	@echo '  sterile        clean + remove virtual env interpreter install'
-	@echo
 	@echo '[VIEW]'
 	@echo '  reload         Setup to auto-reload sphinx doc changes in browser'
 	@echo '  view-html      View generated documentation'
@@ -37,9 +27,5 @@
 	@echo '[TEST]'
 	@echo '  test           make lint linkcheck'
 	@echo '  test-all       make all-generation-targets'
-	@echo
-	@echo '[HELP]'
-	@echo '  help           Display program help'
-	@echo '  help-verbose   Display additional targets and help'
 
 # [EOF]
diff --git a/makefiles/help/trailer.mk b/makefiles/help/trailer.mk
index d5d5369..dac7e15 100644
--- a/makefiles/help/trailer.mk
+++ b/makefiles/help/trailer.mk
@@ -19,6 +19,18 @@
 
 help ::
 	@echo
+	@echo '[CLEAN]'
+	@echo '  clean          Remove generated targets'
+	@echo '  sterile        clean + remove virtual env interpreter install'
+
+help ::
+	@echo
+	@echo '[HELP]'
+	@echo '  help           Display program help'
+	@echo '  help-verbose   Display additional targets and help'
+
+help ::
+	@echo
 	@echo '[NOTE: python 3.10+]'
 	@echo '  The interpreter is not yet fully supported across foreign repositories.'
 	@echo '  While working locally, if make fails to build a target try:'
diff --git a/makefiles/include.mk b/makefiles/include.mk
index 59aa600..1fe87ab 100644
--- a/makefiles/include.mk
+++ b/makefiles/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.
@@ -27,6 +27,7 @@
 include $(ONF_MAKE)/help/include.mk
 include $(ONF_MAKE)/lint/include.mk
 include $(ONF_MAKE)/virtualenv.mk
+include $(ONF_MAKE)/git-submodules.mk
 include $(ONF_MAKE)/todo.mk
 include $(ONF_MAKE)/help/variables.mk
 
diff --git a/makefiles/virtualenv.mk b/makefiles/virtualenv.mk
index 8207cfc..9fb5ad9 100644
--- a/makefiles/virtualenv.mk
+++ b/makefiles/virtualenv.mk
@@ -54,10 +54,11 @@
 help ::
 	@echo
 	@echo '[VIRTUAL ENV]'
-	@echo '  venv-name=          Subdir name for virtualenv install'
-	@echo '  venv-activate-script: make macro name'
-	@echo '      $$(target) dependency    : install python virtualenv'
-	@echo '      source $$(macro) && cmd  : configure env and run cmd'
+	@echo '  venv                         Create a python virtual environment'
+	@echo '    venv-name=                 Subdir name for virtualenv install'
+	@echo '  venv-activate-script         make macro name'
+	@echo '      $$(target) dependency    install python virtualenv'
+	@echo '      source $$(macro) && cmd  configure env and run cmd'
 
 $(if $(DEBUG),$(warning LEAVE))