From f233f27d222da36785abe9e4d4e085efb5ba9bdf Mon Sep 17 00:00:00 2001 From: Dave O'Connor Date: Wed, 27 Nov 2024 17:27:48 -0800 Subject: [PATCH] Added developer debugging tools (#1479) --- config/settings.py | 10 ++++++++++ config/test_settings.py | 6 ++++++ config/urls.py | 17 ++++++++++++++++- docker-compose.yml | 6 ++++++ docker/Dockerfile | 9 +++++++++ docs/development_setup_notes.md | 16 ++++++++++++++++ docs/images/pycharm_debugger_settings.png | Bin 0 -> 104948 bytes env.template | 5 +++++ justfile | 5 +++-- pycharm_debugger.py | 13 +++++++++++++ requirements-dev.in | 3 +++ requirements-dev.txt | 19 +++++++++++++++++++ 12 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 docs/images/pycharm_debugger_settings.png create mode 100644 pycharm_debugger.py create mode 100644 requirements-dev.in create mode 100644 requirements-dev.txt diff --git a/config/settings.py b/config/settings.py index 4fa4e23b..07b9767e 100755 --- a/config/settings.py +++ b/config/settings.py @@ -22,6 +22,7 @@ # Whether or not we're in local development mode LOCAL_DEVELOPMENT = env.bool("LOCAL_DEVELOPMENT", default=False) +DEBUG_TOOLBAR = env.bool("DEBUG_TOOLBAR", default=False) CI = env.bool("CI", default=False) if DEBUG: @@ -567,3 +568,12 @@ SLACK_BOT_TOKEN = env("SLACK_BOT_TOKEN", default="") ACCOUNT_DELETION_GRACE_PERIOD_DAYS = 10 + +if DEBUG_TOOLBAR: + INSTALLED_APPS += ["debug_toolbar"] + INTERNAL_IPS = ["127.0.0.1", "localhost"] + DEBUG_TOOLBAR_CONFIG = { + "SHOW_TOOLBAR_CALLBACK": lambda x: True, + "ROOT_TAG_EXTRA_ATTRS": "hx-preserve", + } + MIDDLEWARE.append("debug_toolbar.middleware.DebugToolbarMiddleware") diff --git a/config/test_settings.py b/config/test_settings.py index 82b986e3..3ad22f33 100644 --- a/config/test_settings.py +++ b/config/test_settings.py @@ -18,6 +18,12 @@ def __getitem__(self, item): DEBUG = False +OAUTH2_PROVIDER_APPLICATION_MODEL = "oauth2_provider.Application" +OAUTH2_PROVIDER_ACCESS_TOKEN_MODEL = "oauth2_provider.AccessToken" +OAUTH2_PROVIDER_ID_TOKEN_MODEL = "oauth2_provider.IDToken" +OAUTH2_PROVIDER_GRANT_MODEL = "oauth2_provider.Grant" +OAUTH2_PROVIDER_REFRESH_TOKEN_MODEL = "oauth2_provider.RefreshToken" + EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend" MIGRATION_MODULES = DisableMigrations() diff --git a/config/urls.py b/config/urls.py index fee92c8d..9a474828 100755 --- a/config/urls.py +++ b/config/urls.py @@ -1,3 +1,5 @@ +import logging + from django.conf import settings from django.conf.urls.static import static from django.contrib import admin @@ -13,6 +15,7 @@ NotFoundView, OKView, ) +from config.settings import DEBUG_TOOLBAR from core.views import ( BSLView, CalendarView, @@ -78,6 +81,17 @@ VersionDetail, ) +djdt_urls = [] +try: + if DEBUG_TOOLBAR: + from debug_toolbar.toolbar import debug_toolbar_urls + + djdt_urls = debug_toolbar_urls() +except ModuleNotFoundError: + logging.error( + "DEBUG_TOOLBAR enabled but Django Debug Toolbar not installed. Run `just build`" + ) + register_converter(BoostVersionSlugConverter, "boostversionslug") router = routers.SimpleRouter() @@ -358,11 +372,12 @@ ), # Static content re_path( - r"^(?P.+)/?", + r"^(?!__debug__)(?P.+)/?", StaticContentTemplateView.as_view(), name="static-content-page", ), ] + + djdt_urls ) handler404 = "ak.views.custom_404_view" diff --git a/docker-compose.yml b/docker-compose.yml index 9e3c8263..f584e159 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -25,6 +25,8 @@ services: build: context: . dockerfile: docker/Dockerfile + args: + LOCAL_DEVELOPMENT: "true" command: [ "/bin/bash", "/code/docker/compose-start.sh" ] depends_on: - db @@ -96,6 +98,8 @@ services: /code/docker/wait-for-it.sh -h web -p 8000 -t 20 -- celery -A config worker --concurrency=10 -P gevent --loglevel=debug networks: - backend + environment: + DEBUG_TOOLBAR: "false" env_file: - .env depends_on: @@ -109,6 +113,8 @@ services: context: . dockerfile: docker/Dockerfile command: [ "celery", "-A", "config", "beat", "--loglevel=debug" ] + environment: + DEBUG_TOOLBAR: "false" env_file: - .env depends_on: diff --git a/docker/Dockerfile b/docker/Dockerfile index 3ec1fd8c..f1c6c4ce 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,6 +2,8 @@ FROM python:3.11-slim AS builder-py +ARG LOCAL_DEVELOPMENT + RUN apt update && apt install -y build-essential gcc python-dev-is-python3 libpq-dev postgresql-client ruby ruby-dev && rm -rf /var/lib/apt/lists/* # Install ruby's asciidoctor. @@ -13,6 +15,8 @@ RUN pip install --upgrade pip # Boostrap uv. RUN pip install 'uv>=0.2.27,<0.3' COPY ./requirements.txt ./code/requirements.txt +COPY ./requirements-dev.txt ./code/requirements-dev.txt + # Create the virtualenv. RUN uv venv venv @@ -22,6 +26,11 @@ RUN --mount=type=cache,target=/root/.cache \ . /venv/bin/activate && \ uv pip install -r /code/requirements.txt +RUN --mount=type=cache,target=/root/.cache if [ "${LOCAL_DEVELOPMENT}" = "true" ]; then \ + . /venv/bin/activate && \ + uv pip install -r /code/requirements-dev.txt; \ + fi + # Builder step for JS. FROM node:22-slim AS builder-js diff --git a/docs/development_setup_notes.md b/docs/development_setup_notes.md index 60efa3d4..ab66cf66 100644 --- a/docs/development_setup_notes.md +++ b/docs/development_setup_notes.md @@ -340,3 +340,19 @@ Setup should be complete and you should be able to see an option to "Use Google" #### Additional Notes: **Working locally**: If you need to run through the login flows multiple times, create a superuser so you can log into the admin. Then, log into the admin and delete your "Social Account" from the admin. This will test a fresh connection to GitHub for your logged-in GitHub user. + +### Debugging +For local development there is Django Debug Toolbar, and the option to set a debugger. + +#### Common Options +In your env: +- Django Debug Toolbar, enabled by default, can be disabled by setting DEBUG_TOOLBAR=False +- IDE Debugging, disabled by default, can be enabled by uncommenting `PYTHONBREAKPOINT` in your .env file. + + +#### Set Up Pycharm +You can set up your IDE with a new "Python Debug Server" configuration as: +The GitHub screen that registers a new OAuth app + +#### Common Usage +To use the debugger add `breakpoint()` somewhere before you want to start debugging and then add breakpoints by clicking on the gutter. The debugger will stop at these point, you can then step/inspect the variables. diff --git a/docs/images/pycharm_debugger_settings.png b/docs/images/pycharm_debugger_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..0dbe86754ccff76ada886a65497af376663bed11 GIT binary patch literal 104948 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

