diff --git a/conf.py b/conf.py
index 3f9d075..2c1c986 100644
--- a/conf.py
+++ b/conf.py
@@ -1,4 +1,24 @@
 # -*- coding: utf-8 -*-
+# -----------------------------------------------------------------------
+# Copyright 2019-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: 2019-2024 Open Networking Foundation Contributors
+# SPDX-License-Identifier: Apache-2.0
+# -----------------------------------------------------------------------
+# Intent:
+# -----------------------------------------------------------------------
 
 # Configuration file for the Sphinx documentation builder.
 #
@@ -21,14 +41,13 @@
 
 # --------------------------------------------------------------
 # Large exclusion list(s) extracted from conf.py => .sphinx/*.py
-if True: # Set searchpath early
-    abs_path = Path('.').resolve().as_posix()
+if True:  # Set searchpath early
+    abs_path = Path(".").resolve().as_posix()
     sys.path.insert(0, abs_path)
 
-# from sphinx_conf import *
+# -- Options for linkcheck ----------------------------------------------
 from sphinx_conf.exclude_patterns import exclude_patterns
 from sphinx_conf.linkcheck_ignore import linkcheck_ignore
-# --------------------------------------------------------------
 
 # -----------------------------------------------------------------------
 # -----------------------------------------------------------------------
@@ -36,11 +55,14 @@
     with open("VERSION") as f:
         return f.read().strip()
 
+
 # -- Project information -----------------------------------------------------
 
-project = u'VOLTHA Docs'
-copyright = u'Copyright 2019-2023 Open Networking Foundation (ONF) and the ONF Contributors'
-author = u'VOLTHA Contributors'
+project = "VOLTHA Docs"
+copyright = (
+    "Copyright 2019-2024 Open Networking Foundation Contributors"
+)
+author = "VOLTHA Contributors"
 
 # The short X.Y version
 version = get_version()
@@ -60,15 +82,15 @@
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'recommonmark',
-    'sphinx.ext.coverage',
-    'sphinx.ext.extlinks',
-    'sphinx.ext.graphviz',
-    'sphinx.ext.ifconfig',
-#    'sphinx.ext.intersphinx',    # :doc:`my document <../my_doc{.rst}>`
-    'sphinx.ext.mathjax',
-    'sphinx.ext.todo',
-    'sphinxcontrib.spelling',
+    "recommonmark",
+    "sphinx.ext.coverage",
+    "sphinx.ext.extlinks",
+    "sphinx.ext.graphviz",
+    "sphinx.ext.ifconfig",
+    #    'sphinx.ext.intersphinx',    # :doc:`my document <../my_doc{.rst}>`
+    "sphinx.ext.mathjax",
+    "sphinx.ext.todo",
+    "sphinxcontrib.spelling",
     "sphinx_multiversion",
     "sphinx.ext.intersphinx",
     "sphinxcontrib.openapi",
@@ -87,36 +109,38 @@
 #   ]
 
 # Text files with lists of words that shouldn't fail the spellchecker:
-spelling_word_list_filename=['dict.txt', ]
+spelling_word_list_filename = [
+    "dict.txt",
+]
 
-#sphinx-multiversion prep, run in each versioned source directory
+# sphinx-multiversion prep, run in each versioned source directory
 prep_commands = [
-    'ln -sf _root_/repos _target_/repos',
-    'make prep',
+    "ln -sf _root_/repos _target_/repos",
+    "make prep",
 ]
 
 # don't include tags
 # smv_tag_whitelist = None
 # smv_tag_whitelist = disabled^ # Was = None
-smv_tag_whitelist = 'disabled_a^' # Was = None
+smv_tag_whitelist = "disabled_a^"  # Was = None
 
 # inlcude only the branches matching master and voltha-*
-smv_branch_whitelist = r'^(master|voltha-.*)$'
+smv_branch_whitelist = r"^(master|voltha-.*)$"
 
 # include all remote branches
-smv_remote_whitelist = r'^.*$'
+smv_remote_whitelist = r"^.*$"
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
+templates_path = ["_templates"]
 
 # The suffix(es) of source filenames.
 # You can specify multiple suffix as a list of string:
 #
 # source_suffix = ['.rst', '.md']
-source_suffix = ['.rst', '.md']
+source_suffix = [".rst", ".md"]
 
 # The master toctree document.
-master_doc = 'index'
+master_doc = "index"
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
@@ -133,24 +157,22 @@
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
-html_theme = 'sphinx_rtd_theme'
+html_theme = "sphinx_rtd_theme"
 
-html_logo = '_static/voltha.svg'
+html_logo = "_static/voltha.svg"
 
-html_favicon = '_static/voltha-favicon-128.png'
+html_favicon = "_static/voltha-favicon-128.png"
 
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
 #
