diff --git a/requirements.txt b/requirements.txt
index 736182c..ccfcca7 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,53 +4,137 @@
 #
 #    pip-compile requirements.in
 #
-aiofiles==0.4.0           # via quart
+aiofiles==0.4.0
+    # via quart
 alembic==1.4.0
+    # via -r requirements.in
 anyio==1.2.3
+    # via
+    #   -r requirements.in
+    #   asks
 asks==2.3.6
-async-generator==1.10     # via anyio, asks, trio
+    # via -r requirements.in
+async-generator==1.10
+    # via
+    #   anyio
+    #   asks
+    #   trio
 attrs==19.3.0
-blinker==1.4              # via quart
-boltons==20.0.0           # via face, glom
+    # via
+    #   -r requirements.in
+    #   glom
+    #   outcome
+    #   trio
+blinker==1.4
+    # via quart
+boltons==20.0.0
+    # via
+    #   face
+    #   glom
 cachetools==4.0.0
-certifi==2019.11.28       # via sentry-sdk
-cffi==1.14.0              # via cryptography
-click==7.0                # via quart
-cryptography==2.8         # via pyjwt
-face==20.1.1              # via glom
+    # via -r requirements.in
+certifi==2019.11.28
+    # via sentry-sdk
+cffi==1.14.0
+    # via cryptography
+click==7.0
+    # via quart
+cryptography==2.8
+    # via pyjwt
+face==20.1.1
+    # via glom
 gidgethub==3.3.0
+    # via -r requirements.in
 glom==19.10.0
-h11==0.9.0                # via asks, hypercorn, wsproto
-h2==3.2.0                 # via hypercorn
-hpack==3.0.0              # via h2
+    # via -r requirements.in
+h11==0.9.0
+    # via
+    #   asks
+    #   hypercorn
+    #   wsproto
+h2==3.2.0
+    # via hypercorn
+hpack==3.0.0
+    # via h2
 hypercorn[trio]==0.9.0
-hyperframe==5.2.0         # via h2
-idna==2.9                 # via trio
-itsdangerous==1.1.0       # via quart
-jinja2==2.11.1            # via quart
-mako==1.1.1               # via alembic
+    # via
+    #   -r requirements.in
+    #   quart
+    #   quart-trio
+hyperframe==5.2.0
+    # via h2
+idna==2.9
+    # via trio
+itsdangerous==1.1.0
+    # via quart
+jinja2==2.11.1
+    # via quart
+mako==1.1.1
+    # via alembic
 marko==0.7.1
-markupsafe==1.1.1         # via jinja2, mako
-outcome==1.0.1            # via trio
+    # via -r requirements.in
+markupsafe==1.1.1
+    # via
+    #   jinja2
+    #   mako
+outcome==1.0.1
+    # via trio
 pendulum==2.0.5
-priority==1.3.0           # via hypercorn
+    # via -r requirements.in
+priority==1.3.0
+    # via hypercorn
 psycopg2-binary==2.8.4
-pycparser==2.19           # via cffi
+    # via -r requirements.in
+pycparser==2.19
+    # via cffi
 pyjwt[crypto]==1.7.1
-python-dateutil==2.8.1    # via alembic, pendulum
-python-editor==1.0.4      # via alembic
-pytzdata==2019.3          # via pendulum
+    # via -r requirements.in
+python-dateutil==2.8.1
+    # via
+    #   alembic
+    #   pendulum
+python-editor==1.0.4
+    # via alembic
+pytzdata==2019.3
+    # via pendulum
 quart-trio==0.5.0
-quart==0.11.2             # via quart-trio
+    # via -r requirements.in
+quart==0.11.2
+    # via quart-trio
 sentry-sdk==0.14.1
-six==1.14.0               # via cryptography, python-dateutil
-sniffio==1.1.0            # via anyio, trio
-sortedcontainers==2.1.0   # via quart, trio
+    # via -r requirements.in
+six==1.14.0
+    # via
+    #   cryptography
+    #   python-dateutil
+sniffio==1.1.0
+    # via
+    #   anyio
+    #   trio
+sortedcontainers==2.1.0
+    # via
+    #   quart
+    #   trio
 sqlalchemy==1.3.13
-toml==0.10.0              # via hypercorn, quart
+    # via
+    #   -r requirements.in
+    #   alembic
+toml==0.10.0
+    # via
+    #   hypercorn
+    #   quart
 trio==0.13.0
-typing-extensions==3.7.4.1  # via hypercorn
-uritemplate==3.0.1        # via gidgethub
-urllib3==1.25.8           # via sentry-sdk
-werkzeug==1.0.0           # via quart
-wsproto==0.15.0           # via hypercorn
+    # via
+    #   -r requirements.in
+    #   hypercorn
+    #   quart-trio
+typing-extensions==3.7.4.1
+    # via hypercorn
+uritemplate==3.0.1
+    # via gidgethub
+urllib3==1.26.5
+    # via sentry-sdk
+werkzeug==1.0.0
+    # via quart
+wsproto==0.15.0
+    # via hypercorn
diff --git a/test-requirements.txt b/test-requirements.txt
index 8eb2678..5c59094 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -4,65 +4,170 @@
 #
 #    pip-compile test-requirements.in
 #
-aiofiles==0.4.0           # via quart
+aiofiles==0.4.0
+    # via quart
 alembic==1.4.0
+    # via -r requirements.in
 anyio==1.2.3
+    # via
+    #   -r requirements.in
+    #   asks
 asks==2.3.6
-async-generator==1.10     # via anyio, asks, pytest-trio, trio
+    # via -r requirements.in
+async-generator==1.10
+    # via
+    #   anyio
+    #   asks
+    #   pytest-trio
+    #   trio
 attrs==19.3.0
