]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Development: update devcontainer setup, add documentation for pre-commit, set uv...
authorPhilipp Defner <mail@notmyhostna.me>
Tue, 27 Jan 2026 20:45:56 +0000 (21:45 +0100)
committerGitHub <noreply@github.com>
Tue, 27 Jan 2026 20:45:56 +0000 (20:45 +0000)
.devcontainer/README.md
.devcontainer/devcontainer.json
.devcontainer/vscode/tasks.json
.gitignore

index cec62c802b13337064546aafb4665d5bed23ddb0..1b7429c8d3bb86876b6638dc8b4c776b7ef90113 100644 (file)
@@ -89,6 +89,18 @@ Additional tasks are available for common maintenance operations:
 - **Migrate Database**: To apply database migrations.
 - **Create Superuser**: To create an admin user for the application.
 
+## Committing from the Host Machine
+
+The DevContainer automatically installs pre-commit hooks during setup. However, these hooks are configured for use inside the container.
+
+If you want to commit changes from your host machine (outside the DevContainer), you need to set up pre-commit on your host. This installs it as a standalone tool.
+
+```bash
+uv tool install pre-commit && pre-commit install
+```
+
+After this, you can commit either from inside the DevContainer or from your host machine.
+
 ## Let's Get Started!
 
 Follow the steps above to get your development environment up and running. Happy coding!
index cec8e21772655eb9bf541c59e70d52e8fd3c081c..aef29bd90333136b4dac764341c6147414296b08 100644 (file)
@@ -3,26 +3,30 @@
     "dockerComposeFile": "docker-compose.devcontainer.sqlite-tika.yml",
     "service": "paperless-development",
     "workspaceFolder": "/usr/src/paperless/paperless-ngx",
-    "postCreateCommand": "/bin/bash -c 'rm -rf .venv/.*  && uv sync --group dev && uv run pre-commit install'",
+    "containerEnv": {
+        "UV_CACHE_DIR": "/usr/src/paperless/paperless-ngx/.uv-cache"
+    },
+    "postCreateCommand": "/bin/bash -c 'rm -rf .venv/.* && uv sync --group dev && uv run pre-commit install'",
     "customizations": {
         "vscode": {
-          "extensions": [
-            "mhutchie.git-graph",
-            "ms-python.python",
-            "ms-vscode.js-debug-nightly",
-            "eamodio.gitlens",
-            "yzhang.markdown-all-in-one"
-          ],
-          "settings": {
-            "python.defaultInterpreterPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
-            "python.pythonPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
-            "python.terminal.activateEnvInCurrentTerminal": true,
-            "editor.formatOnPaste": false,
-            "editor.formatOnSave": true,
-            "editor.formatOnType": true,
-            "files.trimTrailingWhitespace": true
-          }
+            "extensions": [
+                "mhutchie.git-graph",
+                "ms-python.python",
+                "ms-vscode.js-debug-nightly",
+                "eamodio.gitlens",
+                "yzhang.markdown-all-in-one",
+                "pnpm.pnpm"
+            ],
+            "settings": {
+                "python.defaultInterpreterPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
+                "python.pythonPath": "/usr/src/paperless/paperless-ngx/.venv/bin/python",
+                "python.terminal.activateEnvInCurrentTerminal": true,
+                "editor.formatOnPaste": false,
+                "editor.formatOnSave": true,
+                "editor.formatOnType": true,
+                "files.trimTrailingWhitespace": true
+            }
         }
-      },
-      "remoteUser": "paperless"
-    }
+    },
+    "remoteUser": "paperless"
+}
index 6475e14d1dd4616e84adeed7c1b809df67f2fd3d..0cc954232cd61716405ec352b105fb8e270df3ab 100644 (file)
                {
                        "label": "Maintenance: Install Frontend Dependencies",
                        "description": "Install frontend (pnpm) dependencies",
-                       "type": "pnpm",
-                       "script": "install",
-                       "path": "src-ui",
+                       "type": "shell",
+                       "command": "pnpm install",
                        "group": "clean",
                        "problemMatcher": [],
-                       "detail": "install dependencies from package"
+                       "options": {
+                               "cwd": "${workspaceFolder}/src-ui"
+                       },
+                       "presentation": {
+                               "echo": true,
+                               "reveal": "always",
+                               "focus": true,
+                               "panel": "shared",
+                               "showReuseMessage": false,
+                               "clear": true,
+                               "revealProblems": "onProblem"
+                       }
                },
                {
                        "description": "Clean install frontend dependencies and build the frontend for production",
index c7b5c4d8ed94a375f221dd72b513b89e28f8e90b..715760b2901127de7bb80964aae0a054eefb3e3f 100644 (file)
@@ -40,6 +40,7 @@ htmlcov/
 .coverage
 .coverage.*
 .cache
+.uv-cache
 nosetests.xml
 coverage.xml
 *,cover