-html_theme_options = {
-    'logo_only': True
-}
+html_theme_options = {"logo_only": True}
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+html_static_path = ["_static"]
 
 # Custom sidebar templates, must be a dictionary that maps document names
 # to template names.
@@ -163,11 +185,10 @@
 # html_sidebars = {}
 
 
-
 # -- Options for HTMLHelp output ---------------------------------------------
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'VOLTHADocs'
+htmlhelp_basename = "VOLTHADocs"
 
 
 # -- Options for LaTeX output ------------------------------------------------
@@ -176,15 +197,12 @@
     # The paper size ('letterpaper' or 'a4paper').
     #
     # 'papersize': 'letterpaper',
-
     # The font size ('10pt', '11pt' or '12pt').
     #
     # 'pointsize': '10pt',
-
     # Additional stuff for the LaTeX preamble.
     #
     # 'preamble': '',
-
     # Latex figure (float) alignment
     #
     # 'figure_align': 'htbp',
@@ -194,8 +212,7 @@
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'VOLTHADocs.tex', u'VOLTHA Docs',
-     u'VOLTHA Team', 'manual'),
+    (master_doc, "VOLTHADocs.tex", "VOLTHA Docs", "VOLTHA Team", "manual"),
 ]
 
 
@@ -203,10 +220,7 @@
 
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
-man_pages = [
-    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
-     [author], 1)
-]
+man_pages = [(master_doc, "VOLTHA Docs", "VOLTHA Docs", [author], 1)]
 
 
 # -- Options for Texinfo output ----------------------------------------------
@@ -215,9 +229,15 @@
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
-     author, 'VOLTHADocs', 'One line description of project.',
-     'Miscellaneous'),
+    (
+        master_doc,
+        "VOLTHA Docs",
+        "VOLTHA Docs",
+        author,
+        "VOLTHADocs",
+        "One line description of project.",
+        "Miscellaneous",
+    ),
 ]
 
 
@@ -236,7 +256,7 @@
 # epub_uid = ''
 
 # A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
+epub_exclude_files = ["search.html"]
 
 
 # -- Extension configuration -------------------------------------------------
@@ -261,14 +281,16 @@
 # ..seealso: https://www.sphinx-doc.org/en/master/usage/extensions/todo.html
 #        'vhc' : 'https://gerrit.opencord.org/plugins/gitiles/voltha-helm-charts',
 
-extlinks=\
-    {
-        'vol-jira' : ('https://jira.opencord.org/projects/VOL/issues/%s', 'jira::%s'),
-        # macros for gerrit or github URL construction
-        'repo'     : ('https://github.com/opencord/%s', 'repo::%s'),
-        'vol-ger'  : ('https://gerrit.opencord.org/plugins/gitiles/%s', 'gerrit::%s'),
-        'vol-git'  : ('https://github.com/opencord/%s', 'git::%s'),
-    }
+extlinks = {
+    "vol-jira": ("https://jira.opencord.org/projects/VOL/issues/%s", "jira::%s"),
+    "jira-browse": ("https://jira.opencord.org/browse/%s", "jira::%s"),
+    # macros for gerrit or github URL construction
+    "repo": ("https://github.com/opencord/%s", "repo::%s"),
+    "vol-ger": ("https://gerrit.opencord.org/plugins/gitiles/%s", "gerrit::%s"),
+    "vol-git": ("https://github.com/opencord/%s", "git::%s"),
+    # https://mvnrepository
+    "mvn-cord": ("http://mvnrepository.com/artifact/org.opencord/%s", "mvn::%s"),
+}
 
 # -- Options for inlining a constant value -----------------------------------
 # NOTE: rst_prolog will affect every file in the repository.
@@ -282,25 +304,26 @@
 # If true, `todo` and `todoList` produce output, else they produce nothing.
 todo_include_todos = True
 
-# -- Options for linkcheck ---------------------------------------------------
-# The link checker strips off .md from links and then complains
-# linkcheck_ignore SEE .sphinx/linkcheck_ignore.py
-
 # -- Configure recommonmark to use AutoStructify -----------------------------
 # Docs: https://recommonmark.readthedocs.io/en/latest/auto_structify.html
 
 import recommonmark
 from recommonmark.transform import AutoStructify
 
-github_doc_root = 'https://github.com/opencord/voltha-docs'
+github_doc_root = "https://github.com/opencord/voltha-docs"
+
 
 def setup(app):
 
-    app.add_css_file('css/rtd_theme_mods.css')
+    app.add_css_file("css/rtd_theme_mods.css")
 
-    app.add_config_value('recommonmark_config', {
-            'url_resolver': lambda url: github_doc_root + url,
-            'auto_toc_tree_section': 'Contents',
-        }, True)
+    app.add_config_value(
+        "recommonmark_config",
+        {
+            "url_resolver": lambda url: github_doc_root + url,
+            "auto_toc_tree_section": "Contents",
+        },
+        True,
+    )
 
     app.add_transform(AutoStructify)
