Remove stale/outdated dependencies that break with modern python 50/143150/3
authorthmsdt <thomas.kulik@telekom.de>
Tue, 10 Feb 2026 10:29:38 +0000 (11:29 +0100)
committerthmsdt <thomas.kulik@telekom.de>
Wed, 11 Feb 2026 12:59:32 +0000 (13:59 +0100)
Issue-ID: DOC-831

Change-Id: Iad964941f556e099d787ef45d60d4c9ca8001c1b
Signed-off-by: thmsdt <thomas.kulik@telekom.de>
docs/conf.py
docs/guides/onap-documentation/api-swagger-guide.rst
docs/guides/onap-documentation/index.rst
docs/guides/onap-documentation/setting-up.rst [deleted file]
docs/guides/onap-documentation/templates/collections/platform-component.rst
docs/guides/onap-documentation/templates/collections/sdk.rst
docs/guides/onap-documentation/templates/sections/delivery.rst [deleted file]
docs/requirements-docs.txt
docs/tox.ini
etc/upper-constraints.onap.txt
etc/upper-constraints.os.txt [deleted file]

index cde9011..a626f4b 100644 (file)
@@ -43,7 +43,7 @@ extensions = [
     'sphinxcontrib.plantuml',
     'sphinxcontrib.seqdiag',
     'sphinxcontrib.spelling' ,
-    'sphinxcontrib.swaggerdoc',
+    'sphinxcontrib.openapi',
     'sphinx_toolbox.collapse'
 ]
 
index 3083225..d56dfa4 100644 (file)
@@ -7,6 +7,29 @@
 API Documentation
 =================
 
+
+.. note::
+   **API Documentation Update**
+
+   The API documentation has been migrated from Swagger 2.0 to OpenAPI 3.x specification.
+   
+   **What changed:**
+   
+   - The ``sphinxcontrib-swaggerdoc`` extension has been replaced with ``sphinxcontrib-openapi``
+   - All ``.. swaggerv2doc::`` directives have been updated to ``.. openapi::``
+   - OpenAPI 3.x provides better support for modern API features and is actively maintained
+   
+   **For readers:** The API documentation content and functionality remain the same. OpenAPI is 
+   the successor to Swagger and offers the same capabilities with improved specification support.
+   
+   **For contributors:** When adding new API documentation, use the ``.. openapi::`` directive 
+   instead of the deprecated ``.. swaggerv2doc::`` directive.
+
+.. seealso::
+   - `OpenAPI Specification <https://spec.openapis.org/oas/latest.html>`_
+   - `Swagger vs OpenAPI <https://swagger.io/blog/api-strategy/difference-between-swagger-and-openapi/>`_
+
+
 Swagger
 -------
 
@@ -72,18 +95,18 @@ For each API, the ``swaggerv2doc`` directive must be used as follows:
 
    myAPI1
    ......
-   .. swaggerv2doc:: myAPI1.json
+   .. openapi:: myAPI1.json
 
    myAPI2
    ......
-   .. swaggerv2doc:: myAPI2.json
+   .. openapi:: myAPI2.json
 
 It will produce the following output:
 
 myAPI1
 ......
-.. swaggerv2doc:: media/myAPI1.json
+.. openapi:: media/myAPI1.json
 
 myAPI2
 ......
-.. swaggerv2doc:: media/myAPI2.json
+.. openapi:: media/myAPI2.json
index 20cf748..0797dd2 100644 (file)
@@ -13,7 +13,6 @@ contribute to the ONAP documentation project.
    :maxdepth: 1
 
    introduction
-   setting-up
    setup-of-a-doc-dev-system
    style-guide-content
    creating-rst
