build(docs): pin Python dependencies

Recently some of our dependencies' dependencies have come into conflict
and are now causing errors when trying to install the Python
requirements. This change introduces `requirements.in` - a list of our
own direct dependencies, and pins them to specific versions.

The existing `requirements.txt` file is now automatically generated by
the `pip-compile` tool - part of the pip-tools package - and ensures
that our dependency tree is also pinned. This is a manual process at
present, but our dependencies are updated infrequently enough that it's
not introducing any major overhead.

Change-Id: I3cd0c11a1a4eccaf0d77b538cfdb94474833b811
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/docs/requirements.in b/docs/requirements.in
new file mode 100644
index 0000000..0d74803
--- /dev/null
+++ b/docs/requirements.in
@@ -0,0 +1,4 @@
+pip-tools==6.4.0
+sphinx==2.0.0
+sphinx-rtd-theme==0.4.3
+sphinxcontrib-plantuml==0.15
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 358ed0e..fbb9c79 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,3 +1,73 @@
-sphinx>=2.0.0
-sphinx-rtd-theme>=0.4.3
-sphinxcontrib-plantuml>=0.15
+#
+# This file is autogenerated by pip-compile with python 3.8
+# To update, run:
+#
+#    pip-compile
+#
+alabaster==0.7.12
+    # via sphinx
+babel==2.9.1
+    # via sphinx
+certifi==2021.10.8
+    # via requests
+charset-normalizer==2.0.7
+    # via requests
+click==8.0.3
+    # via pip-tools
+docutils==0.18
+    # via sphinx
+idna==3.3
+    # via requests
+imagesize==1.3.0
+    # via sphinx
+jinja2==3.0.3
+    # via sphinx
+markupsafe==2.0.1
+    # via jinja2
+packaging==21.2
+    # via sphinx
+pep517==0.12.0
+    # via pip-tools
+pip-tools==6.4.0
+    # via -r requirements.in
+pygments==2.10.0
+    # via sphinx
+pyparsing==2.4.7
+    # via packaging
+pytz==2021.3
+    # via babel
+requests==2.26.0
+    # via sphinx
+snowballstemmer==2.1.0
+    # via sphinx
+sphinx==2.0.0
+    # via
+    #   -r requirements.in
+    #   sphinx-rtd-theme
+    #   sphinxcontrib-plantuml
+sphinx-rtd-theme==0.4.3
+    # via -r requirements.in
+sphinxcontrib-applehelp==1.0.2
+    # via sphinx
+sphinxcontrib-devhelp==1.0.2
+    # via sphinx
+sphinxcontrib-htmlhelp==2.0.0
+    # via sphinx
+sphinxcontrib-jsmath==1.0.1
+    # via sphinx
+sphinxcontrib-plantuml==0.15
+    # via -r requirements.in
+sphinxcontrib-qthelp==1.0.3
+    # via sphinx
+sphinxcontrib-serializinghtml==1.1.5
+    # via sphinx
+tomli==1.2.2
+    # via pep517
+urllib3==1.26.7
+    # via requests
+wheel==0.37.0
+    # via pip-tools
+
+# The following packages are considered to be unsafe in a requirements file:
+# pip
+# setuptools