-blinker==1.4              # via quart
-boltons==20.0.0           # via face, glom
+    # via
+    #   -r requirements.in
+    #   glom
+    #   outcome
+    #   pytest
+    #   trio
+blinker==1.4
+    # via quart
+boltons==20.0.0
+    # via
+    #   face
+    #   glom
 cachetools==4.0.0
-certifi==2019.11.28       # via sentry-sdk
-cffi==1.14.0              # via cryptography
-click==7.0                # via quart
-coverage==5.0.3           # via pytest-cov
-cryptography==2.8         # via pyjwt
-face==20.1.1              # via glom
+    # via -r requirements.in
+certifi==2019.11.28
+    # via sentry-sdk
+cffi==1.14.0
+    # via cryptography
+click==7.0
+    # via quart
+coverage==5.0.3
+    # via pytest-cov
+cryptography==2.8
+    # via pyjwt
+face==20.1.1
+    # via glom
 gidgethub==3.3.0
+    # via -r requirements.in
 glom==19.10.0
-h11==0.9.0                # via asks, hypercorn, wsproto
-h2==3.2.0                 # via hypercorn
-hpack==3.0.0              # via h2
+    # via -r requirements.in
+h11==0.9.0
+    # via
+    #   asks
+    #   hypercorn
+    #   wsproto
+h2==3.2.0
+    # via hypercorn
+hpack==3.0.0
+    # via h2
 hypercorn[trio]==0.9.0
-hyperframe==5.2.0         # via h2
-idna==2.9                 # via trio
-importlib-metadata==1.5.0  # via pluggy, pytest
-itsdangerous==1.1.0       # via quart
-jinja2==2.11.1            # via quart
-mako==1.1.1               # via alembic
+    # via
+    #   -r requirements.in
+    #   quart
+    #   quart-trio
+hyperframe==5.2.0
+    # via h2
+idna==2.9
+    # via trio
+importlib-metadata==1.5.0
+    # via
+    #   pluggy
+    #   pytest
+itsdangerous==1.1.0
+    # via quart
+jinja2==2.11.1
+    # via quart
+mako==1.1.1
+    # via alembic
 marko==0.7.1
-markupsafe==1.1.1         # via jinja2, mako
-more-itertools==8.2.0     # via pytest
-outcome==1.0.1            # via trio
-packaging==20.1           # via pytest
+    # via -r requirements.in
+markupsafe==1.1.1
+    # via
+    #   jinja2
+    #   mako
+more-itertools==8.2.0
+    # via pytest
+outcome==1.0.1
+    # via trio
+packaging==20.1
+    # via pytest
 pendulum==2.0.5
-pluggy==0.13.1            # via pytest
-priority==1.3.0           # via hypercorn
+    # via -r requirements.in
+pluggy==0.13.1
+    # via pytest
+priority==1.3.0
+    # via hypercorn
 psycopg2-binary==2.8.4
-py==1.8.1                 # via pytest
-pycparser==2.19           # via cffi
+    # via -r requirements.in
+py==1.8.1
+    # via pytest
+pycparser==2.19
+    # via cffi
 pyjwt[crypto]==1.7.1
-pyparsing==2.4.6          # via packaging
+    # via -r requirements.in
+pyparsing==2.4.6
+    # via packaging
 pytest-cov==2.8.1
+    # via -r test-requirements.in
 pytest-trio==0.5.2
+    # via -r test-requirements.in
 pytest==5.3.5
-python-dateutil==2.8.1    # via alembic, pendulum
-python-editor==1.0.4      # via alembic
-pytzdata==2019.3          # via pendulum
+    # via
+    #   -r test-requirements.in
+    #   pytest-cov
+    #   pytest-trio
+python-dateutil==2.8.1
+    # via
+    #   alembic
+    #   pendulum
+python-editor==1.0.4
+    # via alembic
+pytzdata==2019.3
+    # via pendulum
 quart-trio==0.5.0
-quart==0.11.2             # via quart-trio
+    # via -r requirements.in
+quart==0.11.2
+    # via quart-trio
 sentry-sdk==0.14.1
-six==1.14.0               # via cryptography, packaging, python-dateutil
-sniffio==1.1.0            # via anyio, trio
-sortedcontainers==2.1.0   # via quart, trio
+    # via -r requirements.in
+six==1.14.0
+    # via
+    #   cryptography
+    #   packaging
+    #   python-dateutil
+sniffio==1.1.0
+    # via
+    #   anyio
+    #   trio
+sortedcontainers==2.1.0
+    # via
+    #   quart
+    #   trio
 sqlalchemy==1.3.13
-toml==0.10.0              # via hypercorn, quart
+    # via
+    #   -r requirements.in
+    #   alembic
+toml==0.10.0
+    # via
+    #   hypercorn
+    #   quart
 trio==0.13.0
-typing-extensions==3.7.4.1  # via hypercorn
-uritemplate==3.0.1        # via gidgethub
-urllib3==1.25.8           # via sentry-sdk
-wcwidth==0.1.8            # via pytest
-werkzeug==1.0.0           # via quart
-wsproto==0.15.0           # via hypercorn
-zipp==3.0.0               # via importlib-metadata
+    # via
+    #   -r requirements.in
+    #   hypercorn
+    #   pytest-trio
+    #   quart-trio
+typing-extensions==3.7.4.1
+    # via hypercorn
+uritemplate==3.0.1
+    # via gidgethub
+urllib3==1.26.5
+    # via sentry-sdk
+wcwidth==0.1.8
+    # via pytest
+werkzeug==1.0.0
+    # via quart
+wsproto==0.15.0
+    # via hypercorn
+zipp==3.0.0
+    # via importlib-metadata