From c9f4d36afb1aa65ccc726b579e6b5c9fee725af0 Mon Sep 17 00:00:00 2001 From: daveoconnor Date: Thu, 9 Jan 2025 10:01:43 -0800 Subject: [PATCH] Added developer debugging tools (#1479) (#1508) --- 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 6e86d64d..cc360e34 100755 --- a/config/settings.py +++ b/config/settings.py @@ -19,6 +19,7 @@ if READ_DOT_ENV_FILE: # SECURITY WARNING: don't run with debug turned on in production! DEBUG = env.bool("DJANGO_DEBUG", default=False) +DEBUG_TOOLBAR = env.bool("DEBUG_TOOLBAR", default=False) if DEBUG: root = logging.getLogger() @@ -560,3 +561,12 @@ X_FRAME_OPTIONS = "SAMEORIGIN" 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 @@ CELERY_TASK_ALWAYS_EAGER = True 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 5f246b2a..3ceff949 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 @@ -12,6 +14,7 @@ from ak.views import ( NotFoundView, OKView, ) +from config.settings import DEBUG_TOOLBAR from core.views import ( BSLView, CalendarView, @@ -78,6 +81,17 @@ from versions.views import ( 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() @@ -362,11 +376,12 @@ urlpatterns = ( ), # 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..c0281a3b 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: +PyCharm Debugger Settings + +#### 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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