diff --git a/constraints.txt b/constraints.txt
index 85907b7..6bad81d 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -2,7 +2,7 @@
 # This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
-#    pip-compile --allow-unsafe --output-file=constraints.txt --resolver=backtracking --strip-extras requirements.in
+#    pip-compile --allow-unsafe --output-file=constraints.txt --strip-extras requirements.in
 #
 asgiref==3.7.2
     # via django
@@ -20,7 +20,7 @@ charset-normalizer==3.2.0
     # via requests
 confusable-homoglyphs==3.2.0
     # via django-registration
-cryptography==41.0.1
+cryptography==41.0.2
     # via django-anymail
 django==4.2.3
     # via
@@ -79,7 +79,7 @@ sortedcontainers==2.4.0
     # via trio
 sqlparse==0.4.4
     # via django
-trio==0.22.1
+trio==0.22.2
     # via
     #   selenium
     #   trio-websocket
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 8abc8da..37760fb 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -2,7 +2,7 @@
 # This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
-#    pip-compile --allow-unsafe --resolver=backtracking requirements-dev.in
+#    pip-compile --allow-unsafe requirements-dev.in
 #
 asgiref==3.7.2
     # via
@@ -14,7 +14,7 @@ attrs==23.1.0
     #   hypothesis
     #   outcome
     #   trio
-black==23.3.0
+black==23.7.0
     # via -r requirements-dev.in
 blessed==1.20.0
     # via curtsies
@@ -33,7 +33,7 @@ charset-normalizer==3.2.0
     # via
     #   -c constraints.txt
     #   requests
-click==8.1.4
+click==8.1.5
     # via
     #   black
     #   pip-tools
@@ -45,7 +45,7 @@ cwcwidth==0.1.8
     # via
     #   bpython
     #   curtsies
-distlib==0.3.6
+distlib==0.3.7
     # via virtualenv
 django==4.2.3
     # via
@@ -69,7 +69,7 @@ h11==0.14.0
     # via
     #   -c constraints.txt
     #   wsproto
-hypothesis==6.81.0
+hypothesis==6.81.2
     # via -r requirements-dev.in
 identify==2.5.24
     # via pre-commit
@@ -80,7 +80,7 @@ idna==3.4
     #   trio
 iniconfig==2.0.0
     # via pytest
-invoke==2.1.3
+invoke==2.2.0
     # via -r requirements-dev.in
 model-bakery==1.12.0
     # via -r requirements-dev.in
@@ -99,9 +99,9 @@ packaging==23.1
     #   pytest
 pathspec==0.11.1
     # via black
-pip-tools==6.14.0
+pip-tools==7.0.0
     # via -r requirements-dev.in
-platformdirs==3.8.1
+platformdirs==3.9.1
     # via
     #   black
     #   virtualenv
@@ -153,7 +153,7 @@ requests==2.31.0
     #   bpython
     #   pytest-base-url
     #   pytest-selenium
-ruff==0.0.277
+ruff==0.0.278
     # via -r requirements-dev.in
 selenium==4.9.1
     # via
@@ -177,7 +177,7 @@ sqlparse==0.4.4
     #   django-debug-toolbar
 tenacity==8.2.2
     # via pytest-selenium
-trio==0.22.1
+trio==0.22.2
     # via
     #   -c constraints.txt
     #   selenium
@@ -191,7 +191,7 @@ urllib3[socks]==2.0.3
     #   -c constraints.txt
     #   requests
     #   selenium
-virtualenv==20.23.1
+virtualenv==20.24.0
     # via pre-commit
 wcwidth==0.2.6
     # via blessed
@@ -203,7 +203,7 @@ wsproto==1.2.0
     #   trio-websocket
 
 # The following packages are considered to be unsafe in a requirements file:
-pip==23.1.2
+pip==23.2
     # via pip-tools
 setuptools==68.0.0
     # via
diff --git a/requirements.txt b/requirements.txt
index 5fbddb3..b833dcf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,7 +2,7 @@
 # This file is autogenerated by pip-compile with Python 3.11
 # by the following command:
 #
-#    pip-compile --allow-unsafe --resolver=backtracking requirements.in
+#    pip-compile --allow-unsafe requirements.in
 #
 asgiref==3.7.2
     # via django
@@ -20,7 +20,7 @@ charset-normalizer==3.2.0
     # via requests
 confusable-homoglyphs==3.2.0
     # via django-registration
-cryptography==41.0.1
+cryptography==41.0.2
     # via django-anymail
 django==4.2.3
     # via
@@ -79,7 +79,7 @@ sortedcontainers==2.4.0
     # via trio
 sqlparse==0.4.4
     # via django
-trio==0.22.1
+trio==0.22.2
     # via
     #   selenium
     #   trio-websocket