diff --git a/docs/guides/onap-documentation/setting-up.rst b/docs/guides/onap-documentation/setting-up.rst
deleted file mode 100644 (file)
index 0b7c622..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0
-.. International License. http://creativecommons.org/licenses/by/4.0
-.. Copyright 2017 AT&T Intellectual Property.  All rights reserved.
-.. Copyright 2022 ONAP
-
-.. _setting-up:
-
-Setting Up
-==========
-
-.. warning:: This guide describes the concept of using 'submodules' for
-   documentation. Submodules are no longer supported and have been removed.
-   This guide is partly outdated and needs an update.
-   
-   The aggregation of individual project documentation to a coherent set of
-   ONAP release documentation is now done in ReadTheDocs using the ONAP 'doc'
-   project as its root.
-
-ONAP documentation is stored in git repositories, changes are managed
-with gerrit reviews, and published documents generated when there is a
-change in any source used to build the documentation.
-
-Authors create source for documents in reStructured Text (RST) that is
-rendered to HTML and published on Readthedocs.io.
-The developer Wiki or other web sites can reference these rendered
-documents directly allowing projects to easily maintain current release
-documentation.
-
-Some initial set up is required to connect a project with
-the master document structure and enable automated publishing of
-changes as summarized in the following diagram and description below
-below.
-
-.. seqdiag::
-   :height: 700
-   :width: 1000
-
-   seqdiag {
-     DA [label = "Doc Project\nAuthor/Committer",   color=lightblue];
-     DR [label = "Doc Gerrit Repo" ,                     color=pink];
-     PR [label = "Other Project\nGerrit Repo",          color=pink ];
-     PA [label = "Other Project\nAuthor/Committer", color=lightblue];
-
-     PA  ->   DR [label = "Add project repo as\ngit submodule" ];
-     DR  ->   DA [label = "Review & Plan to\nIntegrate Content with\nTocTree Structure" ];
-     DR  <--  DA [label = "Vote +2/Merge" ];
-     PA  <--  DR [label = "Merge Notification" ];
-     PA  ->   PR [label = "Create in project repo\ntop level directory and index.rst" ];
-     PR  ->   DA [label = "Add as Reviewer" ];
-     PR  <--  DA [label = "Approve and Integrate" ];
-     PA  <--  PR [label = "Merge" ];
-     }
-
-Setup project repositories
---------------------------
-These steps are performed for each project repository that
-provides documentation.
-
-1. Set two variables that will be used in the subsequent steps.
-Set *reponame* to the project repository you are setting up
-just as it appears in the **Project Name** column of
-the Gerrit projects page.
-Set *lfid* to your Linux Foundation identity that you use to
-login to gerrit or for git clone requests over ssh.
-
-.. code-block:: bash
-
-   reponame=
-   lfid=
-
-2. Add a directory in the doc project where your
-project will be included as a submodule and at least one reference
-from the doc project to the documentation index in your repository.
-The following sequence will do this over ssh. Please note that the
-reference to your project in *repolist.rst* should be considered
-temporary and removed when you reference it from more appropriate
-place.
-
-.. caution::
-
-   If your access network restricts ssh, you will need to use equivalent
-   git commands and HTTP Passwords. See ONAP Wiki.
-
-.. caution::
-
-   Don't replace ../ in *git submodule add* with any relative path on
-   your local file system. It refers to the location of your repository
-   on the server.
-
-.. code-block:: bash
-
-   git clone ssh://$lfid@gerrit.onap.org:29418/doc
-   cd doc
-   mkdir -p `dirname docs/submodules/$reponame`
-   git submodule add ../$reponame docs/submodules/$reponame.git
-   git submodule init docs/submodules/$reponame.git
-   git submodule update docs/submodules/$reponame.git
-
-   echo "   $reponame <../submodules/$reponame.git/docs/index>" >> docs/release/repolist.rst
-
-   git add .
-   git commit -s
-   git review
-
-.. caution::
-   Wait for the above change to be merged before any merge to the
-   project repository that you have just added as a submodule.
-   If the project repository added as submodule changes before the
-   doc project merge, git may not automatically update the submodule
-   reference on changes and/or the verify job will fail in the step below.
-
-
-1. Create a docs directory in your repository with
-an index.rst file.  The following sequence will complete the minimum
-required over ssh.  As you have time to convert or add new content you
-can update the index and add files under the docs folder.
-
-.. hint::
-   If you have additional content, you can include it by editing the
-   index.rst file and/or adding other files before the git commit.
-   Check "Templates and Examples" section in :ref:`setting-up` and
-   :ref:`converting-to-rst` for more information.
-
-
-.. code-block:: bash
-
-   git clone ssh://$lfid@gerrit.onap.org:29418/$reponame
-   cd $reponame
-   mkdir docs
-   echo ".. This work is licensed under a Creative Commons Attribution 4.0 International License.
-
-   TODO Add files to toctree and delete this header
-   ------------------------------------------------
-   .. toctree::
-      :maxdepth: 1
-
-   " >  docs/index.rst
-
-   git add .
-   git commit -s
-   git review
-
-
-The diagram below illustrates what is accomplished in the setup steps
-above from the perspective of a file structure created for a local test,
-a jenkins verify job, and/or published release documentation including:
-
-- ONAP gerrit project repositories,
-
-- doc project repository master document index.rst, templates,
-  configuration, and other documents
-
-- submodules directory where other project repositories and
-  directories/files are referenced
-
-- file structure: directories (ellipses), files(boxes)
-
-- references: directory/files (solid edges), git submodule
-  (dotted edges), sphinx toctree (dashed edges)
-
-.. graphviz::
-
-
-   digraph docstructure {
-   size="8,12";
-   node [fontname = "helvetica"];
-   // Align gerrit repos and docs directories
-   {rank=same doc aaf aai reponame repoelipse vnfsdk vvp}
-   {rank=same confpy release templates masterindex submodules otherdocdocumentelipse}
-   {rank=same releasedocumentindex releaserepolist}
-
-   //Illustrate Gerrit Repos and provide URL/Link for complete repo list
-   gerrit [label="gerrit.onap.org/r", href="https://gerrit.onap.org/r/#/admin/projects/" ];
-   doc [href="https://gerrit.onap.org/r/gitweb?p=doc.git;a=tree"];
-   gerrit -> doc;
-   gerrit -> aaf;
-   gerrit -> aai;
-   gerrit -> reponame;
-   gerrit -> repoelipse;
-             repoelipse [label=". . . ."];
-   gerrit -> vnfsdk;
-   gerrit -> vvp;
-
-   //Show example of local reponame instance of component info
-   reponame -> reponamedocsdir;
-   reponamesm -> reponamedocsdir;
-                    reponamedocsdir [label="docs"];
-   reponamedocsdir -> repnamedocsdirindex;
-                         repnamedocsdirindex [label="index.rst", shape=box];
-
-   //Show detail structure of a portion of doc/docs
-   doc  -> docs;
-   docs -> confpy;
-           confpy [label="conf.py",shape=box];
-   docs -> masterindex;
-           masterindex [label="Master\nindex.rst", shape=box];
-   docs -> release;
-   docs -> templates;
-   docs -> otherdocdocumentelipse;
-           otherdocdocumentelipse [label="...other\ndocuments"];
-   docs -> submodules
-
-   masterindex -> releasedocumentindex [style=dashed, label="sphinx\ntoctree\nreference"];
-
-   //Show submodule linkage to docs directory
-   submodules -> reponamesm [style=dotted,label="git\nsubmodule\nreference"];
-                 reponamesm [label="reponame.git"];
-
-   //Example Release document index that references component info provided in other project repo
-   release -> releasedocumentindex;
-              releasedocumentindex [label="index.rst", shape=box];
-   releasedocumentindex -> releaserepolist [style=dashed, label="sphinx\ntoctree\nreference"];
-        releaserepolist  [label="repolist.rst", shape=box];
-   release -> releaserepolist;
-   releaserepolist -> repnamedocsdirindex [style=dashed, label="sphinx\ntoctree\nreference"];
-
-   }
-
-Branches in the DOC Project
----------------------------
-
-The DOC project 'master' branch aggregates the 'latest' content
-from all ONAP project repositories contributing documentation into a
-single tree file structure as described in the previous section.  This
-branch is continuously integrated and deployed at Read The
-Docs as the 'latest' ONAP Documentation by:
-
-* Jenkins doc-verify-rtd and doc-merge-rtd jobs triggered whenever patches on
-  contributing repositories contain rst files at or below a top level
-  'docs' folder.
-
-* Subscription in the DOC project to changes in submodule repositories.
-  These changes appear in the DOC project as commits with title
-  'Updated git submodules' when a change to a contributing project
-  repository is merged.  No DOC project code review occurs, only a
-  submodule repository commit hash is updated to track the head of each
-  contributing master branch.
-
-For each ONAP named release the DOC project creates a branch with the
-release name.  The timing of the release branch is determined by
-work needed in the DOC project to prepare the release branch and the
-amount of change unrelated to the release in the master branch.
-For example contributing projects that create named release branches
-early to begin work on the next release and/or contributing projects
-to the master that are not yet part of the named release would result
-in an earlier named release branch to cleanly separate work to stabilize
-a release from other changes in the master branch.
-
-A named release branch is integrated and deployed at Read The Docs
-as the 'named release' by aggregating content from contributing
-project repositories.  A contributing project repository can
-choose one of the following for the 'named release' branch:
-
-* Remove the contributing project repository submodule and RST
-  references when not part of the named release.
-
-* Provide a commit hash or tag for the contributing project master
-  branch to be used for the life of the release branch or until a
-  request is submitted to change the commit hash or tag.
-
-* Provide the commit hash for the head of a named release branch
-  created in the contributing project repository.  This option
-  may be appropriate if frequent changes are expected over the
-  life of the named release and work the same way as the continuous
-  integration and deployment described for the master branch.
-
-The decision on option for each contributing project repository
-can be made or changed before the final release is approved.  The
-amount of change and expected differences between master and a
-named release branch for each repository should drive the choice of
-option and timing.
-
-About GIT branches
-------------------
-
-GIT is a powerful tool allowing many actions, but without respecting some rules
-the GIT structure can be quickly hard to maintain.
-
-Here are some conventions about GIT branches:
-
-  - ALWAYS create a local branch to edit or create any file. This local branch
-    will be considered as a topic in Gerrit and allow contributors to
-    work at the same time on the same project.
-
-  - 1 feature = 1 branch. In the case of documentation, a new chapter
-    or page about a new code feature can be considered as a 'doc feature'
-
-  - 1 bug = 1 branch. In the case of documentation, a correction on an
-    existing sentence can be considered as a 'doc bug'
-
-  - the master branch is considered as "unstable", containing new features that
-    will converge to a stable situation for the release date.
-
-The day of the release, the repository owner will create a new branch to
-fix the code and documentation. This will represent the 'stable' code of the
-release. In this context:
-
-  - NEVER push a new feature on a stable branch
-
-  - Only bug correction are authorized on a stable branch using
-    cherry pick method
-
-.. image:: media/git_branches.png
index e776c7f..fc728ce 100644 (file)
@@ -13,7 +13,6 @@ Platform Component
    ../sections/architecture.rst
    ../sections/offeredapis.rst
    ../sections/consumedapis.rst
