From 573cd0f92f78de54cbe5dc9d0bf9f904f9d90011 Mon Sep 17 00:00:00 2001
From: David Robertson <davidr@element.io>
Date: Tue, 5 Apr 2022 19:25:56 +0100
Subject: [PATCH] Add missing dependency on importlib_metadata (#12384)

---
 changelog.d/12384.misc         | 1 +
 poetry.lock                    | 2 +-
 pyproject.toml                 | 3 +++
 synapse/python_dependencies.py | 3 +++
 4 files changed, 8 insertions(+), 1 deletion(-)
 create mode 100644 changelog.d/12384.misc

diff --git a/changelog.d/12384.misc b/changelog.d/12384.misc
new file mode 100644
index 0000000000..8a60f32876
--- /dev/null
+++ b/changelog.d/12384.misc
@@ -0,0 +1 @@
+Make missing `importlib_metadata` dependency explicit.
\ No newline at end of file
diff --git a/poetry.lock b/poetry.lock
index d4bf972c43..17430cbfa6 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1593,7 +1593,7 @@ url_preview = ["lxml"]
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.7"
-content-hash = "92465e65bef59c43c6112f332e5cf987740899801dbd34c19245db15b5c6362d"
+content-hash = "7ff6d982a9d6675cb595b216b23549ef1942d0e39cb91c97494ff6ed95a9e8d2"
 
 [metadata.files]
 appdirs = [
diff --git a/pyproject.toml b/pyproject.toml
index 19ffdc7b2c..92ea302b75 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -167,6 +167,9 @@ ijson = ">=3.1.4"
 matrix-common = "~=1.1.0"
 # We need packaging.requirements.Requirement, added in 16.1.
 packaging = ">=16.1"
+# At the time of writing, we only use functions from the version `importlib.metadata`
+# which shipped in Python 3.8. This corresponds to version 1.4 of the backport.
+importlib_metadata = { version = ">=1.4", python = "<3.8" }
 
 
 # Optional Dependencies
diff --git a/synapse/python_dependencies.py b/synapse/python_dependencies.py
index 8419ab3aca..cd68aa362e 100644
--- a/synapse/python_dependencies.py
+++ b/synapse/python_dependencies.py
@@ -89,6 +89,9 @@ REQUIREMENTS = [
     "matrix-common~=1.1.0",
     # We need packaging.requirements.Requirement, added in 16.1.
     "packaging>=16.1",
+    # At the time of writing, we only use functions from the version `importlib.metadata`
+    # which shipped in Python 3.8. This corresponds to version 1.4 of the backport.
+    "importlib_metadata>=1.4",
 ]
 
 CONDITIONAL_REQUIREMENTS = {
-- 
GitLab