diff --git a/Makefile b/Makefile
index d4bb2cbb9eddb1bb1b4f366623044af8e4830919..2cfb8f0102af4c0be8aecd4399862536411caaf1 100644
--- a/Makefile
+++ b/Makefile
@@ -16,5 +16,9 @@ help:
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+html: Makefile
+ sphinx-multiversion "$(SOURCEDIR)" "$(BUILDDIR)/html"
+ ./fix_cross_references.sh
+
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/_templates/versions.html b/_templates/versions.html
new file mode 100644
index 0000000000000000000000000000000000000000..c3b4d4a5dbe653cbfdba8b19d1f1a77e2fff580d
--- /dev/null
+++ b/_templates/versions.html
@@ -0,0 +1,24 @@
+{%- if current_version %}
+
+
+ Other Versions
+ v: {{ current_version.name }}
+
+
+
+
+ - Versions
+ {%- if versions.tags %}
+ {%- for item in versions.tags %}
+ - {{ item.name }}
+ {%- endfor %}
+ {%- endif %}
+ {%- if versions.branches %}
+ {%- for item in versions.branches|sort(attribute="name",reverse=True) %}
+ - {{ item.name }}
+ {%- endfor %}
+ {%- endif %}
+
+
+
+{%- endif %}
diff --git a/conf.py b/conf.py
index b51879f2dd4ff291fba31deff42a68e2cb7e9547..498b873af9bcb7e92a6e8bb0e19564bc801becd3 100644
--- a/conf.py
+++ b/conf.py
@@ -37,6 +37,7 @@ extensions = ['sphinx.ext.autodoc',
'sphinx.ext.githubpages',
'recommonmark',
'sphinx_markdown_tables',
+ 'sphinx_multiversion',
]
source_suffix = {
@@ -94,3 +95,16 @@ html_theme_options = {
#html_logo = 'assets/osm_logo.png'
html_logo = 'assets/osm_logo.svg'
+smv_current_version = 'latest'
+#smv_tag_whitelist = None
+#smv_tag_whitelist = r'^v\d+\.\d+$'
+smv_tag_whitelist = 'latest'
+#smv_branch_whitelist = None
+#smv_branch_whitelist = r'^v\d+\.\d+$'
+smv_branch_whitelist = r'(v11|v10)'
+#smv_remote_whitelist = 'None'
+smv_remote_whitelist = r'(origin)'
+smv_released_pattern = r'(latest|v11|v10)'
+#smv_outputdir_format = 'versions/{config.release}' # Use "versions" as parent directory and the "release" variable from conf.py
+#smv_outputdir_format = 'versions/{ref.name}'
+
diff --git a/index.md b/index.md
index 78a2e935f82fbc416490e891675ddab6bd172c55..6f0994c36eb9eec2c716eb19a0a5b5a68b0daa92 100644
--- a/index.md
+++ b/index.md
@@ -23,6 +23,7 @@
11. [ANNEX 3: Reference of OSM's Information Model](11-osm-im.md)
12. [ANNEX 4: Reference of OSM's Northbound Interface](12-osm-nbi.md)
13. [ANNEX 5: OpenVIM installation](13-openvim-installation.md)
-14. [ANNEX 6: Tests to validate VIM capabilities from OSM](14-tests-for-vim-validation.md)
-15. [ANNEX 7: Kubernetes installation and requirements](15-k8s-installation.md)
-16. [ANNEX 8: Setting up an LXD Cluster](16-lxd-cluster.md)
+15. [ANNEX 6: Kubernetes installation and requirements](15-k8s-installation.md)
+16. [ANNEX 7: Setting up an LXD Cluster](16-lxd-cluster.md)
+17. [ANNEX 8: TACACS Based Authentication Support In OSM](18-tacacs-based-authentication.md)
+
diff --git a/requirements.txt b/requirements.txt
index e5fa3766a2ee938fd1ba3fe98d326ea83ae28b22..4b7224915fcb682cdebab71e3c9a50c03a57a4b4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,6 @@
sphinx
sphinx_rtd_theme
sphinxcontrib-versioning
+sphinx-multiversion
recommonmark
sphinx-markdown-tables
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000000000000000000000000000000000000..ebbda641e664553c1ede5f564cc0c1f776e77781
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,44 @@
+#######################################################################################
+# Copyright ETSI Contributors and Others.
+#
+# 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.
+#######################################################################################
+
+[tox]
+envlist = test
+
+[testenv]
+usedevelop = True
+basepython = python3
+setenv = VIRTUAL_ENV={envdir}
+ PYTHONDONTWRITEBYTECODE = 1
+deps = -r{toxinidir}/requirements.txt
+parallel_show_output = true
+
+
+#######################################################################################
+# This is a test of sphinxcontrib-versioning.
+#
+# This was not used in the end because it is no longer maintained. Besides, it was not
+# working well from scratch, requiring some updates in the library (see commands below).
+#
+# Instead, sphinx-multiversion was used and incorporated in Makefile.
+# This is kept as a reference for the future in case we want to try again
+#######################################################################################
+[testenv:sphinx-versioning]
+skip_install = true
+commands =
+ /usr/bin/sed -i "s|from sphinx import application, build_main.*|from sphinx import application\nfrom sphinx.cmd.build import build_main|" {envdir}/lib/python3.8/site-packages/sphinxcontrib/versioning/sphinx_.py
+ sphinx-versioning build --help
+
diff --git a/upload-doc.sh b/upload-doc.sh
index ac027c5614c1691f96450b9c488924e12263e6e0..6075d87ed8b3fef832ba6019bb3683461a6a3962 100755
--- a/upload-doc.sh
+++ b/upload-doc.sh
@@ -12,9 +12,9 @@ make clean
make html
#
-# Fix cross-references
+# Fix cross-references (already fixed in Makefile)
#
-./fix_cross_references.sh
+# ./fix_cross_references.sh
#
# Get credentias (file or interactive)