-   ../sections/delivery.rst
    ../sections/design.rst
    ../sections/logging.rst
    ../sections/installation.rst
index 83fbbe2..4c1855e 100644 (file)
@@ -11,7 +11,6 @@ SDK
 
    ../sections/architecture.rst
    ../sections/offeredapis.rst
-   ../sections/delivery.rst
    ../sections/logging.rst
    ../sections/build.rst
    ../sections/release-notes.rst
diff --git a/docs/guides/onap-documentation/templates/sections/delivery.rst b/docs/guides/onap-documentation/templates/sections/delivery.rst
deleted file mode 100644 (file)
index 32f8450..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. Copyright 2021 ONAP contributors, Nokia
-
-Delivery
-========
-
-..
-   * This section is used to describe the delivery of a software component.
-     For a run-time component, this might be executable images, containers, etc.
-     For an SDK, this might be libraries.
-
-   * This section is typically provided for a platform-component and sdk;
-     and referenced in developer and user guides.
-
-Process
--------
-..
-  If needed, describe the steps of the delivery pictured on the block diagram.
-
-.. blockdiag::
-
-
-    blockdiag layers {
-      orientation = portrait
-      a -> m;
-      b -> n;
-      c -> x;
-      m -> y;
-      m -> z;
-      group l1 {
-        shape = line;
-        color = "#07819B";
-        x; y; z;
-        }
-    group l2 {
-      shape = line;
-      color = "#1a3d6f";
-      m; n;
-    }
-    group l3 {
-      shape = line;
-      color = "#5dbeba";
-      a; b; c;
-    }
-
-    }
-
-Deliverables
-------------
-
-..
-  List the deliverables in the package here.
index 5d3ccef..680e465 100644 (file)
@@ -1,11 +1,23 @@
-sphinx>=4.2.0  # BSD
-sphinx-rtd-theme>=1.0.0  # MIT
-sphinxcontrib-blockdiag  # BSD
-sphinxcontrib-seqdiag # BSD
-sphinxcontrib-swaggerdoc
-sphinxcontrib-spelling
-sphinxcontrib-plantuml
-sphinx_toolbox
-autopep8
-pylint
-six
+# Compatibility
+setuptools>=65.0.0
+Pillow>=10.1.0
+
+# Core Sphinx
+sphinx>=7.2.0
+sphinx-rtd-theme>=2.0.0
+
+# Diagram extensions
+sphinxcontrib-blockdiag>=3.0.0
+sphinxcontrib-seqdiag>=3.0.0
+sphinxcontrib-plantuml>=0.27
+
+# API documentation
+sphinxcontrib-openapi>=0.8.4
+
+# Quality & tooling
+sphinxcontrib-spelling>=8.0.0
+sphinx-toolbox>=3.5.0
+
+# Code quality tools
+autopep8>=2.0.0
+pylint>=3.0.0
index fcac2d3..34f7dd2 100644 (file)
@@ -4,10 +4,10 @@ envlist = docs,docs-linkcheck,docs-spellcheck
 skipsdist = true
 
 [testenv:docs]