I%JbR7 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 literal 0 HcmV?d00001 diff --git a/env.template b/env.template index b9e668c2..90565258 100644 --- a/env.template +++ b/env.template @@ -55,3 +55,8 @@ GOOGLE_OAUTH_CLIENT_ID= GOOGLE_OAUTH_CLIENT_SECRET= SLACK_BOT_TOKEN=changeme +DEBUG_TOOLBAR=True +# uncomment whichever is appropriate for your editor +# currently only pycharm is supported, vscode kept for example of alternative options +# PYTHONBREAKPOINT=pycharm_debugger.set_trace +# PYTHONBREAKPOINT=vscode_debugger.set_trace diff --git a/justfile b/justfile index d0ee10b2..24afaa18 100644 --- a/justfile +++ b/justfile @@ -51,10 +51,10 @@ alias shell := console docker compose --file docker-compose.yml run --rm web python manage.py migrate --noinput @test_pytest: ## runs pytest - -docker compose run --rm web pytest -s --create-db + -docker compose run --rm -e DEBUG_TOOLBAR="False" web pytest -s --create-db @test_pytest_asciidoctor: ## runs asciidoctor tests - -docker compose run --rm web pytest -m asciidoctor -s + -docker compose run --rm -e DEBUG_TOOLBAR="False" web pytest -m asciidoctor -s --create-db @test_interrogate: ## runs interrogate tests docker compose run --rm web interrogate -vv --fail-under 100 --whitelist-regex "test_.*" . @@ -122,6 +122,7 @@ alias shell := console # Dependency management @pip-compile ARGS='': ## rebuilds our pip requirements docker compose run --rm web uv pip compile {{ ARGS }} ./requirements.in --no-strip-extras --output-file ./requirements.txt + docker compose run --rm web uv pip compile {{ ARGS }} ./requirements-dev.in --no-strip-extras --output-file ./requirements-dev.txt @pip-compile-upgrade: ## Upgrade existing Python dependencies to their latest versions just pip-compile --upgrade diff --git a/pycharm_debugger.py b/pycharm_debugger.py new file mode 100644 index 00000000..c8165d98 --- /dev/null +++ b/pycharm_debugger.py @@ -0,0 +1,13 @@ +def set_trace(): + import pydevd_pycharm + + # this ip address is for the gateway IP, equivalent to host.docker.internal which + # isn't available on all platforms + gateway_ip = "172.17.0.1" + pydevd_pycharm.settrace( + host=gateway_ip, + port=12345, # Use the same port number configured in PyCharm + stdoutToServer=True, + stderrToServer=True, + suspend=False, + ) diff --git a/requirements-dev.in b/requirements-dev.in new file mode 100644 index 00000000..d853217b --- /dev/null +++ b/requirements-dev.in @@ -0,0 +1,3 @@ +-c requirements.txt +django-debug-toolbar +pydevd-pycharm==242.23726.102 # pinned to appropriate version for current pycharm diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 00000000..f831d396 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,19 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile ./requirements-dev.in --no-strip-extras --output-file ./requirements-dev.txt +asgiref==3.8.1 + # via + # -c ./requirements.txt + # django +django==4.2.16 + # via + # -c ./requirements.txt + # django-debug-toolbar +django-debug-toolbar==4.4.6 + # via -r ./requirements-dev.in +pydevd-pycharm==242.23726.102 + # via -r ./requirements-dev.in +sqlparse==0.5.1 + # via + # -c ./requirements.txt + # django + # django-debug-toolbar