diff --git a/CHANGELOG.md b/CHANGELOG.md
index ceae73de3679b5cd6c22d6a6c2295cb79b8affb8..9816103f2d83a18d5df61ed2cf9178f7739defeb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
 # RELEASE NOTES: #
 
+## v1.5.1 -- May 2023 ##
+
+* Code Refactoring for:
+  * Logging mechanism (runtime log level selection)
+  * Installation / build scripts
+  * Continuous Integration scripts
+* Published image on Docker-Hub is using now Ubuntu-20 as base image
+  * We will soon obsolete the build system for Ubuntu18.04
+
 ## v1.5.0 -- January 2023 ##
 
 * feat(fqdn): giving some time for FQDN resolution
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b06a6c2b7e33553c5bcccef0183515db7dbb4b71..ced3e12b7f7d1080af9645e19a081410fab63342 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -15,6 +15,19 @@ Please refer to the steps described on our website: [How to contribute to OAI](h
       * The Continuous Integration will reject your pull request.
    - All pull requests SHALL have **`develop`** branch as target branch.
 
+## Synchronizing GIT sub-modules ##
+
+We are using nested GIT submodules. To synchronize them, the 2 most important commands to know are :
+
+1. `git submodule deinit --force .`
+2. `git submodule update --init --recursive`
+
+If you have non-tracked files or modified files within git submodules, these commands may not work.
+
+Use the `--verbose` option to see the execution of each command.
+
+If the synchronization fails, you may need to go into the path of the failing git-submodule(s) and clean the workspace from non-tracked/modified files.
+
 ## Coding Styles ##
 
 We are using `clang-format` as formatting tool on the C/C++ code.
diff --git a/ci-scripts/Jenkinsfile-GitLab-Docker b/ci-scripts/Jenkinsfile-GitLab-Docker
index 6f4fe4a511c27662a0707c2c9dd26a602b40964b..6bd21733cea73efd44e7c7982a1e64f6acbd2de5 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Docker
+++ b/ci-scripts/Jenkinsfile-GitLab-Docker
@@ -213,7 +213,7 @@ pipeline {
               script {
                 sh "sudo podman image prune --force"
                 sh "rm -Rf ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca"
-                stash includes: 'archives/nef_podman_image_build.log', name: 'podmanBuildLog'
+                stash allowEmpty: true, includes: 'archives/nef_podman_image_build.log', name: 'podmanBuildLog'
               }
             }
           }