-basepython = python3.8
+basepython = python3.12
 deps =
+     setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
-    -chttps://releases.openstack.org/constraints/upper/yoga
     -c{toxinidir}/../etc/upper-constraints.onap.txt
 commands =
     sphinx-build -W -q -b html -n -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/html
@@ -16,18 +16,18 @@ allowlist_externals =
     sh
 
 [testenv:docs-linkcheck]
-basepython = python3.8
+basepython = python3.12
 deps =
+     setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
-    -chttps://releases.openstack.org/constraints/upper/yoga
     -c{toxinidir}/../etc/upper-constraints.onap.txt
 commands = sphinx-build -W -q -b linkcheck -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/linkcheck
 
 [testenv:docs-spellcheck]
-basepython = python3.8
+basepython = python3.12
 deps =
+     setuptools>=65.0.0
     -r{toxinidir}/requirements-docs.txt
-    -chttps://releases.openstack.org/constraints/upper/yoga
     -c{toxinidir}/../etc/upper-constraints.onap.txt
 commands =
     sphinx-build -b spelling -d {envtmpdir}/doctrees {toxinidir} {toxinidir}/_build/spellcheck
index f7326c4..04d9587 100644 (file)
@@ -1,10 +1,23 @@
-lfdocs-conf===0.8.0
-sphinxcontrib-needs===0.7.9
-sphinxcontrib.plantuml===0.24
-sphinx_toolbox==3.2.0
-sphinxcontrib.nwdiag===2.0.0
-sphinx-rtd-theme===1.0.0
-autopep8==1.7.0
-gitlint-core==0.17.0
-pyenchant==3.2.2
-pylint==2.15.0
+# Compatibility
+setuptools===69.0.3
+Pillow===10.4.0
+
+# Core Sphinx
+sphinx===7.2.6
+sphinx-rtd-theme===2.0.0
+
+# Diagram extensions
+sphinxcontrib-blockdiag===3.0.0
+sphinxcontrib-seqdiag===3.0.0
+sphinxcontrib-plantuml===0.29
+
+# API documentation
+sphinxcontrib-openapi===0.8.4
+
+# Quality & tooling
+sphinxcontrib-spelling===8.0.0
+sphinx-toolbox===3.5.0
+
+# Code quality tools
+autopep8===2.3.1
+pylint===3.0.3
diff --git a/etc/upper-constraints.os.txt b/etc/upper-constraints.os.txt
deleted file mode 100644 (file)
index 1b1fbe8..0000000
+++ /dev/null
@@ -1,643 +0,0 @@
-ntlm-auth===1.5.0
-voluptuous===0.12.2
-chardet===4.0.0
-enum-compat===0.0.3
-rsa===4.8
-restructuredtext-lint===1.4.0
-netmiko===3.4.0
-sshtunnel===0.4.0
-PasteDeploy===2.1.1
-typing===3.7.4.3
-python-saharaclient===3.5.0
-Routes===2.5.1
-rtslib-fb===2.1.74
-oslo.limit===1.5.1
-tzdata===2021.5
-smmap===5.0.0
-confget===4.1.0
-XStatic-Angular-Bootstrap===2.5.0.0
-WebOb===1.8.7
-sphinxcontrib-actdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-actdiag===3.0.0;python_version=='3.8'
-pecan===1.4.1
-ryu===4.34
-os-api-ref===2.3.0
-python-ldap===3.4.0
-oslo.concurrency===4.5.0
-websocket-client===1.2.3
-osprofiler===3.4.2
-os-resource-classes===1.1.0
-tabulate===0.8.9
-python-ironic-inspector-client===4.7.1
-lxml===4.8.0
-vintage===0.4.1
-ntc-templates===3.0.0
-rst2txt===1.1.0
-setproctitle===1.2.2
-pytest===7.0.1
-python-slugify===6.1.0
-cursive===0.2.2
-oslo.service===2.8.0
-django-appconf===1.0.5
-sphinxcontrib-nwdiag===2.0.0
-rbd-iscsi-client===0.1.8
-requests-aws===0.1.8
-alabaster===0.7.12
-pbr===5.8.1
-munch===2.5.0
-waiting===1.4.1
-attrs===21.4.0
-microversion-parse===1.0.1
-Pint===0.17;python_version=='3.6'
-Pint===0.18;python_version=='3.8'
-oslo.i18n===5.1.0
-jsonpath-rw-ext===1.2.2
-python-mistralclient===4.4.0
-oslo.context===4.1.0
-python-senlinclient===2.4.0
-rcssmin===1.0.6
-pycadf===3.1.1
-types-enum34===1.1.8
-grpcio===1.44.0
-pysendfile===2.0.1
-sniffio===1.2.0
-fixtures===3.0.0
-neutron===20.2.0
-neutron-lib===2.20.0
-XStatic-FileSaver===1.3.2.0
-oslo.metrics===0.4.0
-storage-interfaces===1.0.4
-persist-queue===0.7.0
-pystache===0.6.0
-XStatic-Font-Awesome===4.7.0.0
-nose===1.3.7
-nosehtmloutput===0.0.7
-waitress===2.0.0
-os-refresh-config===13.0.1
-pysnmp===4.4.12
-Mako===1.1.6
-pyScss===1.3.7
-sphinxcontrib-htmlhelp===2.0.0
-XStatic-jQuery===1.12.4.1
-ddt===1.4.4
-XStatic-Graphlib===2.1.7.0
-pyserial===3.5
-moto===3.0.4
-infi.dtypes.wwn===0.1.1
-python-freezerclient===4.4.0
-os-xenapi===0.3.4
-python-vitrageclient===4.5.0
-nosexcover===1.0.11
-krest===1.3.2
-psycopg2===2.9.3
-networkx===2.5.1;python_version=='3.6'
-networkx===2.6.3;python_version=='3.8'
-bashate===2.1.0
-XStatic-Angular===1.5.8.0
-pyngus===2.3.1
-Pillow===8.4.0;python_version=='3.6'
-Pillow===9.0.1;python_version=='3.8'
-zuul-sphinx===0.6.0
-tripleo-common===16.3.0
-Tempita===0.5.2
-ply===3.11
-google-api-core===2.5.0
-requests-toolbelt===0.9.1
-simplejson===3.17.6
-suds-jurko===0.6
-types-paramiko===2.8.13
-immutables===0.16
-python-swiftclient===3.13.1
-pyOpenSSL===22.0.0
-monasca-common===3.5.0
-zeroconf===0.37.0;python_version=='3.6'
-zeroconf===0.38.3;python_version=='3.8'
-scipy===1.5.4;python_version=='3.6'
-scipy===1.8.0;python_version=='3.8'
-python-gnupg===0.4.8
-mypy-extensions===0.4.3
-rsd-lib===1.2.0
-XStatic-Jasmine===2.4.1.2
-googleapis-common-protos===1.55.0
-python-glanceclient===3.6.0
-pyinotify===0.9.6
-debtcollector===2.5.0
-requests-unixsocket===0.3.0
-responses===0.17.0;python_version=='3.6'
-responses===0.18.0;python_version=='3.8'
-croniter===1.3.4
-horizon===22.1.0
-octavia-lib===2.5.0
-python-watcherclient===3.4.0
-MarkupSafe===2.0.1;python_version=='3.6'
-MarkupSafe===2.1.0;python_version=='3.8'
-pypowervm===1.1.24
-ruamel.yaml.clib===0.2.6
-doc8===0.10.1
-pymongo===4.0.1
-python-cloudkittyclient===4.5.0
-soupsieve===2.3.1
-sqlparse===0.4.2
-oslotest===4.5.0
-jsonpointer===2.2
-defusedxml===0.7.1
-netaddr===0.8.0
-pyghmi===1.5.34
-sphinxcontrib-blockdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-blockdiag===3.0.0;python_version=='3.8'
-thrift===0.15.0
-gnocchiclient===7.0.7
-wcwidth===0.2.5
-sphinxcontrib.datatemplates===0.9.1
-jsonpath-rw===1.4.0
-prettytable===2.5.0;python_version=='3.6'
-prettytable===3.1.1;python_version=='3.8'
-vine===5.0.0
-pyroute2.nftables===0.6.6
-taskflow===4.6.4
-traceback2===1.4.0
-arrow===1.2.2
-semantic-version===2.9.0
-virtualbmc===2.2.1
-deprecation===2.1.0
-SQLAlchemy===1.4.31
-pyroute2===0.6.6
-google-auth===2.6.0
-kazoo===2.8.0
-pyspnego===0.5.0
-pyroute2.ethtool===0.6.6
-XStatic-roboto-fontface===0.5.0.0
-pyudev===0.23.2
-eventlet===0.33.0
-openstack-doc-tools===3.3.0
-oslo.messaging===12.13.0
-jira===3.1.1
-extras===1.0.0
-PyJWT===2.3.0
-typing_extensions===4.1.1
-XStatic-lodash===4.16.4.2
-zVMCloudConnector===1.4.1
-paramiko===2.8.1
-ifaddr===0.1.7
-reno===3.5.0
-imagesize===1.3.0
-pydot===1.4.2
-urllib3===1.26.8
-graphviz===0.19.1
-PyKMIP===0.10.0
-whereto===0.4.0
-pywbem===1.4.1
-python-subunit===1.4.0
-tornado===6.1
-pycparser===2.21
-mock===4.0.3
-PyYAML===6.0
-beautifulsoup4===4.10.0
-cached-property===1.5.2;python_version=='3.6'
-os-net-config===15.1.0
-ovs===2.16.0
-cryptography===36.0.1
-httpcore===0.14.7
-URLObject===2.4.3
-nocasedict===1.0.2
-task-core===0.2.1
-psycopg2-binary===2.9.3
-openstack-release-test===3.3.1
-validations-libs===1.6.0
-pylxd===2.3.1
-pycryptodomex===3.14.1
-anyjson===0.3.3
-requests-mock===1.9.3
-os-apply-config===13.1.0
-prometheus-client===0.13.1
-oslosphinx===4.18.0
-gunicorn===20.1.0
-storpool===7.0.0
-textfsm===1.1.2
-python-3parclient===4.2.12
-unittest2===1.1.0
-django-compressor===2.4.1
-libvirt-python===8.0.0
-python-zunclient===4.4.0
-tzlocal===4.1
-sphinxcontrib-jsmath===1.0.1
-python-novaclient===17.7.0
-pact===1.12.0
-bcrypt===3.2.0
-os-client-config===2.1.0
-XStatic-Angular-Gettext===2.4.1.0
-Deprecated===1.2.13
-h11===0.12.0
-Pygments===2.11.2
-XStatic-Hogan===2.0.0.3
-XStatic-objectpath===1.2.1.0
-python-manilaclient===3.3.1
-sphinxcontrib-serializinghtml===1.1.5
-requests===2.27.1
-snowballstemmer===2.2.0
-Jinja2===3.0.3
-XStatic-Bootstrap-SCSS===3.4.1.0
-pyzabbix===1.0.0
-ptyprocess===0.7.0
-threadloop===1.0.2
-amqp===5.0.9
-ruamel.yaml===0.17.21
-websockify===0.10.0
-gssapi===1.7.3
-XStatic-JQuery.quicksearch===2.0.3.2
-mpmath===1.2.1
-python-binary-memcached===0.31.1
-django-debreach===2.0.1;python_version=='3.6'
-django-debreach===2.1.0;python_version=='3.8'
-sphinx-feature-classification===1.1.0
-django-pymemcache===1.0.0
-XStatic-JQuery-Migrate===1.2.1.2
-pytest-html===3.1.1
-appdirs===1.4.4
-tinyrpc===1.1.4
-google-auth-httplib2===0.1.0
-daiquiri===3.0.1
-influxdb===5.3.1
-# differs from https://github.com/openstack/requirements/blob/stable/yoga/upper-constraints.txt
-funcparserlib===1.0.0a0
-passlib===1.7.4
-dib-utils===0.0.11
-cliff===3.10.1
-os-brick===5.2.2
-ansible-runner===2.1.2
-pytz-deprecation-shim===0.1.0.post0
-scp===0.14.4
-python-zaqarclient===2.3.0
-lockfile===0.12.2
-ldappool===3.0.0
-termcolor===1.1.0
-joblib===1.1.0
-google-api-python-client===2.38.0
-castellan===3.10.2
-oslo.versionedobjects===2.6.0
-ssh-python===0.9.0
-enmerkar===0.7.1
-webcolors===1.11.1
-aodhclient===2.4.1
-autobahn===21.2.1;python_version=='3.6'
-autobahn===22.2.2;python_version=='3.8'
-SQLAlchemy-Utils===0.38.2
-retryz===0.1.9
-pluggy===1.0.0
-coverage===6.2;python_version=='3.6'
-coverage===6.3.2;python_version=='3.8'
-freezegun===1.1.0
-toml===0.10.2
-pycdlib===1.12.0
-pyperclip===1.8.2
-cassandra-driver===3.25.0
-XStatic-Angular-Schema-Form===0.8.13.0
-gabbi===2.4.0
-nwdiag===2.0.0;python_version=='3.6'
-nwdiag===3.0.0;python_version=='3.8'
-XStatic-bootswatch===3.3.7.0
-pytest-xdist===2.5.0
-XStatic-JS-Yaml===3.8.1.0
-XStatic-term.js===0.0.7.0
-oslo.log===4.7.0
-nodeenv===1.6.0
-gossip===2.4.0
-suds-community===1.0.0
-importlib-metadata===4.11.1;python_version=='3.8'
-importlib-metadata===4.8.3;python_version=='3.6'
-oslo.middleware===4.5.1
-XStatic-mdi===1.6.50.2
-django-pyscss===2.0.2
-uritemplate===4.1.1
-docutils===0.17.1
-threadpoolctl===3.1.0
-os-ken===2.3.1
-ujson===4.3.0;python_version=='3.6'
-ujson===5.1.0;python_version=='3.8'
-selenium===3.141.0
-mypy===0.931
-mistral-lib===2.6.0
-dogtag-pki===10.7.4.1
-types-ipaddress===1.0.8
-XStatic-Angular-UUID===0.0.4.0
-purestorage===1.19.0
-sphinxcontrib-seqdiag===2.0.0;python_version=='3.6'
-sphinxcontrib-seqdiag===3.0.0;python_version=='3.8'
-os-win===5.6.0
-capacity===1.3.14
-retrying===1.3.3
-XStatic-Dagre===0.6.4.1
-platformdirs===2.4.0;python_version=='3.6'
-platformdirs===2.5.1;python_version=='3.8'
-pydotplus===2.0.2
-boto3===1.21.7
-jeepney===0.7.1
-stestr===3.2.1
-oslo.serialization===4.3.0
-warlock===1.3.3
-exabgp===4.2.17
-sphinxcontrib-httpdomain===1.8.0
-metalsmith===1.6.2
-s3transfer===0.5.2
-text-unidecode===1.3
-sphinxcontrib-svg2pdfconverter===1.2.0
-murano-pkg-check===0.3.0
-oslo.vmware===3.10.0
-XStatic-moment===2.8.4.3
-autopage===0.5.0
-sqlalchemy-migrate===0.13.0
-gitdb===4.0.9
-python-monascaclient===2.5.0
-ldap3===2.9.1
-requests-ntlm===1.1.0
-sphinx-rtd-theme===1.0.0
-automaton===2.5.0
-os-service-types===1.7.0
-keyring===23.4.1;python_version=='3.6'
-keyring===23.5.0;python_version=='3.8'
-elementpath===2.4.0
-testscenarios===0.5.0
-sphinxcontrib-pecanwsme===0.10.0
-sadisplay===0.4.9
-infinisdk===185.1.1
-packaging===21.3
-XStatic-Dagre-D3===0.4.17.0
-nose-exclude===0.5.0
-psutil===5.9.0
-py===1.11.0
-txaio===22.2.1
-elasticsearch===2.4.1
-django-nose===1.4.7
-asgiref===3.4.1;python_version=='3.6'
-asgiref===3.5.0;python_version=='3.8'
-XStatic-JQuery.TableSorter===2.14.5.2
-pifpaf===3.1.5
-pysmi===0.3.4
-blockdiag===2.0.1;python_version=='3.6'
-blockdiag===3.0.0;python_version=='3.8'
-testtools===2.5.0
-infi.dtypes.iqn===0.4.0
-XStatic-tv4===1.2.7.0
-XStatic-JSEncrypt===2.3.1.1
-python-cinderclient===8.3.0
-keystonemiddleware===9.4.0
-django-formtools===2.3
-XStatic-Spin===1.2.5.3
-tap-as-a-service===9.0.0
-os-traits===2.7.0
-typepy===1.3.0
-SecretStorage===3.3.1
-opentracing===2.4.0
-XStatic-Rickshaw===1.5.1.0
-iso8601===1.0.2
-tooz===2.10.1
-linecache2===1.0.0
-oauth2client===4.1.3
-idna===3.3
-yamlloader===1.1.0
-protobuf===3.19.4
-sushy===4.1.1
-python-neutronclient===7.8.0
-pika===1.2.0
-oslo.cache===2.10.1
-WebTest===3.0.0
-openstack.nose-plugin===0.11
-os-collect-config===13.1.0
-edgegrid-python===1.2.1
-python-qpid-proton===0.36.0
-python-octaviaclient===2.5.0
-pysaml2===7.1.1
-requests-oauthlib===1.3.1
-oslo.reports===2.3.0
-bitmath===1.3.3.1
-ceilometermiddleware===2.4.1
-python-nss===1.0.1
-testrepository===0.0.20
-sympy===1.9
-Logbook===1.5.3
-PyNaCl===1.5.0
-osc-lib===2.5.0
-async-generator===1.10;python_version=='3.6'
-python-consul===1.1.0
-seqdiag===2.0.0;python_version=='3.6'
-seqdiag===3.0.0;python_version=='3.8'
-numpy===1.19.5;python_version=='3.6'
-numpy===1.22.2;python_version=='3.8'
-msgpack===1.0.3
-Sphinx===4.4.0
-oslo.config===8.8.0
-openstackdocstheme===2.4.0
-osc-placement===3.2.0
-zake===0.2.2
-python-rsdclient===1.0.2
-flux===1.3.5
-python-solumclient===3.5.0
-krb5===0.3.0
-PyMySQL===1.0.2
-uhashring===2.1
-kubernetes===22.6.0
-httplib2===0.20.4
-betamax===0.8.1
-construct===2.10.68
-pytest-metadata===1.11.0
-pyparsing===3.0.7
-geomet===0.2.1.post1
-distlib===0.3.4
-XStatic-Moment-Timezone===0.5.22.0
-dogpile.cache===1.1.5
-python-barbicanclient===5.3.0
-salt===3004
-api-object-schema===2.0.0
-WSME===0.11.0
-tomli===1.2.3;python_version=='3.6'
-tomli===2.0.1;python_version=='3.8'
-proboscis===1.2.6.0
-backports.zoneinfo===0.2.1
-oslo.upgradecheck===1.5.0
-stevedore===3.5.0
-pywinrm===0.4.2
-botocore===1.24.7
-xmltodict===0.12.0
-pyasn1===0.4.8
-directord===0.12.0
-oslo.rootwrap===6.3.1
-pyroute2.nslink===0.6.6
-Django===3.2.12
-pexpect===4.8.0
-contextvars===2.4
-cmd2===2.4.0
-python-json-logger===2.0.2
-redis===4.1.4
-jmespath===0.10.0
-click===8.0.4
-XStatic-smart-table===1.4.13.2
-kuryr-lib===2.5.0
-scrypt===0.8.20
-jsonpatch===1.32
-python-daemon===2.3.0
-types-cryptography===3.3.15
-typed-ast===1.5.2;python_version=='3.6'
-os-testr===2.0.1
-cotyledon===1.7.3
-xattr===0.9.9
-systemd-python===234
-python-memcached===1.59
-openstacksdk===0.61.0
-six===1.16.0
-dulwich===0.20.32
-dfs-sdk===1.2.27
-sentinels===1.0.0
-kombu===5.1.0;python_version=='3.6'
-kombu===5.2.3;python_version=='3.8'
-pyroute2.ndb===0.6.6
-distro===1.7.0
-zstd===1.5.1.0
-yaql===2.0.0
-requestsexceptions===1.4.0
-testresources===2.0.1
-falcon===3.0.1
-etcd3gw===1.0.1
-Flask-RESTful===0.3.9
-GitPython===3.1.18;python_version=='3.6'
-GitPython===3.1.27;python_version=='3.8'
-python-ironicclient===4.11.0
-XStatic===1.0.2
-XStatic-Angular-FileUpload===12.0.4.0
-python-openstackclient===5.8.0
-pyzmq===21.0.2
-nocaselist===1.0.4
-oslo.db===11.2.0
-simplegeneric===0.8.1
-python-pcre===0.7
-yappi===1.3.3
-mbstrdecoder===1.1.0
-dataclasses===0.8;python_version=='3.6'
-abclient===0.2.3
-pymemcache===3.5.1
-wrapt===1.13.3
-oslo.privsep===2.7.0
-sphinxcontrib-apidoc===0.3.0
-oslo.policy===3.11.0
-python-muranoclient===2.4.1
-hvac===0.11.2
-pyeclib===1.6.0
-wsgi-intercept===1.9.3
-ndg-httpsclient===0.5.1
-pyrsistent===0.18.0;python_version=='3.6'
-pyrsistent===0.18.1;python_version=='3.8'
-repoze.lru===0.7
-rfc3986===1.5.0
-tenacity===6.3.1
-pyroute2.core===0.6.6
-python-designateclient===4.5.1
-pyroute2.ipdb===0.6.6
-future===0.18.2
-Paste===3.5.0
-pytest-django===4.5.2
-jaeger-client===4.6.1;python_version=='3.6'
-jaeger-client===4.8.0;python_version=='3.8'
-XStatic-Json2yaml===0.1.1.0
-pyroute2.ipset===0.6.6
-boto===2.49.0
-os-vif===2.7.1
-hyperlink===21.0.0
-mitba===1.1.1
-python-masakariclient===7.2.0
-Werkzeug===2.0.3
-pyasn1-modules===0.2.8
-APScheduler===3.9.0.post1
-monotonic===1.6
-xmlschema===1.9.2
-python-troveclient===7.2.0
-etcd3===0.12.0
-cachez===0.1.2
-XStatic-Bootstrap-Datepicker===1.4.0.0
-CouchDB===1.2
-netifaces===0.11.0
-cachetools===4.2.4;python_version=='3.6'
-cachetools===5.0.0;python_version=='3.8'
-ws4py===0.5.1
-sphinxcontrib-qthelp===1.0.3
-keystoneauth1===4.5.0
-statsd===3.3.0
-XenAPI===2.14
-importlib-resources===5.4.0
-python-keystoneclient===4.4.0
-ceilometer===18.0.0
-diskimage-builder===3.20.3
-heat-translator===2.5.0
-python-magnumclient===3.6.0
-docker===5.0.3
-storops===1.2.10
-anyio===3.5.0
-XStatic-Angular-lrdragndrop===1.0.2.4
-ovsdbapp===1.15.2
-aniso8601===9.0.1
-rjsmin===1.1.0
-icalendar===4.0.9
-decorator===4.4.2;python_version=='3.6'
-decorator===5.1.1;python_version=='3.8'
-DateTimeRange===1.2.0
-cffi===1.15.0
-python-cyborgclient===1.7.0
-futurist===2.4.0
-jsonschema===3.2.0
-sphinxcontrib-devhelp===1.0.2
-python-blazarclient===3.4.1
-alembic===1.7.6
-execnet===1.9.0
-glance-store===3.0.0
-sphinxcontrib-programoutput===0.17
-storpool.spopenstack===3.1.0
-sphinx-testing===1.0.1
-dnspython===2.1.0
-oauthlib===3.2.0
-Babel===2.9.1
-logutils===0.3.5
-zipp===3.6.0;python_version=='3.6'
-zipp===3.7.0;python_version=='3.8'
-greenlet===1.1.2
-XStatic-Angular-Vis===4.16.0.0
-iniconfig===1.1.1
-confluent-kafka===1.8.2
-xvfbwrapper===0.2.9
-futures===3.0.5;python_version=='3.6'
-tosca-parser===2.5.1
-charset-normalizer===2.0.12
-Flask===2.0.3
-httpx===0.22.0
-sqlalchemy-filters===0.12.0
-marathon===0.13.0
-sphinxcontrib-runcmd===0.2.0
-confspirator===0.3.0
-fasteners===0.17.3
-sortedcontainers===2.4.0
-python-linstor===1.13.0
-filelock===3.4.1;python_version=='3.6'
-filelock===3.6.0;python_version=='3.8'
-python-tackerclient===1.10.0
-python-heatclient===2.5.1
-kafka-python===2.0.2
-oslo.utils===4.12.3
-gitdb2===4.0.2
-requests-kerberos===0.14.0
-itsdangerous===2.0.1;python_version=='3.6'
-itsdangerous===2.1.0;python_version=='3.8'
-XStatic-jquery-ui===1.13.0.1
-monasca-statsd===2.4.0
-python-dateutil===2.8.2
-virtualenv===20.13.2
-colorama===0.4.4
-confetti===2.5.3
-ironic-lib===5.2.0
-pytz===2021.3
-pytest-forked===1.4.0
-XStatic-D3===3.5.17.0
-actdiag===2.0.0;python_version=='3.6'
-actdiag===3.0.0;python_version=='3.8'
-sysv-ipc===1.1.0
-sphinxcontrib-applehelp===1.0.2
-scikit-learn===0.24.2;python_version=='3.6'
-scikit-learn===1.0.2;python_version=='3.8'
-setuptools===59.6.0;python_version=='3.6'
-setuptools===60.9.3;python_version=='3.8'