@@ -248,7 +248,7 @@ pipeline {
             }
             cleanup {
               script {
-                stash includes: 'archives/cppcheck*.*', name: 'cppcheckLogs'
+                stash allowEmpty: true, includes: 'archives/cppcheck*.*', name: 'cppcheckLogs'
                 // no need to keep the cppcheck container
                 sh 'docker rm -f nef-ci-cppcheck || true'
                 sh 'docker rmi nef-cppcheck:test || true'
@@ -285,7 +285,7 @@ pipeline {
           post {
             cleanup {
               script {
-                stash includes: 'src/oai_rules_result*.txt', name: 'formatCheckLogs'
+                stash allowEmpty: true, includes: 'src/oai_rules_result*.txt, archives/clang_format_install.log', name: 'formatCheckLogs'
                 sh 'docker rm -f nef-ci-clang-format || true'
                 sh 'docker rmi nef-clang-format-check:test || true'
               }
diff --git a/ci-scripts/common b/ci-scripts/common
index 99747a00750c678b24b72a2c377ae65086910077..b9ca1e67d3e4b4fee5075d90e98015698ab1f0a1 160000
--- a/ci-scripts/common
+++ b/ci-scripts/common
@@ -1 +1 @@
-Subproject commit 99747a00750c678b24b72a2c377ae65086910077
+Subproject commit b9ca1e67d3e4b4fee5075d90e98015698ab1f0a1
diff --git a/ci-scripts/generateHtmlReport.py b/ci-scripts/generateHtmlReport.py
index 73f730586bfe9243d6c609465d02b08d56c93bdd..02383649b735198aa9a1b30e93155b90e5c1f20b 100755
--- a/ci-scripts/generateHtmlReport.py
+++ b/ci-scripts/generateHtmlReport.py
@@ -58,7 +58,7 @@ class HtmlReport():
         with open(os.path.join(cwd, REPORT_NAME), 'w') as wfile:
             wfile.write(generate_header(args))
             wfile.write(generate_git_info(args))
-            wfile.write(build_summary(args, 'nef', '18', '8'))
+            wfile.write(build_summary(args, 'nef', '20', '8'))
             wfile.write(coding_formatting_log_check(args))
             wfile.write(analyze_sca_log_check())
             wfile.write(generate_footer())
diff --git a/ci-scripts/openshift/oai-nef-bc.yaml b/ci-scripts/openshift/oai-nef-bc.yaml
deleted file mode 100644
index 06ca5e98fdc68e9e9e3f9f0a4bd4889505cd0d94..0000000000000000000000000000000000000000
--- a/ci-scripts/openshift/oai-nef-bc.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-#/*
-# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
-# * contributor license agreements.  See the NOTICE file distributed with
-# * this work for additional information regarding copyright ownership.
-# * The OpenAirInterface Software Alliance licenses this file to You under
-# * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
-# *
-# * 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.
-# *-------------------------------------------------------------------------------
-# * For more information about the OpenAirInterface (OAI) Software Alliance:
-# *      contact@openairinterface.org
-# */
-#---------------------------------------------------------------------
-#
----
-kind: BuildConfig
-apiVersion: build.openshift.io/v1
-metadata:
-    name: "oai-nef"
-    namespace: oaicicd-core
-spec:
-    runPolicy: "Serial"
-    source:
-        type: "Binary"
-        secrets:
-          - secret:
-              name: etc-pki-entitlement
-            destinationDir: etc-pki-entitlement
-        configMaps:
-          - configMap:
-              name: rhsm-conf
-            destinationDir: rhsm-conf
-          - configMap:
-              name: rhsm-ca
-            destinationDir: rhsm-ca
-    strategy:
-        dockerStrategy:
-            dockerfilePath: "docker/Dockerfile.nef.rhel8"
-    output:
-        to:
-            kind: "ImageStreamTag"
-            name: "oai-nef:develop"
diff --git a/ci-scripts/openshift/oai-nef-is.yaml b/ci-scripts/openshift/oai-nef-is.yaml
deleted file mode 100644
index f999dfc1b6109186459ab4ccb383adc0ee9a4ee9..0000000000000000000000000000000000000000
--- a/ci-scripts/openshift/oai-nef-is.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-#/*
-# * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
-# * contributor license agreements.  See the NOTICE file distributed with
-# * this work for additional information regarding copyright ownership.
-# * The OpenAirInterface Software Alliance licenses this file to You under
-# * the OAI Public License, Version 1.1  (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.openairinterface.org/?page_id=698
-# *
-# * 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.
-# *-------------------------------------------------------------------------------
-# * For more information about the OpenAirInterface (OAI) Software Alliance:
-# *      contact@openairinterface.org
-# */
-#---------------------------------------------------------------------
-#
-apiVersion: image.openshift.io/v1
-kind: ImageStream
-metadata:
-    name: oai-nef
-    namespace: oaicicd-core
-spec:
-  lookupPolicy:
-    local: true
-status:
-    tag: develop
diff --git a/docker/Dockerfile.nef.ubuntu b/docker/Dockerfile.nef.ubuntu
index 2c7a1ae6d3ee7515bd43ef783d09247f7581fbc1..12c88926f39e7b2d2a287e1f1ba7a9a2100234f9 100644
--- a/docker/Dockerfile.nef.ubuntu
+++ b/docker/Dockerfile.nef.ubuntu
@@ -31,7 +31,7 @@
 #---------------------------------------------------------------------
 # BASE IMAGE
 #---------------------------------------------------------------------
-ARG BASE_IMAGE=ubuntu:bionic
+ARG BASE_IMAGE=ubuntu:focal
 FROM $BASE_IMAGE as oai-nef-base
 
 ENV DEBIAN_FRONTEND=noninteractive